2012-12-04 26 views
8

PROBLEMACome inserire ADO Recordset in Tabella MS Access

voglio inserire la riga di record corrente in una tabella di MS Access. Attualmente sto ottenendo questo errore

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

CODICE

Ecco il mio codice attuale, sto cercando di afferrare tutte le colonne e inserirli in una nuova tabella.

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

Non sono abbastanza sicuro di ciò che mi manca.

risposta

4

Se i campi di tipo nella tabella tblSummary_Appl_Usage_score sono numeri, utilizzare questo:

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

Se il tipo è stringa, utilizzare questo:

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

E se fossero lettere? – zach

8

Aprire tblSummary_Appl_Usage_score come DAO recordset. Quindi utilizzare il suo metodo .AddNew per creare una nuova riga e memorizzare i valori dal recordset ADO.

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 

Con questo approccio, il codice non deve essere adattato in modo diverso in base ai tipi di dati del campo del recordset. Funzionerà correttamente indipendentemente dal tipo di dati purché i campi corrispondenti siano entrambi tipi di dati uguali o compatibili.

+0

+1 per la spiegazione – HelloW

Problemi correlati