在MS Access accdb VBA中,我如何知道以什么顺序为在需要参数的查询上构建的查询提供参数

在我的VBA子例程中,我想从复杂查询中创建一个新表

(qryA UNION ALL qryB UNION ALL qryC)

strSQL = "select * into tblNew from qryComplex"

后续查询(超过3个初始值)需要在打开的表单中找到的参数(假设为4).

通过选择,它的工作原理,例如,

Set qdf = db.CreateQueryDef("", strSQL)
qdf.Parameters(0) = Forms!frmMain.txtF1
qdf.Parameters(1) = Forms!frmMain.txtF2
qdf.Parameters(2) = Forms!frmMain.txtF3
qdf.Parameters(3) = Forms!frmMain.txtF1
qdf.Execute

我怎么知道所需的订单是确定性的?

如何确定订单和内容,而无需深入了解后续查询并尝试组合?

最佳答案 Access支持PARAMETERS子句,即使某些/所有参数仅用于基础查询,也可以确定参数的顺序.您只需确保为所有参数命名,并使用正确的名称和类型. PARAMETERS子句后面必须跟一个分号.

您可以使用Access中的“参数”对话框来帮助您:

《在MS Access accdb VBA中,我如何知道以什么顺序为在需要参数的查询上构建的查询提供参数》

《在MS Access accdb VBA中,我如何知道以什么顺序为在需要参数的查询上构建的查询提供参数》

假设您的所有参数都需要是短文本,您的查询将如下所示:

PARAMETERS Param1 Text ( 255 ),Param2 Text ( 255 ), Param3 Text ( 255 );
SELECT * INTO tblNew
  FROM qryComplex;
点赞