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-ID: 102924

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

Ausgedruckt am: 24.11.2024 um 09:11 Uhr

n4426
n4426 29.11.2008 um 15:23:17 Uhr
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
27234
27234 01.12.2008 um 13:31:44 Uhr
Goto Top
Hallo,

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

Gruß - René
n4426
n4426 01.12.2008 um 15:24:01 Uhr
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