Hallo zusammen,
ich habe ein Hauptformular mit dem Textfeld MatDicke und eins MatFarbe die mir die entsprechenden Daten des Fertigproduktes anzeigen.
Im Unterformular habe ich ebenfalls ein Textfeld MatDicke und eins MatFarbe das mir die entsprechenden Daten des Rohproduktes anzeigen.
Nun möchte ich im Unterformular ein Textfeld einrichten das mir eine Fehlermeldung anzeigt falsches Rohmaterial, wenn die Daten nicht übereinstimmen.
Wie kann ich das machen?
Hallo Dietmar,
du kannst bspw. in der Ereignisprozedur zum Unterformularereignis "Beim Anzeigen" folgenden Code einfügen:If Me.MatFarbe <> Me.Parent.MatFarbe Or Me.MatDicke <> Me.Parent.MatDicke Then
Me.txtFehler = "Fehler!"
Else
Me.txtFehler = ""
End If
Zusätzlich kannst du die Prüfung in den Ereignissen "Nach Aktualisierung" der beteiligten Textfelder vornehmen.
Hi,
es funktioniert leider nicht, der Fehler liegt denke ich bei mir.
Ich habe gesagt, dass ich ein Hauptformular habe und ein Unterformular.
Es ist aber so, das ich ein Hauptformular habe und zwei Unterformulare
die Daten müssen aus dem 1.Unterformular mit dem Namen Auftragsdaten mit dem zweiten Unterformular Auftragsbearbeitung verglichen werden.
Sorry!
Dann könnte es folgendermaßen klappen:
If Me.MatFarbe <> Me.Parent.Auftragsbearbeitung.Form.MatFarbe Or Me.MatDicke <> Me.Parent.Auftragsbearbeitung.Form.MatDicke Then
vorausgesetzt, "Auftragsbearbeitung" ist (auch) der Name des Unterformularsteuerelements.
Hi,
habe jetzt alle mir möglichen Versuche probiert aber es funktioniert einfach nicht.
In der FehlerTextbox wird nichts angezeigt!
Private Sub Form_Current()
If Me.MatFarbe <> Me.Parent.frmAuftragsbearbeitung.Form.MatFarbe Or Me.MatDicke <> Me.Parent.frmAuftragsbearbeitung.Form.MatDicke Then
Me.txtFehler = "Fehler!"
Else
Me.txtFehler = ""
End If
End Sub
Makros sind aktiviert, Textfeld heißt txtFehler
Hallo,
wenn der Code sich im Unterform "frmAuftragsbearbeitung" befindet (vermutlich, weil "txtFehler" dort vorhanden ist, dann sollte das so syntaktisch lauten:
If Me!MatFarbe <> Me.Parent!MatFarbe Or Me!MatDicke <> Me!Parent.MatDicke Then
Hi,
danke für deine Antwort. Du hast recht das Textfeld txtFehler befindet sich im Unterformulat frmAuftragsbearbeitung.
Wenn ich den Code so ändere wie du es beschrieben hast, bekomme ich genau in der Zeile beim Starten des Formulars einen Debuggen.
Hallo,
und welche Fehlermeldung?
zeig mal den Code, den Du jetzt geschrieben hast.
Hallo,
Zitat von: Dietmar am November 26, 2014, 17:40:20Es ist aber so, das ich ein Hauptformular habe und zwei Unterformulare
daraus hatte ich geschlossen, dass die beiden Ufos nebeneinander liegen, was aber nicht der Fall ist.
Der folgende Code sollte aus dem 2. Ufo heraus funktionieren, sofern die Feldnamen stimmen:
If Me.MatFarbe <> Me.Parent.Form.MatFarbe Or Me.MatDicke <> Me.Parent.Form.MatDicke Then
Hinweis:
Ufos werden vor dem HF geladen, also wird auch UF2 vor UF1 geladen, wodurch beim Öffnen des HF der Zugriff von UF2 auf UF1 vermutlich fehlschlägt. Der Fehler müsste dann abgefangen bzw. ignoriert werden.
Hallo ,
vielen Dank für deine Mühe. So langsam kommen wir der Sache näher.
Habe auf Empfehlung ein neues Formular gebastelt. Also so wie ich es zu Anfang beschrieben habe. HFO und UFO.
In meinem Unterformular werden mehrere Datensätze angezeigt, wenn eine Unstimmigkeit vorhanden ist, wird das auf alle Datensätze übertragen bei einer richtigen Eingabe ebenfalls, sonst funktioniert das.
In einem Endlosformular kannst du die Prüfung nicht per VBA vornehmen, da musst du das über den Steuerelementinhalt des Textfeldes lösen, bspw. so:
=Wenn(MatFarbe <> Parent.Form.MatFarbe Oder MatDicke <> Parent.Form.MatDicke;"Fehlermeldung";"")
Hallo MaggieMay,
jetzt funktioniert es wie gewünscht herzlichen Dank!