gpt4 book ai didi

VBA 中的 SQL 语句

转载 作者:行者123 更新时间:2023-12-02 08:23:56 25 4
gpt4 key购买 nike

我试图在 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] & "'"

最佳答案

当您从一个表中提取数据以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

注意事项:

  1. 语句末尾的分号是可选的。无论有无它,Access 都会认为该声明有效。
  2. ValueMe.[RAC_CAP_VALS] 之后实际上不是必需的,因为它是默认属性。我更愿意把它说清楚。
  3. dbFailOnError 为您提供有关失败插入的更好信息。没有它,诸如违反主键之类的问题就会悄无声息地失败。
  4. Debug.Print strInsert 允许您检查您构建的语句并要求数据库引擎执行。如果有问题,您可以从立即窗口中复制语句文本并将其粘贴到新的Access 查询的SQL View 中进行测试。

关于VBA 中的 SQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34225031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com