RAC*_*CdB 2 sql ms-access vba access-vba ms-access-2013
我试图在ACCESS 2013 VBA中运行以下SQL语句,但由于格式错误而导致错误(在这种情况下,我从语句结尾处得到"分号(;)缺失").有人可以告诉我,我在下面的代码中做错了吗?
Dim dbs As dao.Database
Set dbs = CurrentDb()
dbs.Execute "INSERT INTO TEMP2 ([Study_Date], [Created_By], [Part_Number],
[Upper_Tolerance], [Lower_Tolerance], [ID21_Number]) VALUES ([Study_Date],
[Created_By], [Part_Number], [Upper_Tolerance], [Lower_Tolerance], [ID21_Number])
FROM RAC_DATA_ENTRY
WHERE [RAC_CAP_VALS] = '" & Me.[RAC_CAP_VALS] & "'"
Run Code Online (Sandbox Code Playgroud)
VALUES当您将数据从一个表格拉到另一个表格时,请勿使用INSERT.请SELECT改用.
此示例仅使用两个字段.添加您需要的其他人.
Dim strInsert As String
strInsert = "INSERT INTO TEMP2 ([Study_Date], [Created_By])" & _
" SELECT [Study_Date], [Created_By] FROM RAC_DATA_ENTRY" & _
" WHERE [RAC_CAP_VALS] = '" & Me.[RAC_CAP_VALS].Value & "';"
Debug.Print strInsert '<- view this in Immediate window; Ctrl+g will take you there
dbs.Execute strInsert, dbFailOnError
Run Code Online (Sandbox Code Playgroud)
笔记:
Value实际上并不需要跟随Me.[RAC_CAP_VALS],因为它是默认属性.我更喜欢说清楚.dbFailOnError为您提供有关失败插入的更好信息.没有它,诸如主键违规之类的问题将无声地失败.Debug.Print strInsert允许您检查您构建的语句并要求db引擎执行.如果出现问题,您可以从"立即"窗口复制语句文本并将其粘贴到新的Access查询的SQL视图中以进行测试.