Access 2010
Hallo,
ich habe ein Unterformular "Bankformular" im Hauptformular "Adressenformular". Im Ufo "Bankformular" habe u.a. ein ungebundenes Feld "Zahl" und eine gebundenes Feld "Zähler" sowie folgenden Code:
Private Sub Form_Current()
If Not Nz(DLookup("Kennummer", "Bankdaten", 0)) Then
Me.Zahl.DefaultValue = DMax("Zähler", "Bankdaten", "Kennummer =" & [Kennummer]) + 1
Else
Me.Zahl.DefaultValue = 1
End If
End Sub
Zunächst soll damit in der Tabelle "Bankdaten" nachgeschaut werden, ob für die betreffende Kennummer (=Person) ein Datensatz oder mehrere Datensätze mit (lfd.) Zähler und Bankdaten vorhanden sind. Wenn ja, wird der maximale Zähler der betreffenden Kennummer ausgelesen und an das Feld "Zahl" im Ufo weitergegeben. Wenn nicht, dann erhält das Feld "Zah" den Wert "1".
Wenn ich nur das Unterformular "Bankformular" öffnen, funktioniert der Code wunderbar. Öffne ich dagegen das Hauptformular "Adressenformular" (mit dem eingebundenen Ufo "Bankformular") kommt folgende Fehlermeldung:
Laufzeitfehler 3075
Syntaxfehler (fehlender Operator) im Abfrageausdruck 'Kennummer='.
Woran liegt das?
Vielen dank im Vorraus!
Hallo
offensichtlich ist das Form-Textfeld "[Kennummer]" leer oder nicht initialisiert....
Vielleicht wäre der Code besser im Form_Current-Ereignis des Hauptforms aufgehoben.. (mit entspr. Anpassung)
Hallo Franz,
ich habe es nun hinbekommen:
Private Sub Form_Current()
If Not IsNull(DLookup("Kennummer", "Bankdaten", "Kennummer =" & Forms!EingabeAdressen![Kennummer])) Then
Me.Zahl.DefaultValue = DMax("Zähler", "Bankdaten", "Kennummer =" & Forms!EingabeAdressen![Kennummer]) + 1
Else
Me.Zahl.DefaultValue = 1
End If
End Sub
Dein Hinweis hat mir geholfen. Danke!