n4426
Goto Top

Vergleich zwischen Werten in Access 2007 über VBA

Hallo,

ich hab ein Problem mit einem VBA-Code in Access 2007.

ich hab in der Tabelle1 ein Feld1 und ein Formular mit einem Text-Feld (txt_Feld1) das beim klicken auf einen Button in die Tabelle geschrieben werden soll (aber nur, wenn die Werte unterschiedlich sind).


Ich habs über folgenden VBA-Code versucht. Das funktioniert auch soweit, sollang nicht entweder das Feld in der Tabelle leer ist und durchs Formuar gefüllt werden soll oder umgekert. Soll der Wert nur geändert werden, funktioniert der Code einwandfrei ("TestWert1" -> "TestWert2"). Das Script funktioniert also Solang nicht einer der beiden Werte NULL ist.

     Dim rst As DAO.Recordset

    Set rst = CurrentDb.OpenRecordset("SELECT * FROM Tabelle1 WHERE [ID]= " & Me.txt_ID, dbOpenDynaset)  

    If rst.EOF Then
        DoCmd.Close
        MsgBox "Fehler", vbExclamation, "Fehler"  
    Else
        rst.Edit

        If Not Me.txt_Feld1 Is rst!Feld1 Then
            rst!Feld1 = Me.txt_Feld1
        End If
rst.Update
    End If
rst.Close

Hab ihr da eine Idee, an was das liegen kann? Hab ich da irgendwo einen Denkfehler drin?

Vielen dank für eure Unterstützung im Voraus.

mfg
andi

<edit>
Die Formularfelder und das Formular sind ungebunden.
</edit>

Content-Key: 102924

Url: https://administrator.de/contentid/102924

Printed on: April 25, 2024 at 19:04 o'clock

Member: n4426
n4426 Nov 29, 2008 at 14:23:17 (UTC)
Goto Top
hab den Fehler gefunden.

Wenn einer der Werte NULL ist, setzt Access die IF-Abfrage sofort auf False.

Dann muss ich mir was anderes einfallen lassen.

mfg
andi
Mitglied: 27234
27234 Dec 01, 2008 at 12:31:44 (UTC)
Goto Top
Hallo,

dafür stellt VBA die Funktionen "Nz" und "IsNull" bereit.

Gruß - René
Member: n4426
n4426 Dec 01, 2008 at 14:24:01 (UTC)
Goto Top
Hi René,

habs zwar mitlerweile anders gelöst (hate noch ein anders Probelm in der DB-Struktur), werd mir aber den befehl "NZ" merken. IsNull kannte ich schon.

Trozdem vielen Dank für deine Hilfe.

mfg
andi