Textbox/Control auf "" überprüfen - Objekt unterstützt Eigenschaft oder Methode nicht

28/03/2008 - 15:52 von Florian Joßbächer | Report spam
Hallo zusammen,

ich habe eine kleine Funktion geschrieben, die mir eine Liste der
Textfelder erstellt, die noch nicht ausgefüllt wurden. So weit so gut.
Hier der Code:

Public Function getMissingInput(strFormName As Variant, Optional
strTag As String = "mandatory") As String

Dim ctl As Control

For Each ctl In Forms(strFormName).Controls
If ctl.Tag = strTag And IsNull(ctl) Then
If Nz(getMissingInput, "") = "" Then getMissingInput = "Es
fehlen folgene Eingaben: " & vbCrLf
getMissingInput = getMissingInput & vbCrLf &
Right(ctl.Name, Len(ctl.Name) - 4)
End If
Next ctl

End Function

Hierbei werden jetzt leider nur Felder abgefangen, die null sind. Gibt
man in einen Wert ein Feld ein, der aufgrund der
Plausibilitàtsüberprüfung wieder rausfliegt oder den man per Hand
wieder löscht, ist das Feld nicht mehr null und wird nicht mehr
aufgeführt. Jegliche versuche, dass in die Abfrage zu integrieren,
sind leider fehlgeschlagen.

Unter anderem habe ich folgendes versucht: if...
- ctl = ""
- Forms(strFormName).Controls(ctl) = ""
- nz(ctl, "") = "",
- trim(nz(ctl, "")) = "",
- alles auch mit .Value und .Text

Überall bekomme ich Laufzeitfehler 438: "Objekt unterstützt diese
Eigenschaft oder Methode nicht".

Wer hat ne Idee?

Grüße
Florian
 

Lesen sie die antworten

#1 Thomas Möller
28/03/2008 - 17:37 | Warnen spam
Hallo Florian,

"Florian Joßbàcher" schrieb:
ich habe eine kleine Funktion geschrieben, die mir eine Liste der
Textfelder erstellt, die noch nicht ausgefüllt wurden. So weit so gut.
Hier der Code:

Public Function getMissingInput(strFormName As Variant, Optional
strTag As String = "mandatory") As String

Dim ctl As Control

For Each ctl In Forms(strFormName).Controls
If ctl.Tag = strTag And IsNull(ctl) Then
If Nz(getMissingInput, "") = "" Then getMissingInput = "Es
fehlen folgene Eingaben: " & vbCrLf
getMissingInput = getMissingInput & vbCrLf &
Right(ctl.Name, Len(ctl.Name) - 4)
End If
Next ctl

End Function

Hierbei werden jetzt leider nur Felder abgefangen, die null sind. Gibt
man in einen Wert ein Feld ein, der aufgrund der
Plausibilitàtsüberprüfung wieder rausfliegt oder den man per Hand
wieder löscht, ist das Feld nicht mehr null und wird nicht mehr
aufgeführt. Jegliche versuche, dass in die Abfrage zu integrieren,
sind leider fehlgeschlagen.



ich verwende dafür i. d. R. folgende Konstruktion:

Len(Trim$(Nz(ctl,"")))=0


Unter anderem habe ich folgendes versucht: if...
- ctl = ""
- Forms(strFormName).Controls(ctl) = ""
- nz(ctl, "") = "",
- trim(nz(ctl, "")) = "",
- alles auch mit .Value und .Text

Überall bekomme ich Laufzeitfehler 438: "Objekt unterstützt diese
Eigenschaft oder Methode nicht".



Es sieht so aus, als ob Du auch ein Steuerelement mit diesem Code
"bearbeitest", dass kein Textfeld ist. Zur Sicherheit könntest Du noch
folgende Prüfung einbauen:

If ctl.ControlType = acTextBox Then


CU
Thomas

Homepage: www.Team-Moeller.de

Ähnliche fragen