Как вставить набор записей ADO в таблицу MS Access

Я хочу вставить текущую строку набора записей в таблицу MS Access. В настоящее время я получаю эту ошибку

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

код

вот мой текущий код, я пытаюсь захватить все столбцы и вставить их в новую таблицу.

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

Я не совсем уверен, что мне не хватает.

2 ответов


Если поля типа в вашей таблице tblSummary_Appl_Usage_score номера, так:

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

Если тип string, используйте это:

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

открыть tblSummary_Appl_Usage_score как DAO recordset. Тогда используйте его .AddNew метод создания новой строки и хранения значений из набора записей 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

при таком подходе ваш код не нужно адаптировать по-разному на основе типов данных поля набора записей. Он будет работать правильно независимо от типа данных, если совпадающие поля являются одинаковыми или совместимыми типами данных.