958 Aufrufe
Gefragt in Datenbanken von
Hallo Miteinander,

ich habe ein Formular "KundeDaten" erstellt bei dem Kundendaten in dem Listenfeld "lbSuche" angezeigt werden. Wenn man den Button "btnChange" betätigt öffnet sich das Formular "KundeÄndern". Um eine Fehlermeldung zu vermeiden falls kein kunde im Listenfeld "lbSuche" makiert ist, habe ich den folgenden code:

Private Sub btnChange_Click()


If Form_KundeDaten.lbSuche.Value = 0 Then

Exit Sub

Else

DoCmd.OpenForm "KundeÄndern"

End If

End Sub

Problem:

Obwohl der debugger anzeigt, dass Form_KundeDaten.lbSuche.Value = 0 ist, öffnet es trotzdem das Formular "Kunde ändern". Dies löst einen Fehler aus, da "KundeÄndern" die Daten aus dem Listenfeld "lbSuche" zieht.

Frage: Wie lautet der code, damit Formular"KundeÄndern" nur aufgerufen wird wenn ein Datensatz aus dem Listenfeld makiert ist?

vielen Dank im Vorraus

3 Antworten

0 Punkte
Beantwortet von
Hallo,
vielleicht so:
If Form_KundeDaten.lbSuche.Value = "" Then

Gruß
fedjo
0 Punkte
Beantwortet von rahi Experte (1.4k Punkte)
Hallo ODB,

das hier sollte funktionieren:

Private Sub btnChange_Click()

If not isnull(me!lbsuche) Then
DoCmd.OpenForm "KundeÄndern"
End If

End Sub


Und noch'n Tipp:

Deine oben angedeutete Methode in dem Formular "KundenÄndern" auf "lbSuche" zuzugreifen funktioniert, ist aber i.d.R. schwer nachzuvollziehen (zumindest für mich ;-)), daher ein alternativer Vorschlag. Nimm das Kriterium zum Öffnen des Formulars direkt in den Aufruf des Formulars, also so was wie

DoCmd.OpenForm "KundeÄndern",,,"ID = " & me!lbSuche

Die "ID" musst du noch deiner Umgebung anpassen. So ist das Formular allgemeiner benutzbar, z.B. wenn du mehrere Kunden aus der Liste aussuchts, musst du nur den letzten Parameter ändern, und zwar dort, wo auch die Informationen dazu liegen.

Gruß
Ralf
0 Punkte
Beantwortet von
Hallo Ralf,

vielen dank für deine Antwort, sie hat mein Problem gelöst. Deine anderen Tipps werde ich auch beachten.

viele Grüße
...