使用VBA代码在Access中运行SQL语句

时间:2014-01-28 12:13:38

标签: sql vba ms-access

我无法弄清楚这有什么不妥, 我正在从表单中收集搜索条件以在搜索中使用它。

这样存储的SQL行:( strWhere是从表单中收集的信息)

  

SQLst =“SELECT Deposits.Fines,Deposits。[Deposit Value],Deposits。[Deposit Date],Deposits.Depositor,Info.Tower,Deposits。[Account Number] FROM Info,Deposits Where”& strWhere& “;”

最终的SQL语句如下所示:

  

SELECT Deposits.Fines,Deposits。[Deposit Value],Deposits。[Deposit Date],Deposits.Depositor,Info.Tower,Deposits。[Account Number] FROM Info,Deposits Where([Account Number] =“1234” );

现在我使用此命令运行Line(SQLst是SQL Line up)

  

DoCmd.OpenQuery SQLst

我收到此消息:

enter image description here

1 个答案:

答案 0 :(得分:5)

不是DoCmd.OpenQuery SQLst,即保存的查询,而不是SQL字符串。你需要:

' Best to use a separate instance, so you can get record counts etc.
Set db = CurrentDB

对于动作查询:

db.Execute SQLst, dbFailOnerror

对于SELECT查询,您可以使用记录集或更新或创建查询。

Set rs = db.Openrecordset(SQLst)

' This query does not exist
Set qdf = db.CreateQueryDef("MyQuery", SQLst)

我怀疑帐号是文字,所以:

 ([Account Number] = 1234);

引号用于文本类型的字段/列,数字按原样,日期用哈希(#)分隔。