4.2k Aufrufe
Gefragt in Datenbanken von
Hallo,

ich habe ein Problem in folgender Situation:
1 Hauptformular (Gefahrstoff-Detail-Informationen)
1 Unterformular (Auflistung aller u.U. gefilterter Datensätze)

Wenn ich in dem Unterformular (Datenblattansicht) einen Datensatz anklicke, möchte ich alle relevanten Informationen in dem Hauptformular (Einzelnes Formular) anzeigen.
Hierfür verwende ich die Recordsetclone und Bookmark Methode.
Das funktioniert soweit auch problemlos, allerdings nur so lange bis ich durch Auswahl eines Filterkriteriums die Datensatzherkunft des Unterformulars ändere. Filtermöglichkeiten bestehen über ein Dropdown, eine Optionsgruppe und eine Wildcardsuche über 3 Felder.

Der Aufbau (Felder, Feldnamen, etc.) der dem Unterformular zugrunde liegenden Abfrage bleibt bis auf ein zusätzliches Filterkriterium unverändert.
z.B.
1. Abfrage_Alle_Gefahrstoffe
2. Abfrage_Alle_Gefahrstoffe_eines_Anwenders

Möchte ich nun (nach dem Filtern/Ändern der Datensatzherkunft des UF) durch Klicken auf ein Feld im Unterformular den Datensatz wechseln erhalte ich folgende Fehlermeldung:
"Access kann das in Ihrem Ausdruck angesprochene Feld '|' nicht finden"

Entferne ich den Filter wieder, können die Datensätze auch direkt wieder gewechselt werden.

Benutze ich die Standardfilterfunktionen von Access in meinem Unterformular (über rechte Maustaste, z.B. "Auswahlbasierter Filter") kann ich ebenfalls problemlos zwischen den Datensätzen hin und her springen.

Hier mein verwendeter Quellcode zum Wechseln der Datensätze:

Dim rs As dao.Recordset
Set rs = Forms!frm_gefahrstoffe.Form.RecordsetClone

rs.FindFirst "ID = " & Me.ID
If Not rs.NoMatch Then
Forms!frm_gefahrstoffe.Form.Bookmark = rs.Bookmark
End If

Set rs = Nothing


Kennt jemand eine Möglichkeit meinen Filter (Hinterlegen unterschiedlicher Abfragen als Datensatzherkunft für das Unterformular) zu verweden und das Wechseln zwischen den Datensätzen zu ermöglichen?!

Vielen Dank im Voraus!

MfG
Torben

3 Antworten

0 Punkte
Beantwortet von
"Filtermöglichkeiten bestehen über ein Dropdown, eine Optionsgruppe und eine Wildcardsuche über 3 Felder"
<- das hört sich für mich abenteuerlich an - entscheide dich für eine Auwahl und versuche diese nicht zu kombinieren. Ich denke da liegt der Fehler, daß Access nach Argumenten sucht, die es gar nicht gibt, weil die Syntax falsch ist.

Zu Not versuche diese Abfrage mal direkt in SQL einzugeben, um die Ergebnisse zu vergleichen. Das schlussfolgere ich wegen der Meldung: "Access kann das in Ihrem Ausdruck angesprochene Feld '|' nicht finden"

Das Feld "|", sieht mir nach Syntaxfehler aus.

Initialisiere die Inhalte der Felder zur Not immer neu, bzw fülle diese direkt aus einer Tabelle, so kannst Du Fehler verhindern.

Ich hoffe ich habe das Problem verstanden und rede nicht wirr ;)
0 Punkte
Beantwortet von
Hallo Stolzfuss,

danke für deine Antwort.

Die Filter an und für sich funktionieren. Es werden alle gefilterten Datensätze wie erwartet angezeigt.

Ich werde mal versuchen die Datensatzherkunft des UF beizubehalten und nur einen Filter darauf zu setzen, anstatt die Datensatzherkunft zu wechseln sobald eine Auswahl über die Filtermöglichkeiten erfolgt ist. Wobei das bei der Wildcardsuche vermutlich zu Fehlern führen wird....
0 Punkte
Beantwortet von
Hallo,

da sucht man so lange nach einer Lösung bis man in der Verzweiflung einen Forumeintrag schreibt und kaum hat man es nieder geschrieben kommt man selbst auf die Lösung.

Mit der Filtermethode konnte ich meine Anforderungen umsetzen.

MfG
Torben
...