Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: ibins am März 25, 2016, 18:20:31

Titel: docmd.openform bringt Fehlermeldung: Syntaxfehler (fehlender Operator)
Beitrag von: ibins am März 25, 2016, 18:20:31
Liebe Profis!
Aus einer Liste (lstMusikanten) möchte ich das Stammdatenformular (frmRegisterkarte) durch Doppelklick öffnen und im Stammdatenformular den entsprechenden Datensatz anzeigen lassen.
Private Sub lstMusikanten_DblClick(Cancel As Integer)

DoCmd.OpenForm "frmRegisterkarte"
Forms!frmRegisterkarte.Recordset.FindFirst "mus_id=" & Me!lstMusikanten


End Sub


Die Fehlermeldung bekomme ich auf die 2. Zeile. Ohne dieser funktioniert das öffnen des Formulars problemlos.

Verwunderlich ist für mich, dass ich aus dem gleichen Formular aus einer anderen Liste (lstMusikprobe) ebenfalls ein anderes Formular mit entsprechnendem Datensatz per Doppelklick öffnen kann. Da funktioniert alles einwandfrei! Beide "Zielformulare" sind gebundene Formulare und haben ein Feld mit der entsprechenden ID.
Private Sub lstMusikprobe_DblClick(Cancel As Integer)

DoCmd.OpenForm "frmNeueMusikprobe"
Forms!frmNeueMusikprobe.Recordset.FindFirst "mp_id=" & Me!lstMusikprobe

End Sub


Wo liegt der Fehler?

Freue mich auf eure Hilfe!!!
Titel: Re: docmd.openform bringt Fehlermeldung: Syntaxfehler (fehlender Operator)
Beitrag von: MzKlMu am März 25, 2016, 18:44:20
Hallo,
was ist  "mus_id" für ein Datentyp (Text/Zahl) ?
Titel: Re: docmd.openform bringt Fehlermeldung: Syntaxfehler (fehlender Operator)
Beitrag von: ibins am März 25, 2016, 18:54:50
Hallo MzKiMu!
"Mus_id" ist eine Zahl und der Primäschlüssel der tblMusikanten.
Titel: Re: docmd.openform bringt Fehlermeldung: Syntaxfehler (fehlender Operator)
Beitrag von: DF6GL am März 25, 2016, 19:49:04
Hallo,

warum öffnest Du das Form (bzw. die Formulare) nicht mit Übergabe der Where-Condition bei der Openform-Methode?

Private Sub lstMusikanten_DblClick(Cancel As Integer)
DoCmd.OpenForm "frmRegisterkarte",,,"mus_id=" & Me!lstMusikanten.Column(0)
End Sub


sofern der ID-Wert in Spalte 0 des Listenfeldes steht und es nicht im Mehrfachauswahl-Modus ist.....
Titel: Re: docmd.openform bringt Fehlermeldung: Syntaxfehler (fehlender Operator)
Beitrag von: Beaker s.a. am März 25, 2016, 20:40:16
Hallo Franz,
Zitatwarum öffnest Du das Form (bzw. die Formulare) nicht mit Übergabe der Where-Condition bei der Openform-Methode?
Vielleicht will er die Möglichkeit des Blätterns bewahren?
gruss ekkehard
Titel: Re: docmd.openform bringt Fehlermeldung: Syntaxfehler (fehlender Operator)
Beitrag von: ibins am März 25, 2016, 20:58:32
Hab´s grad ausprobiert. Funktionieren würde es, aber das mit dem blättern ist wirklich blöd. Auf die erste Art und Weise wäre es mir lieber.

Kann es daran liegen, dass bei lstMusikanten eine Mehrfachauswahl möglich ist? Das ist eigentlich der einizige Unterschied zwischen den beiden Feldern. Aber das wäre wieder unlogisch, denn den Klick gibts ja doch nur auf einen Datensatz. Bin echt ratlos.
Titel: Re: docmd.openform bringt Fehlermeldung: Syntaxfehler (fehlender Operator)
Beitrag von: ibins am März 25, 2016, 21:04:17
So funktioniert´s:

DoCmd.OpenForm "frmRegisterkarte"
Forms!frmRegisterkarte.Recordset.FindFirst "mus_id=" & Me!lstMusikanten.Column(0)


Warum auch immer....  :D
Titel: Re: docmd.openform bringt Fehlermeldung: Syntaxfehler (fehlender Operator)
Beitrag von: MzKlMu am März 25, 2016, 23:24:09
Hallo,
ZitatWarum auch immer....
weil Du eine falsche gebundene Spalte hast.
Titel: Re: docmd.openform bringt Fehlermeldung: Syntaxfehler (fehlender Operator)
Beitrag von: ibins am März 25, 2016, 23:44:26
Das ist aber auch für den Anfang ein bisschen viel...    ;)

Das Aufrufen des Formulars funktioniert perfekt. Allerdings ist in dem Formular auch ein Listenfeld. Der Cursor (?) des Listenfeldes springt natürlich nicht von alleine auf den ausgewählten Datensatz. Gibt es dazu auch noch einen Tip?

Hatte mal einen FindFirst Befehl drin, aber mir ist lieber, kein Datensatz wird schwarz hinterlegt, als der falsche.
Titel: Re: docmd.openform bringt Fehlermeldung: Syntaxfehler (fehlender Operator)
Beitrag von: MaggieMay am März 26, 2016, 00:17:08
Hallo,
Zitat von: ibins am März 25, 2016, 20:58:32Kann es daran liegen, dass bei lstMusikanten eine Mehrfachauswahl möglich ist?
ja, das macht durchaus einen Unterschied. Schau dir doch einfach mal die diesbezüglichen Artikel in der Access-Hilfe an. Der Einstieg über F1 nach Markierung der Listenfeldeigenschaft "Mehrfachauswahl" könnte dich in die richtige Richtung führen. Dann einfach alles lesen was dazu angeboten wird. Weitere hilfreiche Stichwörter in diesem Zusammenhang könnten sein "ItemData" und "ItemsSelected".
Titel: Re: docmd.openform bringt Fehlermeldung: Syntaxfehler (fehlender Operator)
Beitrag von: MzKlMu am März 26, 2016, 09:48:56
Hallo,
ZitatDer Cursor (?) des Listenfeldes springt natürlich nicht von alleine auf den ausgewählten Datensatz. Gibt es dazu auch noch einen Tip?
Ja, im Formularereignis "Beim Anzeigen" kann man dem Listenfeld den Primärschlüssel des angezeigten Datensatzes zuweisen.
Die gebunden Spalte des Listenfeldes sollte dabei auf 1 stehen und darin ebenfalls der PS angezeigt werden. Dann geht es so:
Me.NameListenfeld = Me.FormularfeldMitPs

Titel: Re: docmd.openform bringt Fehlermeldung: Syntaxfehler (fehlender Operator)
Beitrag von: ibins am März 26, 2016, 11:05:59
Ich hatte die Ereignisprozedur auf "beim Öffnen" versucht und hat nicht geklappt. Auf "beim Anzeigen" wäre ich nicht gekommen!

Herzlichen Dank für die tolle Hilfe und die starken Nerven, die ihr immer mit uns Anfängern habt!
Titel: Re: docmd.openform bringt Fehlermeldung: Syntaxfehler (fehlender Operator)
Beitrag von: MaggieMay am März 26, 2016, 22:20:25
Hallo,

"Beim Öffnen" ist zu früh, da dort noch gar nicht auf die zugrunde liegenden Daten zugegriffen werden kann.
"Beim Laden" wäre eine Alternative, die sich aber nur auf den ersten Datensatz bezieht.