Hallo Leute,
ich weiss nicht wie ich hier vorgehen soll:
Ich öffne ein Formular mit Filter durch ein Button.
Dabei werden dem Kunden die entsprechenden Rechnungen angezeigt.
Alles funktioniert wunderbar, solange eine Rechnung angelegt ist! Wenn es zum Kunden aber keine gibt, dann gibt er mir eine Fehlermeldung.
Hab festgestellt, dass es daran liegt, dass wenn der Filter nichts ausspuckt, die Abfrage danach nun mehr sinnlos ist, weil es dieses Textfeld nicht mehr gibt. Dadurch gibt er mir Fehlermeldung, dass es dieses Textfeld nicht mehr gibt.
Kann man irgendwie prüfen ob überhaupt ein Textfeld "existiert" bzw, vorhanden ist? Oder Ob der Filter mehr als ein Wert ausspuckt?
'Formular öffnen
DoCmd.OpenForm "frmRechnungDeb"
'Debitor filtern
Forms!frmRechnungDeb.Form.Filter = "DebitorenID = " & Nz(Me!txtDebitorenID, "")
'Filter setzen
Forms!frmRechnungDeb.Form.FilterOn = True
'Wenn keine Rechnung vorhanden ist, bringt er hier eine Fehlermeldung. Logisch, weil es dieses Textfeld nicht mehr gibt. Lösung?
Forms!frmRechnungDeb!txtMesse = Nz(DLookup("[MesseName]", "tblMessen", "[MesseNr] = '" & Forms!frmRechnungDeb!txtMesseNr1 & "'"), "Unbekannte Messe")
Hab selbst eine Lösung gefunden :)
If Forms!frmRechnungDeb.RecordsetClone.RecordCount > 0 Then
Forms!frmRechnungDeb!txtMesse = Nz(DLookup("[MesseName]", "tblMessen", "[MesseNr] = '" & Forms!frmRechnungDeb!txtMesseNr1 & "'"), "Unbekannte Messe")
Hi,
was ich dir noch sagen wollte, du kannst den Filter direkt beim Öffnen übergeben:
'Formular mit Filter öffnen
DoCmd.OpenForm "frmRechnungDeb", acViewNormal, , "DebitorenID = " & Nz(Me!txtDebitorenID, "")wobei der Einsatz der NZ-Funktion eigentlich Unsinn ist, statt dessen sollte vor dem Öffnen des Formulars lieber geprüft werden, ob eine gültige Debitoren-ID vorliegt.
Ersatzweise geht auch:Nz(Me!txtDebitorenID, 0)das ergibt wenigstens eine gültige "Nummer".
;D ja das hab ich auch später bemerkt. habs dann auch nachträglich entfernt.