Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Dietmar am November 26, 2014, 12:05:38

Titel: Textfelder vergleichen mit Fehlermeldung
Beitrag von: Dietmar am November 26, 2014, 12:05:38
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?
Titel: Re: Textfelder vergleichen mit Fehlermeldung
Beitrag von: MaggieMay am November 26, 2014, 12:46:28
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.
Titel: Re: Textfelder vergleichen mit Fehlermeldung
Beitrag von: Dietmar am November 26, 2014, 17:40:20
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!
Titel: Re: Textfelder vergleichen mit Fehlermeldung
Beitrag von: MaggieMay am November 26, 2014, 18:24:26
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.
Titel: Re: Textfelder vergleichen mit Fehlermeldung
Beitrag von: Dietmar am November 26, 2014, 19:51:48
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
Titel: Re: Textfelder vergleichen mit Fehlermeldung
Beitrag von: DF6GL am November 26, 2014, 20:03:59
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
Titel: Re: Textfelder vergleichen mit Fehlermeldung
Beitrag von: Dietmar am November 26, 2014, 20:21:10
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.
Titel: Re: Textfelder vergleichen mit Fehlermeldung
Beitrag von: DF6GL am November 26, 2014, 21:51:13
Hallo,

und welche Fehlermeldung?

zeig mal den Code, den Du jetzt geschrieben hast.
Titel: Re: Textfelder vergleichen mit Fehlermeldung
Beitrag von: MaggieMay am November 27, 2014, 11:11:04
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.
Titel: Re: Textfelder vergleichen mit Fehlermeldung
Beitrag von: Dietmar am November 27, 2014, 11:47:37
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.
Titel: Re: Textfelder vergleichen mit Fehlermeldung
Beitrag von: MaggieMay am November 27, 2014, 13:45:22
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";"")
Titel: Re: Textfelder vergleichen mit Fehlermeldung
Beitrag von: Dietmar am November 28, 2014, 08:04:44
Hallo MaggieMay,
jetzt funktioniert es wie gewünscht herzlichen Dank!