Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Suche einen Lösungsansatz (Filter zählen oder prüfen ob Textfeld vorhanden ist)

Begonnen von Nadeshiko, Juni 11, 2015, 11:43:49

⏪ vorheriges - nächstes ⏩

Nadeshiko

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")


Nadeshiko

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")

MaggieMay

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".
Freundliche Grüße
MaggieMay

Nadeshiko

 ;D ja das hab ich auch später bemerkt. habs dann auch nachträglich entfernt.