MicrosoftAccessでINSERTSQLクエリを実行するにはどうすればよいですか?
例えば:
INSERT INTO tbl_UserPurchase (ID, Name) Values (321, Joe)
MicrosoftAccessでINSERTSQLクエリを実行するにはどうすればよいですか?
例えば:
INSERT INTO tbl_UserPurchase (ID, Name) Values (321, Joe)
SQLでリテラルを引用する必要があります。
INSERT INTO tbl_UserPurchase (ID, Name) VALUES (321, 'Joe')
Accessのクエリデザイナでクエリを作成し、デザインビューで、リボンの[実行]をクリックします。(赤い説明ポイントを探してください。)
コードから実行する場合は.Execute
、DAOデータベースオブジェクトまたはADOCurrentProject.Connection
オブジェクトのいずれかのメソッドを使用できます。
Dim strInsert As String
strInsert = "INSERT INTO tbl_UserPurchase (ID, [Name])" & vbCrLf & _
"VALUES(321, 'Joe');"
CurrentDb.Execute strInsert, dbFailOnError
ただし、パラメータクエリはより柔軟で(Joeだけでなく、他のユーザー名にも役立ちます)、SQLインジェクションを防ぎます。
Dim db As DAO.database
Dim qdf As DAO.QueryDef
Dim strInsert As String
strInsert = "INSERT INTO tbl_UserPurchase (ID, [Name])" & vbCrLf & _
"VALUES (321, [which_user]);"
Set db = CurrentDb
Set qdf = db.CreateQueryDef("", strInsert)
' you could read the parameter value from a text box on a form,
' but this example will just hard code Joe
qdf.Parameters("[which_user]").value = "Joe"
qdf.Execute dbFailOnError
そして、この猫の皮を剥ぐ方法はまだ他にもあります。いずれの提案も満足のいくものではない場合は、を実行する方法と場所について詳しく教えてくださいINSERT
。
VarChar
名前フィールドは(またはDBの文字列値)であると思うので、クエリは次のようになります。
INSERT INTO tbl_UserPurchase (ID, Name) Values(321, 'Joe');
これを試して:INSERT INTO tbl_name VALUES (1, 'xyz')
それがあなたのために働いたならば、私に知らせてください。
幸運を