Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Nadeshiko am Juni 11, 2015, 11:43:49

Titel: Suche einen Lösungsansatz (Filter zählen oder prüfen ob Textfeld vorhanden ist)
Beitrag von: Nadeshiko am Juni 11, 2015, 11:43:49
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")

Titel: Suche einen Lösungsansatz (Filter zählen oder prüfen ob Textfeld vorhanden ist)
Beitrag von: Nadeshiko am Juni 11, 2015, 12:19:52
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")
Titel: Re: Suche einen Lösungsansatz (Filter zählen oder prüfen ob Textfeld vorhanden ist)
Beitrag von: MaggieMay am Juni 11, 2015, 12:45:22
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".
Titel: Suche einen Lösungsansatz (Filter zählen oder prüfen ob Textfeld vorhanden ist)
Beitrag von: Nadeshiko am Juni 11, 2015, 14:03:47
 ;D ja das hab ich auch später bemerkt. habs dann auch nachträglich entfernt.