我正在尝试使用 Excel VBA 中的 SQL 将填充了数据的新行插入到一个简单的访问表中,并且无法克服第一个障碍。
我有一个名为“Test”的表,有四个字段;
ID [标识为主键的自动编号字段]
Text1 [文本字段]
YN1 [A 是/否字段]
No1 [长整型数字字段]
除了自动编号字段 (PK) 之外,没有设置任何关系或索引。所有字段都将“必填”设置为否,没有设置验证,也没有设置默认值。Text1 可以接受零长度。
我的VBA代码的业务端如下:
'Connection string.
stcnt = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & stDBPath & stDBname
'Instantiate the ADO-objects
Set cnt = New ADODB.Connection
'Open the connection for first Query
With cnt
.Open (stcnt) 'Open the connection.
.CursorLocation = adUseClient
'Test Data
T1 = "ABC123"
Y1 = -1
N1 = 17
stSQL1 = "INSERT INTO Test(Text1, YN1, No1) " _
& "VALUES(T1, Y1, N1)"
.Execute (stSQL1)
End With
'Close connection
cnt.Close
我的变量已适当调暗(Y1 作为布尔值)并且正确声明了路径/数据库名称。
在线上
.Execute (stSQL1)
我收到错误消息“没有为一个或多个必需参数提供值”
我已经读到您可以省略 AutoNumber 字段及其值(我已经这样做了)。如果没有,有人可以给我包含这个的语法。以我有限的知识/研究,我也可能没有正确对待“YesNo”字段。再次感谢任何处理此问题的建议和语法。
Access 数据库位于我的硬盘驱动器上,无论在运行 VBA 代码时 Access 是打开还是关闭,我都会收到相同的错误。
直接粘贴到 Access 'SQL View' 窗口中的我的 SQL 语句运行良好,并在表测试中插入了正确填充的行。
请专家(尤其是使用正确的语法)帮助我克服这个问题,我们将不胜感激。