Hallo, Marc!
ich habe ein Formular mit Kundenadressen.
Datenquelle? Nur ein Datensatz oder alle Kunden? Sprich: Kannst Du auch mit PgUp bzw. PgDown oder Datensatznavigator den Datensatz wechseln?
Innerhalb dieses
Formular werden in eine Liste, für den jeweiligen Kunden,
Submissionstermine angezeigt. Im Fussbereich habe ich ein
Kombinationsfeld welche ALLE Submissionstermine ALLER Kunden
auflistet.
Nach aktualisieren dieses Kombinationsfeld sollte das
Kundenformular zu den dazugehörigen Kundeneintrag springen.
Das Problem ist das die Id des Records nicht immer mit dem
PrimaryKey übereinstimmt weil bereits Datensätze der
Kundentabelle gelöscht worden sind. Dadurch kann ich nicht
mehr mit
DoCmd.GoToRecord , , acGoTo, Me.Kombinationsfeld27.Column(0)
zu dem Kundendatensatz springen. Es kann sein das PrimaryKey
125 den recordid 118 hat.(im Datensatzzeiger)
Nun gut. Aber in Deinem Me.Kombinationsfeld27.Column(0) steht schon die Kunden-Id drin? Wenn ja, was ich vermute, gibt’s zwei Varianten:
-
Du hast nur einen Datensatz in der Datenquelle. Dann kannst Du mit
Me.Filter = „ID=“&Me.Kombinationsfeld27.Column(0)
Me.FilterOn = Not IsNull(Me.Kombinationsfeld27.Column(0))
die Datenquelle entsprechend einschränken; beachte: Wenn Du keinen Datensatz in der Kombobox auswählst, sollte der Filter deaktiviert sein.
-
Du hast alle (oder zumindest mehrere) Datensätze als Datenquelle. Dann baust Du Dir am besten auch ein ID-Textfeld ins Formular ein. Dieses kann unsichtbar sein, da es nur geringen Informationsgehalt für den Anwender hat. Nach dem Aktualisieren machst Du statt obigem folgendes:
’ Textfeld einblenden
Me.txtIdFeld.Visible = True
Me.txtIdFeld.SetFocus
’ weitere Parameter von FindRecord in der Hilfe…
DoCmd.FindRecord Me.Kombinationsfeld27.Column(0)
Me…SetFocus
’ weil sonst folgendes Ausblenden nicht funktioniert:
Me.txtIdFeld.Visible = False
Gruß, Manfred