Routine nach Werteingabe in Textfeld wird trotzdem alter Wert genommen

10/08/2009 - 15:11 von Volker Neurath | Report spam
Hallo zusammen,

damit der andere Thread nicht unübersichtlich wird, hier neu:

Das neue Form und sein Code arbeiten soweit, jedoch hànge ich nun an
einem weiteren Problem:

in dem form gibt es zwei ungebundene Eingabefelder, mit denen ich Werte
an die eigentliche "Arbeits"funktion übergebe(n möchte).

Mein problem ist:

ich habe aus Gründen der Kontrolle mein Childform so programmiert, dass
das erste Feld "txtOldQuot", mit einem Wert aus dem ParentForm vorbelegt
ist - dieser Wert kann dan überschrieben werden.

Das zweite Textfeld, txtNewQuot, ist leer.

Nur funktioniert das nicht.
Wenn ich das ChildForm aufrufe, dann ist txtOldQuot vorbelegt, wie
gewünscht (z.B. mit 930000106) (Typ LONG)

Ich überschreibe den Wert, klicke OK und das child meldet mir nun

"930000106 existiert nicht" (was quatsch ist, das ist der aus dem
Parentform übernommene Wert!)

Mir stellen sich zwei Fragen:
1. wieso nimmt Access die übergebene Nummer und nicht die manuell
eingegebene?

2. warum meldet mir Access - etgegen den Tatsachen - dass 930000106
nicht existiert?

Was braucht ihr, um helfen zu können?

Volker

Wenn es vom Himmel Zitronen regnet -- lerne, Limonade zu machen.
 

Lesen sie die antworten

#1 Volker Neurath
10/08/2009 - 16:54 | Warnen spam
Ich hab den Fehler selber gefunden:

in meiner Routine werden die beiden Eingabefelder vor der
Weiterverarbeitung geprüft - und zwar wird geprüft, ob die Werte (es
handelt sich dabei um angebotsnummern) in der DB vorhanden sind bzw.
nicht vorhanden sind.

Die Prüfung für das erste dieser Felder sah so aus:

If IsNull(DLookup("lngQuotationNr", "tblQuotMaster", "lngQuotationNr =
" & str(Me!txtNewQuot.Value))) Then
...
Exit Sub
End If

und das mochte Access nicht.
Erst durch Ergànzung:

If IsNull(DLookup("lngQuotationNr", "tblQuotMaster", "lngQuotationNr
= " & str(Me!txtNewQuot.Value))) _
And Me!txtNewQuot <> Nz(Me!txtNewQuot.OldValue) Then
...
Exit Sub
End If

funktionierte es wie gewünscht.

Könnte hier bitte mal jemand den "Erklàr-Bàr" machen und mal kurz
erlàutern, warum Variante 2 funktioniert, Variante 1 aber nicht?

ich möchte schliesslich nicht nur "machen" sondern auch verstehen.

volker

Wenn es vom Himmel Zitronen regnet -- lerne, Limonade zu machen.

Ähnliche fragen