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

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

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

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

我收到这条消息:

sql vba ms-access
1个回答
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);

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

© www.soinside.com 2019 - 2024. All rights reserved.