SQL VBA 中的语句
SQL statement in VBA
我正在尝试 运行 ACCESS 2013 中的以下 SQL 语句 VBA 但由于格式错误而出现错误(在这种情况下我得到 "Semicolon (;) missing from end of statement") .有人可以告诉我下面的代码我做错了什么吗?
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] & "'"
当您将数据从一个 table 拉到另一个 INSERT
时,不要使用 VALUES
。请改用 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
备注:
- 语句末尾的分号是可选的。无论有无它,Access 都会认为该语句有效。
Value
实际上并不需要在 Me.[RAC_CAP_VALS]
之后,因为它是默认值 属性。我更喜欢把它说清楚。
dbFailOnError
为您提供有关失败插入的更多信息。没有它,诸如违反主键之类的问题将悄无声息地失败。
Debug.Print strInsert
允许您检查您构建的语句并要求数据库引擎执行。如果有问题,您可以从Immediate window 中复制语句文本并将其粘贴到新的Access 查询的SQL 视图中进行测试。
我正在尝试 运行 ACCESS 2013 中的以下 SQL 语句 VBA 但由于格式错误而出现错误(在这种情况下我得到 "Semicolon (;) missing from end of statement") .有人可以告诉我下面的代码我做错了什么吗?
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] & "'"
当您将数据从一个 table 拉到另一个 INSERT
时,不要使用 VALUES
。请改用 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
备注:
- 语句末尾的分号是可选的。无论有无它,Access 都会认为该语句有效。
Value
实际上并不需要在Me.[RAC_CAP_VALS]
之后,因为它是默认值 属性。我更喜欢把它说清楚。dbFailOnError
为您提供有关失败插入的更多信息。没有它,诸如违反主键之类的问题将悄无声息地失败。Debug.Print strInsert
允许您检查您构建的语句并要求数据库引擎执行。如果有问题,您可以从Immediate window 中复制语句文本并将其粘贴到新的Access 查询的SQL 视图中进行测试。