Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Access 2010 - Neues Formular mit aktuellem Datensatz öffnen

Begonnen von FMTh, Februar 14, 2014, 13:59:46

⏪ vorheriges - nächstes ⏩

FMTh

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

bahasu

Hi,

http://www.office-loesung.de/ftopic641348_0_0_asc.php
bei crossposting gibt es eher weniger als mehr Antworten. Siehe Forenregeln.

Ist sichergestellt, dass ID ein Zahlenfeld ist?

Harald
Servus

Hondo

Hallo,
sind beide Formulare gebunden?
heißt das Tabellenfeld der Datenherkunft im Formular frmHerkunft wirklich "ID" oder hast du in diesem Formular ein Textfeld eingefügt das "ID" heisst? Ist dieses Feld gebunden an die Datenherkunft?

Weil ansonsten ist der Aufruf korrekt.
Gruß Andreas

FMTh

Hallo, Danke für die Antworten und sorry wegen des Mehrfachposts.

Ja, die Formulare sind beide gebunden. In den Eigenschaften der Textbox "ID" in frmHerkunft steht:
Name: ID
Steuerelementinhalt: ID
Ich habe beim Entwerfen des Formulars die Textbox direkt aus der Feldliste in das Formular gezogen.

In den Feldeigenschaften für ID steht bei Feldgröße: LongInteger.

Mir ist jetzt im Nachninein aufgefallen, dass der Befehl wohl nicht funktioniere kann, solange noch keine Datensätze eingegeben sind, denn dann sind ja auch noch keine ID Schlüssel vergeben. Könnte das den fehlenden Operator aus dem Laufzeitfehler erklären?

DF6GL

Hallo,


in der Tat...

Schreib mal so, dann wird dieser Fall abgefangen:

DoCmd.OpenForm "frmEinordnung",,,"ID=" & nz(Me!ID,0)

Hondo

Zitat
Mir ist jetzt im Nachninein aufgefallen, dass der Befehl wohl nicht funktioniere kann, solange noch keine Datensätze eingegeben sind, denn dann sind ja auch noch keine ID Schlüssel vergeben. Könnte das den fehlenden Operator aus dem Laufzeitfehler erklären?
Da fällt mir jetzt auch nichts mehr dazu ein.  :o

bahasu

Hi,
Zitat von: FMTh am Februar 14, 2014, 13:59:46
Da sich verschiedene Informationen sinnvoll gruppieren lassen, möchte ich sie jeweils gemeinsam über ein separates Formular ansprechen bzw. dort die Daten eingeben.

eine andere Möglichkeit kann auch sein, solche Gruppierungen auf verschiedenen Registerkarten unterzubringen.

Harald
Servus