繁体   English   中英

MS Access参数化查询VB

[英]MS Access parameterized queries VB

dbs.Execute " INSERT INTO Log " _
  & "(UserName, DateAccessed) VALUES " _
  & "(@GetLogonName, @Today);"  

GetLogonName和Today是变量,但出现错误“错误-参数太少,预期为两个”。 如果我使用&“('abce','2/2/2012')之类的实际值运行该函数,则它将起作用。

我究竟做错了什么?

谢谢

Database.Execute不接受查询参数,仅接受RecordsetOptionEnum中定义的执行选项。

要运行参数化查询,您需要创建一个QueryDef对象:

Dim query As QueryDef
Set query = dbs.CreateQueryDef("", "INSERT INTO LOG (UserName,DateAccessed)" & _
                                         " VALUES(@user,@time)")
query.Parameters("@user").Value = "Moo"
query.Parameters("@time").Value = Now
query.Execute

空字符串表示这是一个临时QueryDef。 如果输入任何其他名称,或完全省略该名称,则将在数据库中创建一个新的Query对象。

如果您经常使用相同的查询,则最好创建一个查询并按名称进行调用:

Set query = dbs.QueryDefs("myQueryName")
...

QueryDef.Execute接受与Database.Execute相同的执行参数

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM