web-dev-qa-db-ja.com

ADOレコードセットをMSAccessテーブルに挿入する方法

[〜#〜]問題[〜#〜]

現在のレコードセット行をMSAccessテーブルに挿入したいと思います。現在、このエラーが発生しています

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

[〜#〜]コード[〜#〜]

これが私の現在のコードです。すべての列を取得して、新しいテーブルに挿入しようとしています。

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

何が欠けているのかよくわかりません。

8
zach

テーブルのタイプフィールドの場合tblSummary_Appl_Usage_scoreは数字です、これを使用してください:

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

タイプが文字列の場合は、次を使用します。

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

tblSummary_Appl_Usage_scoreDAO 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

このアプローチでは、レコードセットフィールドのデータ型に基づいてコードを異なる方法で適合させる必要はありません。一致するフィールドが同じまたは互換性のあるデータ型である限り、データ型に関係なく正しく機能します。

11
HansUp