Unzulässige Verwendung von Null

Ich habe ein Formular, dass wie folgt ein Modul aufruft:

Private Sub Form\_BeforeUpdate(Cancel As Integer)
 Call AuditTrail(Me, MitgliederID, FIRMA(), STRAßE(), PLZ(), ORT(), TEL(), FAX())
End Sub

Im Modul steht folgende Sub:

Sub AuditTrail(frm As Form, recordid As Control, FIRMA As String, STRAßE As String, PLZ As String, ORT As String, TEL As String, FAX As String)
.
.
.
End Sub

Ist bspw. in einem Feld kein Eintrag vorhanden und ich fülle ihn auf oder lösche ich in einem Feld ein Eintrag, erhalte ich folgende Fehlermeldung:

Unzulässige Verwendung von Null
Laufzeitfehler ‚94‘

Wie kann ich das Problem beheben???

Schöne Grüsse aus Osnabrück,
Hans

Hallo,

definiere die Parameter als Variant anstatt String.
Das hilft aber nur beim Funktionsaufruf, je nach dem was du in der Funktion treiben willst, bleibt dir die Ueberpruefung auf isNull(xzx) nicht erspart.

Tschau
Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Peter,

definiere die Parameter als Variant anstatt String.
Das hilft aber nur beim Funktionsaufruf, je nach dem was du in
der Funktion treiben willst, bleibt dir die Ueberpruefung auf
isNull(xzx) nicht erspart.

Das habe ich schon versucht, es kamen aber nur Fehlermeldungen. Liegt aber auch sicher daran, dass ich nicht genau weiss, an welcher Stelle ich meinen Code ändern muss, darum hatte ich ihn hier mitgeliefert.

Hallo Hans,

das kann nicht funktionieren:

Private Sub Form_BeforeUpdate(Cancel As Integer)
Call AuditTrail(Me, MitgliederID, FIRMA(), STRAßE(), PLZ(),
ORT(), TEL(), FAX())
End Sub

wenn ich dich richtig verstehe, willst du Felder und nicht Funktionen übergeben?

Firma() ist eine Funktion, die du als VBA Funktion programmieren musst. Die Klammern am Ende sind ein Zeichen dafür!!

wenn du ein Feld übergeben willst nutze die einfache Variante:
Me.Firma

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo,

–der Aufruf der Funktion ist falsch
–Null-Werte können nicht an String-deklarierte Argumente übergeben werden.

Im einfachsten Fall so schreiben:

Private Sub Form_BeforeUpdate(Cancel As Integer)
Call AuditTrail(Me, Me!MitgliederID, nz(FIRMA,""), nz(STRAßE,""), nz(PLZ,""), nz(ORT,""), nz(TEL,""), nz(FAX,""))
End Sub

–der Aufruf der Funktion ist falsch
–Null-Werte können nicht an String-deklarierte Argumente
übergeben werden.
Private Sub Form_BeforeUpdate(Cancel As Integer)
Call AuditTrail(Me, Me!MitgliederID, nz(FIRMA,""),
nz(STRAßE,""), nz(PLZ,""), nz(ORT,""), nz(TEL,""), nz(FAX,""))
End Sub

Oki doki,

funktioniert. Die Fehlermeldung erscheint nicht mehr. Vielen Dank für den Hinweis.

Grüsse aus Osnabrück,
Hans

wenn ich dich richtig verstehe, willst du Felder und nicht
Funktionen übergeben?

Firma() ist eine Funktion, die du als VBA Funktion
programmieren musst. Die Klammern am Ende sind ein Zeichen
dafür!!

wenn du ein Feld übergeben willst nutze die einfache Variante:
Me.Firma

Ok, verstanden.
Vielen Dank für den Hinweis.

Grüsse aus Osnabrück,
Hans