Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Aloster am August 30, 2013, 14:32:12

Titel: Laufzeitfehler 3075
Beitrag von: Aloster am August 30, 2013, 14:32:12
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!
Titel: Re: Laufzeitfehler 3075
Beitrag von: DF6GL am August 30, 2013, 17:39:14
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)
Titel: Re: Laufzeitfehler 3075
Beitrag von: Aloster am September 02, 2013, 15:06:09
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!