2016-09-22 3 views
0

Ich mache derzeit eine Service-System-Anwendung mit Excel VBA. Ich habe ein Benutzerformular, um die Eingabe zu erhalten, und ich möchte die Importdaten in einigen Microsoft Access-Tabellen speichern.Exportieren von Daten von Excel zu Access mit VBA in Microsoft Excel Fehler

Ich versuche, die Daten aus dem Benutzerformular zu ziehen und in die Zugriffstabelle einzugeben Wenn ich diesen Code ausführen, habe ich einen Syntaxfehler. Ich brauche deine Hilfe, bitte.

Public Sub AddDatabaseEntry() 

    Dim cn As New ADODB.Connection 
    Dim rs As New ADODB.Recordset 
    Dim stDB As String, stSQL As String, stProvider As String 
    Dim Name As String 
    Dim Address As String 

    Name = TextBox1 
    Address = TextBox2 

    stDB = "Data Source= " & ThisWorkbook.Path & "\SERVDB.accdb" 
    stProvider = "Microsoft.ACE.OLEDB.12.0" 

    'Opening connection to database 
    With cn 

     .ConnectionString = stDB 
     .Provider = stProvider 
     .Open 

    End With 

'SQL Statement of what I want from the database 
    stSQL = "INSERT INTO Client (FullName, Address) " & _ 
      "Values (" & Name & ", " & Address & ")" 

    cn.Execute stSQL 

    cn.Close 
    Set rs = Nothing 
    Set cn = Nothing 

End Sub 

Private Sub CommandButton2_Click() 

    AddDatabaseEntry 

End Sub 
+2

Unter der Annahme, dass '' FullName' und address' sind VARCHAR, Sie Texterkennungszeichen hinzufügen müssen in Ihre Einfügung. Besser wäre es, [den Befehl zu parametrisieren] (http://stackoverflow.com/documentation/vba/3578/working-with-ado/12354/creating-parametrized-commands). – Comintern

+0

Bitte fügen Sie Details des Syntaxfehlers hinzu –

Antwort

0

Was @Comintern sagt, kann auf diese Weise erklärt werden.
Wickeln Sie Ihre String-Variablen in entkam doppelte Anführungszeichen oder einfache Anführungszeichen

Gefällt Ihnen dieses

stSQL = "INSERT INTO Client (FullName, Address) " & _ 
      "Values (""" & Name & """, """ & Address & """)" 

Oder diese

stSQL = "INSERT INTO Client (FullName, Address) " & _ 
      "Values ('" & Name & "', '" & Address & "')" 

Wie als Randbemerkung,

ist es sehr ratsam, „NAME“ Variable etwas anderes zu ändern, als dass ein reserviertes Wort in VB/VBA ist

Verwandte Themen