Access 2010 - Neues Formular mit aktuellem Datensatz öffnen
Hallo zusammen,
ich bin Access-Einsteiger und auf ein Problem gestoßen, das mir schon etwas länger zu schaffen macht. Leider habe ich frühere Lösungsvorschläge bisher nicht erfolgreich umsetzen können. Ich bitte deshalb hier um etwas Hilfe.
Ich habe in Access 2010 ein kleines Datenbankmodell entworfen, in dem ich archäologische Denkmäler sammeln möchte. Konkret geht es um römische Mosaiken. Ich habe eine Tabelle angelegt, die in den verschiedenen Feldern die Informationen (ID, Kat_Nr, Land, Stadt_Ort, Kontext, Datierung, Beschreibung, Vergleiche, Literatur,…) zu jedem einzelnen Mosaik enthalten soll, d. h., jedem Mosaik entspricht ein Datensatz in der Tabelle.
Da sich verschiedene Informationen sinnvoll gruppieren lassen, möchte ich sie jeweils gemeinsam über ein separates Formular ansprechen bzw. dort die Daten eingeben. frmHerkunft enthält z. B. die Eingabefelder für Land, Stadt_Ort und Kontext; frmEinordnung enthält die Eingabefelder für Vergleiche und Literatur; usw. … Über Schaltflächen-Steuerelemente kann ich aus einem Formular jeweils das nächste öffnen.
Nun möchte ich, dass, wenn in einem Formular ein bestimmter Datensatz ausgewählt ist, im (mittels Schaltfläche) neu geöffneten Formular derselbe Datensatz angezeigt wird, anstatt immer zum aktuellen Datensatz navigieren zu müssen. Ich habe gedacht, dass die folgende Routine beim Klick auf die Schaltfläche eigentlich funktionieren müsste:
DoCmd.OpenForm "frmEinordnung",,,"ID=" & Me.ID
Allerdings wird dann immer angezeigt:
Laufzeitfehler '3075': Syntaxfehler (fehlender Operator) in Abfrageausdruck 'ID=.'
Ich habe dazu auch schon einiges recherchiert, aber bei mir funktioniert keiner der vorgeschlagenen Lösungswege. Deutet der angezeigte Fehler eventuell darauf hin, dass irgendwo etwas mit der Benennung von Elementen nicht stimmt? Nach einigem Ausprobieren habe ich keine Idee mehr, voran es liegen könnte.
Vielen Dank für die Hilfe.
Grüße, Frederic
ich bin Access-Einsteiger und auf ein Problem gestoßen, das mir schon etwas länger zu schaffen macht. Leider habe ich frühere Lösungsvorschläge bisher nicht erfolgreich umsetzen können. Ich bitte deshalb hier um etwas Hilfe.
Ich habe in Access 2010 ein kleines Datenbankmodell entworfen, in dem ich archäologische Denkmäler sammeln möchte. Konkret geht es um römische Mosaiken. Ich habe eine Tabelle angelegt, die in den verschiedenen Feldern die Informationen (ID, Kat_Nr, Land, Stadt_Ort, Kontext, Datierung, Beschreibung, Vergleiche, Literatur,…) zu jedem einzelnen Mosaik enthalten soll, d. h., jedem Mosaik entspricht ein Datensatz in der Tabelle.
Da sich verschiedene Informationen sinnvoll gruppieren lassen, möchte ich sie jeweils gemeinsam über ein separates Formular ansprechen bzw. dort die Daten eingeben. frmHerkunft enthält z. B. die Eingabefelder für Land, Stadt_Ort und Kontext; frmEinordnung enthält die Eingabefelder für Vergleiche und Literatur; usw. … Über Schaltflächen-Steuerelemente kann ich aus einem Formular jeweils das nächste öffnen.
Nun möchte ich, dass, wenn in einem Formular ein bestimmter Datensatz ausgewählt ist, im (mittels Schaltfläche) neu geöffneten Formular derselbe Datensatz angezeigt wird, anstatt immer zum aktuellen Datensatz navigieren zu müssen. Ich habe gedacht, dass die folgende Routine beim Klick auf die Schaltfläche eigentlich funktionieren müsste:
DoCmd.OpenForm "frmEinordnung",,,"ID=" & Me.ID
Allerdings wird dann immer angezeigt:
Laufzeitfehler '3075': Syntaxfehler (fehlender Operator) in Abfrageausdruck 'ID=.'
Ich habe dazu auch schon einiges recherchiert, aber bei mir funktioniert keiner der vorgeschlagenen Lösungswege. Deutet der angezeigte Fehler eventuell darauf hin, dass irgendwo etwas mit der Benennung von Elementen nicht stimmt? Nach einigem Ausprobieren habe ich keine Idee mehr, voran es liegen könnte.
Vielen Dank für die Hilfe.
Grüße, Frederic
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 229803
Url: https://administrator.de/forum/access-2010-neues-formular-mit-aktuellem-datensatz-oeffnen-229803.html
Ausgedruckt am: 26.04.2025 um 01:04 Uhr
5 Kommentare
Neuester Kommentar
Hallo Frederic, Willkommen im Forum!
heißt das Steuerelement bzw. der Name der Textbox in der die ID steht tatsächlich "ID" ? Bitte überprüfe das im Eigenschaften-Explorer. Für mich sieht die Fehlermeldung sehr offensichtlich danach aus das Me.ID leer ist bzw. nicht existiert und deswegen der Fehler kommt (Fehlender Operator auf der rechten Seite des Gleichheitszeichens).
Geb der Textbox auch mal einen anderen Namen als "ID" z.b. txtID und gebe sie in der Funktion dann so an: Me.txtID.Value.
Grüße Uwe
heißt das Steuerelement bzw. der Name der Textbox in der die ID steht tatsächlich "ID" ? Bitte überprüfe das im Eigenschaften-Explorer. Für mich sieht die Fehlermeldung sehr offensichtlich danach aus das Me.ID leer ist bzw. nicht existiert und deswegen der Fehler kommt (Fehlender Operator auf der rechten Seite des Gleichheitszeichens).
Geb der Textbox auch mal einen anderen Namen als "ID" z.b. txtID und gebe sie in der Funktion dann so an: Me.txtID.Value.
Grüße Uwe
yip, klar keine Daten, nichts zum Anzeigen ...
Alternativ dazu könntest du die Form normal öffnen und mit der SearchForRecord-Methode den aktuellen Datensatz setzen. So wird kein Filter gesetzt und du bist trotzdem auf dem aktuellen Datensatz:
☼ Grüße Uwe
Hast Du da vielleicht noch eine Idee, woran das liegen könnte?
Das ist ja normal weil du damit einen Filter im Formular aktivierst. Wenn du den Filter in der Symbolleiste wieder raus nimmst kommst du wieder auf alle Datensätze des Formulars.Alternativ dazu könntest du die Form normal öffnen und mit der SearchForRecord-Methode den aktuellen Datensatz setzen. So wird kein Filter gesetzt und du bist trotzdem auf dem aktuellen Datensatz:
DoCmd.OpenForm "frmEinordnung"
DoCmd.SearchForRecord acDataForm, "frmEinordnung", acFirst, "ID=" & Me.ID.Value
Zitat von @FMTh753:
Für mich als Access-Neuling: Wie müsste ich den Code in VBA einbauen? Deine Nummerierung bedeutet, es sind zwei separate Befehle in der Ereignisprozedur desselben Formulars?
Richtig, die Nummerierung macht hier nur die Codeformatierung im Forum, die Befehle sind natürlich untereinander an der selben Stelle anstatt deines obigen Befehls einzugeben (also in der Click-Prozedur deines Buttons)Für mich als Access-Neuling: Wie müsste ich den Code in VBA einbauen? Deine Nummerierung bedeutet, es sind zwei separate Befehle in der Ereignisprozedur desselben Formulars?
Grüße Uwe