PDA

Vollständige Version anzeigen : Textfelder überprüfen


britney smurf
25.09.2003, 15:56
Hi!

Ich hab das Forum bereits durchsucht und auch vieles zu "Gültigkeitsprüfung" & Co. gefunden aber nichts, was mir wirklich geholfen hätte...

Ich habe 3 Textfelder (genaugenommen Kombifelder). Es darf aber nur in einem was drinnenstehen, die anderen müssen leer sein!

Die wohl einzige Möglichkeit, ohne an der Tabelle etwas zu ändern, wird wohl sein, abzufragen, ob die anderen beiden Felder leer sind, wenn man eines bearbeiten möchte. Wenn sich bereits in einem anderen Feld Text befindet, soll eine Meldung kommen und die Änderungen dürfen nicht (!) in die Tabelle geschrieben werden!!!

1.) Wie kann ich das am besten lösen?

Bei mir führt leider schon die If-Abfrage zu einem Fehler...
If ((Me.Leistung_Leistung <> "") & (Me.Leistung_OP <> "")) Then
Me.Leistung_Leistung.Undo
'MsgBox ("Bla bla!")
End If


2.) Bessere Ideen?

Danke sehr!

Johnny Loser
25.09.2003, 16:16
Also um bessere Ideen zu entwickeln, sollten wir mehr über den Sinn der ganzen Sache wissen.

Allerdings erst mal ein Tip zu Deiner Syntax:

If Me.Leistung_Leistung <> "" And Me.Leistung_OP <> "" Then
'Wenn Leistung nicht leer UND OP nicht leer
' aber besser
If Nz(Me.Leistung_Leistung, "") <> "" And Nz(Me.Leistung_OP, "") <> "" Then
'da ich davon ausgehe, daß eine leere ComboBox Dir einen Null-Wert zurückgibt
'und dieser ist Null und Nicht ""
sollte es wohl eher heißen

britney smurf
25.09.2003, 16:28
Eigentlich gehörte sowieso OR, denn es darf ja nur in einem der drei Felde was drinnen stehen... Mein Fehler...

Also der Hintergrund ist... einfach gesagt, dass eben nur ein Feld zur weiteren Berechnung herangezogen werden kann und darf und daher auch nur eines gültig sein darf.

Ich habe es jetzt mal so gelöst: Zusätzliches Feld in der Datenbank mit Wert "Byte". 0 steht für "neu", 1 für feld1 bis 3...

Dann habe ich eine Optionsgruppe mit 3 Radiobuttons erstellt, welche mit diesem neuen Feld der Tabelle verbunden ist. Beim Klick-Ereignis, disable ich die jeweils anderen Felder und schreibe einen Leer-String rein. Bei der Berechnung kann ich einfach über das neue Tabellenfeld oder die Optionsgruppen-Eigenschaft feststellen, welches Feld ausgewählt und beschrieben wurde.


Mich interessiert aber grundsätzlich noch, wie ich die Änderung in einem Textfeld rückgängig machen kann?! So dass die Eingabe überprüft wird, bevor sie in die DB geschrieben wird und gegebenenfalls wird sie verworfen... :confused:

Arne Dieckmann
25.09.2003, 16:37
Checke mal das Before-Update-Ereignis (Vor Aktualisierung) des Textfeldes. Dort kannst Du dann mit Cancel=True den Vorgang (falls gewünscht) abbrechen.