我需要在 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"
如何做到这一点?
感谢您的帮助。
您可以选择在循环中插入每行一次:
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