Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Access 2010 - Neues Formular mit aktuellem Datensatz öffnen

Frage Microsoft Microsoft Office

Mitglied: FMTh753

FMTh753 (Level 1) - Jetzt verbinden

14.02.2014 um 13:54 Uhr, 7327 Aufrufe, 5 Kommentare, 1 Danke

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
Mitglied: colinardo
14.02.2014, aktualisiert um 15:01 Uhr
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
Bitte warten ..
Mitglied: FMTh753
14.02.2014 um 16:29 Uhr
Hallo Uwe, vielen Dank für Deine Antwort.

Ich war mir nicht ganz sicher, ob sich Dein Tipp auf die Tabelle oder die Formulare bezieht und habe deshalb hier wie dort nachgesehen:
Das Tabellenfeld, das den Primärschlüssel enthält, heißt ID.
Wenn ich in den Formularen die Eigneschaften Textbox mit er ID überprüfe, steht dort immer
Name: ID
Steuerelementinhalt: ID

Es sieht aber so aus, als habe ich hier einen Denkfehler gemacht; ich habe versucht, den genannten Befehl auszuführen, ohne dass die Datenbank überhaupt irgendwelche Einträge hat (wie gesagt, ich bin noch in der Entwurfsphase). Es ist wohl so: Kein Datensatz = keine ID = kein Operator?!

Ich nach Deinem Hinweis mal 10 Datensätze (durch Texteingabe in der Tabelle) testweise angelegt. Es funktioniert jetzt so: Wenn ich im ersten Formular z. B. beim Datensatz 5 mit der ID 5 bin, dann wird über die Schaltfläche das zweite Formular auch tatsächlich bei ID 5 geöffnet, so wie ich es haben möchte. Allerdings wird in der kleinen Navigationsleiste am unteren Bildschirmrand dann "Datensatz: 1 von 1" angezeigt (nicht "Datensatz: 5 von 10").

Hast Du da vielleicht noch eine Idee, woran das liegen könnte?

Grüße, Frederic
Bitte warten ..
Mitglied: colinardo
14.02.2014, aktualisiert um 17:07 Uhr
Zitat von FMTh753:
Es ist wohl so: Kein Datensatz = keine ID = kein Operator?!
yip, klar keine Daten, nichts zum Anzeigen ...
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:
01.
DoCmd.OpenForm "frmEinordnung" 
02.
DoCmd.SearchForRecord acDataForm, "frmEinordnung", acFirst, "ID=" & Me.ID.Value
Grüße Uwe
Bitte warten ..
Mitglied: FMTh753
14.02.2014 um 19:32 Uhr
DoCmd.OpenForm "frmEinordnung"
DoCmd.SearchForRecord acDataForm, "frmEinordnung", acFirst, "ID=" & Me.ID.Value

Hey, wenn ich das mit dem Filter beachte funktioniert es schon sehr gut, tausend Dank dir Uwe!!!

Ich würde deinen Alternativvorschlag auch mal ausprobieren, um zu sehen, mit welcher Einstellung ich besser arbeiten kann.
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, Frederic
Bitte warten ..
Mitglied: colinardo
14.02.2014 um 21:08 Uhr
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)

Grüße Uwe
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Datenbanken
gelöst Syntaxfehler VBA Access 2010 (6)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Datenbanken
gelöst Access 2010 Abfrage erster Werktag (10)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Datenbanken
gelöst Access 2010 komplizierte Abfrage (3)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Datenbanken
gelöst Hilfe bei "Distinct" Befehl in Access 2010 (3)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...