Hallo,
ZitatLet evunam = Me.EVU_Name
MsgBox evunam 'zum Testen: Hier wird immer der 1. Wert aus dem Listenfeld gezeigt anstatt
' aus dem Satz, den ich mit der EVUNr angebe.......
Genau so ist das ja auch angegeben.....
Wie kommst Du darauf, dass in "evunam" ein Feldwert aus dem aktuellen Datensatz der geöffneten Abfrage stehen könnte?
Zitat"Jetzt möchte ich aber die Felder-Inhalte dieses Datensatzes weiter bearbeiten."
Vergiss diese Methode der Editierung eines Abfrageergebnisses und erstelle ein Formular, mit dem der/die Datensätze gefiltert und editiert werden können.
Hallo,
ZitatOder habe ich da einen grundsätzlichen Denkfehler??
Ja, und zwar einen gewaltigen. Das
acGoTo, Zahl
geht nicht zu einem bestimmten Datensatz, sondern die Zahl ist ein Offset es wird nicht zum Datensatz mit der EVUNr 26 gesprungen, sondern es wird um 26 Datensätze weiter gesprungen. Wenn Du im 5. DS bist, wird zum 31 DS gesprungen. Das kannst Du in der Hilfe zu GoToRecord nachlesen, sehr ausführlich. Für acGoTo wird der Datensatzzeiger verwendet, der aber nicht sichtbar und idendifizierbar ist. Der Datensatzzeiger wird ausschließlich intern verwendet und hat mit der sichtbaren EVUNr nichts zu tun. Der Datensatz wird ausschließlich über die EVUNr idendifiziert und das geht über einen Filter mit einem Formular. Mit einer Abfrage geht das nicht, bzw. macht keinen Sinn.
So wie ich das verstanden habe willst Du ja immer nur den im Listenfeld angeklickten Datensatz drucken, bzw. bearbeiten.
Zum Drucken reicht ein Einzeiler:
Private Sub btn_Drucken_Click()
DoCmd.OpenReport "EVUListe", acViewPreview, , "EVUNr = " & Me.Lst_EVUAuswertung
End Sub
Lege jetzt ein Formular an mit der Abfrage als Datenherkunft. Dann noch einen weiteren Button (btn_Bearbeiten) zum Bearbeiten des Datensatzes- Und der kriegt folgenden Code:
Private Sub btn_Bearbeiten_Click()
DoCmd.OpenForm "EVUListeFormular", acNormal, , "EVUNr = " & Me.Lst_EVUAuswertung
End Sub
Und fertig ist die Laube.