2012-12-04 13 views
8

PROBLEMWie ADO-Recordset in MS Access-Tabelle

Ich möchte legen Sie die aktuelle Re-Cord-Zeile in eine MS Access-Tabelle einzufügen. Ich bin derzeit immer diese Fehlermeldung

Syntax error (missing operator) in query expression 'rs[columnname]' 

CODE

Hier ist mein aktueller Code, ich versuche, alle Spalten zu greifen und sie in eine neue Tabelle einzufügen.

DoCmd.RunSQL "INSERT INTO tblSummary_Appl_Usage_score VALUES (rs[Configuration], rs[User Input/Output])" 

Ich bin nicht ganz sicher, was ich vermisse.

Antwort

4

Wenn die Art Felder in der Tabelle tblSummary_Appl_Usage_score Zahlen sind, verwenden Sie diese:

DoCmd.RunSQL "INSERT INTO tblSummary_Appl_Usage_score VALUES (" & rs![Configuration] & "," & rs![User Input/Output] & ")" 

Wenn der Typ String ist, verwenden Sie diese:

DoCmd.RunSQL "INSERT INTO tblSummary_Appl_Usage_score VALUES (""" & rs![Configuration] & """,""" & rs![User Input/Output] & """)" 
+1

Was ist, wenn es sich um Buchstaben handelt? – zach

8

öffnen tblSummary_Appl_Usage_score als DAO recordset. Verwenden Sie dann die Methode .AddNew, um eine neue Zeile zu erstellen und die Werte aus Ihrem ADO-Recordset zu speichern.

Dim db As DAO.database 
Dim rsDao As DAO.Recordset 
Set db = CurrentDb 
Set rsDao = db.OpenRecordset("tblSummary_Appl_Usage_score", dbOpenTable, dbAppendOnly) 
rsDao.AddNew 
rsDao![Configuration] = rs![Configuration] 
rsDao![User Input/Output] = rs![User Input/Output] 
rsDao.Update 

Bei diesem Ansatz muss Ihr Code nicht basierend auf den Datensatzfelddatentypen anders angepasst werden. Es funktioniert unabhängig vom Datentyp korrekt, solange die übereinstimmenden Felder die gleichen oder kompatible Datentypen sind.

+0

+1 für die Erklärung – HelloW