2016-05-25 5 views
0

Ich schreibe derzeit meine Add/Update-Schaltfläche in MS Access 2013, aber aus irgendeinem seltsamen Grund, der Probleme beim Versuch hat, es funktionieren zu lassen, sagt mir nur, dass ich einen Syntaxfehler in der UPDATE-Anweisung habe ‘... hier ist mein Code Gesamt:HINZUFÜGEN/AKTUALISIEREN KNOPF Syntaxfehler

Private Sub cmdAdd_Click() 
    'In the button add we have two options 
    '1. Insert 
    '2. Update 
    If Me.txtID.Tag & "" = "" Then 

    CurrentDb.Execute "INSERT INTO tblClients (ClientID, ClientName, Gender, " & _ 
          "City, [Address (Fisical)], [Cellphone/Telephone]) " & _ 
           "SELECT " & Me.txtID & ",'" & Me.txtName & "','" & Me.cboGender & "', '" & Me.cboCity & "','" & Me.txtAddress & "','" & Me.txtCellphone & "'" 
    Else 
    'Otherwise the data will be updated 
    CurrentDb.Execute "UPDATE tblClients" & _ 
    "SET ClientID =" & Me.txtID & _ 
    ", ClientName='" & Me.txtName & "'" & _ 
    ", Gender='" & Me.cboGender & "'" & _ 
    ", City='" & Me.cboCity & "'" & _ 
    ", Cellphone/Telephone='" & Me.txtCellphone & "'" & _ 
    ", Address (Fisical) ='" & Me.txtAddress & "'" & _ 
    "WHERE ClientID =" & Me.txtID.Tag 


    End If 


    cmdClear_Click 

    tblClients_subform.Form.Requery 


    End Sub 

bitte benötigt helfen

+0

Wahrscheinlich ein Dataping-Fehler, warum sind die Verweise auf 'Me.TxtId' und' Me.TxtId.Tag' nicht in einfache Anführungszeichen eingeschlossen? Geben diese Felder keine Zeichenfolgen zurück, wie es bei Textfeldern normalerweise der Fall ist? – Dave

+0

Klammerfeldnamen, die andere Zeichen als Buchstaben, Ziffern und Unterstriche ('_') enthalten:' [Handy/Telefon] 'und' [Adresse (Fisical)] 'Mit anderen Worten, führen Sie diese Feldnamen für das UPDATE aus 'wie du sie für das' INSERT' gemacht hast. – HansUp

+0

Erwägen Sie, zu Parameterabfragen zu wechseln, anstatt Werte in SQL-Anweisungstext zu verketten. – HansUp

Antwort

0

Sieht schließen, denken sie an es auf diese Weise, weil ich weiß, dass es mich frustriert, wenn es passiert. Wenn der Fehler einen Syntaxfehler anzeigt, lügt er nicht, und in den meisten Fällen konnte er das Holz für die Bäume nicht sehen. Sie fehlt ein paar Räume: -

CurrentDb.Execute "UPDATE [tblClients]" & _ 
" SET [ClientID] =" & Me.txtID & _ 
", [ClientName]='" & Me.txtName & "'" & _ 
", [Gender]='" & Me.cboGender & "'" & _ 
", [City]='" & Me.cboCity & "'" & _ 
", [Cellphone/Telephone]='" & Me.txtCellphone & "'" & _ 
", [Address (Fisical)] ='" & Me.txtAddress & "'" & _ 
" WHERE [ClientID] =" & Me.txtID.Tag 
  • Raum vor SET ClientID...
  • Raum vor WHERE ClientID
  • Bracket Spalten- und Tabellennamen

Auch ein Trick, den ich für diese gelernt: -

  1. Öffnen Sie eine ne w Abfrage und zeigen Sie die SQL
  2. die Zeichenfolge einfügen, die ausgeführt worden wäre, in sie
  3. Run es

Sie erhalten mehr Informationen darüber, wo das Problem ist.

+0

vielen Dank! es hat jetzt funktioniert !! –