访问 VBA SQL 命令 INSERT 获取多个值

问题描述 投票:0回答:1

我需要在 VBA Access 中向表中的列添加值。 但列是数字和查找(来自其他表)和多个值

我尝试了很多命令:

 Private Sub buttRec_Click()
   Dim db As DAO.Database
 
   strSQL = "INSERT INTO TABB (BNUM) VAULE (3)"
   Set db = CurrentDb
   db.Execute strSQL
   Set db = Nothing
 End Sub

我尝试过的 strSQL 选项:

strSQL = "INSERT INTO TABB (BNUM) VALUES (1), (2), (3);"
strSQL = "INSERT INTO TABB (BNUM) VALUES (1,2,3);"
strSQL = "INSERT INTO TABB (BNUM) VALUES ('1,2,3');"
strSQL = "INSERT INTO TABB (BNUM) VALUES (1;2;3);"
strSQL = "INSERT INTO TABB (BNUM) VALUES ('1;2;3');"
strSQL = "INSERT INTO TABB (BNUM) SELECT '1' UNION SELECT '3'"
strSQL = "INSERT INTO TABB (BNUM) SELECT 1 UNION SELECT 3"

如何做到这一点?
感谢您的帮助。

sql vba ms-access-2016
1个回答
0
投票

您可以选择在循环中插入每行一次:

Private Sub buttRec_Click()
   Dim db As DAO.Database
 
   Set db = CurrentDb
   For i = 1 To 3
        strSQL = "INSERT INTO Tabb (BNUM) VALUES (" & i & ")"
        db.Execute strSQL
   Next i
   Set db = Nothing
 End Sub

如果要添加大量行,这会很慢,但对于少数行来说,这会非常快。

您可以选择使用您要查找的 UNION 查询路由并劫持另一个表以防止其抛出错误。

INSERT INTO Tabb (BNUM)
SELECT *
FROM (
    SELECT TOP 1 1 as BNUM FROM MSysObjects
    UNION ALL SELECT TOP 1 2 FROM MSysObjects
    UNION ALL SELECT TOP 1 3 FROM MSysObjects
   ) dt
 
© www.soinside.com 2019 - 2024. All rights reserved.