Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: smily68 am Oktober 23, 2013, 10:15:20

Titel: Syntaxfehler in Update Anweisung
Beitrag von: smily68 am Oktober 23, 2013, 10:15:20
Hallo

In meinem Code gibt es mir bei in den Zeilen db.Execute "Update.... die Fehlermeldung: Syntaxfehler in Update Anweisung.
Mir ist nun jedoch nicht recht klar wo der Fehler liegt.

Private Sub cmdBuchenHotel_Click()
'Reservation

    Dim intZim1 As Integer, intZim2 As Integer, intZim3 As Integer, intZim4 As Integer, intZimHC As Integer
    Dim rsZimmer As DAO.Recordset, rsHotel As DAO.Recordset
   
    intZim1 = 0
    intZim2 = 0
    intZim3 = 0
    intZim4 = 0
    intZimHC = 0
    Set db = CurrentDb
    Set rsZimmer = db.OpenRecordset("SELECT * FROM tblAdresseSessionZimmer  WHERE adreSesZim_Adresse_IDF = " & Me.adresse_ID & " AND adreSesZim_Session_IDF = " & Me.cboAdreSes_Session_IDF & " AND adreSesZim_Hotel_IDF = " & Me!sfrAdresseSession!cboAdreSes_Hotel_IDF & " ORDER BY adreSesZim_adresse_IDF, adreSesZim_session_IDF ", dbOpenSnapshot)
    Set rsHotel = db.OpenRecordset("SELECT * FROM qryHotelSession  WHERE hotSes_Session_IDF = " & Me.cboAdreSes_Session_IDF & " AND hotSes_Hotel_IDF = " & Me!sfrAdresseSession!cboAdreSes_Hotel_IDF & " ORDER BY hotSes_Session_IDF, hotSes_Hotel_IDF ", dbOpenSnapshot)
   
    If rsZimmer.RecordCount > 0 Then
        rsZimmer.MoveFirst
        Do Until rsZimmer.EOF
            If DLookup("zimBett_Anzahl", "tblCboZimmerBett", "zimBett_ID = " & rsZimmer!adreSesZim_ZimmerBett_IDF) = "1" Then
                intZim1 = intZim1 + 1
            End If
            If DLookup("zimBett_Anzahl", "tblCboZimmerBett", "zimBett_ID = " & rsZimmer!adreSesZim_ZimmerBett_IDF) = "2" Then
                intZim2 = intZim2 + 1
            End If
            If DLookup("zimBett_Anzahl", "tblCboZimmerBett", "zimBett_ID = " & rsZimmer!adreSesZim_ZimmerBett_IDF) = "3" Then
                intZim3 = intZim3 + 1
            End If
            If DLookup("zimBett_Anzahl", "tblCboZimmerBett", "zimBett_ID = " & rsZimmer!adreSesZim_ZimmerBett_IDF) = "4" Then
                intZim4 = intZim4 + 1
            End If
            If DLookup("zimBett_Anzahl", "tblCboZimmerBett", "zimBett_ID = " & rsZimmer!adreSesZim_ZimmerBett_IDF) = "HC" Then
                intZimHC = intZimHC + 1
            End If
            rsZimmer.MoveNext
        Loop
    End If
   
    If rsHotel.RecordCount > 0 Then
        db.Execute "Update From qryHotelSession SET hotSes_ResZimmer_1 = " & rsHotel!hotSes_ResZimmer_1 - intZim1 & " WHERE hotSes_ID = " & rsHotel!hotSes_ID
        db.Execute "Update From qryHotelSession SET hotSes_ResZimmer_2 = " & rsHotel!hotSes_ResZimmer_2 - intZim2 & " WHERE hotSes_ID = " & rsHotel!hotSes_ID
        db.Execute "Update From qryHotelSession SET hotSes_ResZimmer_3 = " & rsHotel!hotSes_ResZimmer_3 - intZim3 & " WHERE hotSes_ID = " & rsHotel!hotSes_ID
        db.Execute "Update From qryHotelSession SET hotSes_ResZimmer_4 = " & rsHotel!hotSes_ResZimmer_4 - intZim4 & " WHERE hotSes_ID = " & rsHotel!hotSes_ID
    End If
    Set rsZimmer = Nothing
    Set rsHotel = Nothing

End Sub

Gruss Daniel
Titel: Re: Syntaxfehler in Update Anweisung
Beitrag von: DF6GL am Oktober 23, 2013, 10:34:32
Hallo,

warum benutzt Du Abfragen und nicht Tabellen für den Update?

Hilfreich wäre zudem der SQL-String der Abfrage


Gibt es die angegebenen Felder in den Recordsets und haben die Werte, sind also nicht "NULL"?

Ist  in jedem Modul "Option Explicit" vorhanden?

Kannst Du die gesamte DB im VBA-Editor Debuggen/Kompilieren?
Titel: Re: Syntaxfehler in Update Anweisung
Beitrag von: smily68 am Oktober 23, 2013, 14:52:05
Hallo

Ich habe die Feldnamen überprüft, die Option explicit ist vorhanden, ich greife nun auf die tbl und nicht mehr auf die qry zu.
Die Datenbank ist zu gross um zu senden. Ich habe aber in eine kleine Test Db gemacht, wo ich genau den gleichen Fehler habe. Ich habe glaube ich habe in der folgende Zeile wirklich einen Syntax-Fehler:

       db.Execute "Update From qryHotelSession SET hotSes_ResZimmer_1 = " & rsHotel!hotSes_ResZimmer_1 - intZim1 & " WHERE hotSes_ID = " & rsHotel!hotSes_ID

Ich sende dir die Testdb.

Gruss Daniel

[Anhang gelöscht durch Administrator]
Titel: Re: Syntaxfehler in Update Anweisung
Beitrag von: Wurliwurm am Oktober 23, 2013, 15:48:45
Kleiner Tip, wie man solche Fehler einkreist:
Schreib den Updatebefehl in eine variable vom Typ String
Gib den String per Debug.print in der Konsole aus.
Anschließend poste den String hier und/oder gib in dem Abfragefenster ein und schaue, welcher Fehler kommt
Titel: Re: Syntaxfehler in Update Anweisung
Beitrag von: smily68 am Oktober 23, 2013, 19:35:32
Hallo

Ich habe den Fehler gefunden

db.Execute "Update From qryHotelSession SET hotSes_ResZimmer_1 = " & rsHotel!hotSes_ResZimmer_1 - intZim1 & " WHERE hotSes_ID = " & rsHotel!hotSes_ID

Das From nach Update ist falsch

Gruss Daniel