0

我在 MS Access 中成功设置了传递查询。从某种意义上说,它是通用的,我可以通过 DAO.QueryDef ".SQL" 属性即时设置 SQL。

问题是,我似乎无法即时设置“.ReturnsRecords”属性。查询的属性表中的任何内容似乎都卡在那里。

一个例子可能会有所帮助:

Dim qdef As DAO.QueryDef 
Set qdef = CurrentDb.QueryDefs(gPassThru)
qdef.ReturnsRecords = False  ' or True
qdef.SQL = "exec dbo.sp_whatever"

重申一下,

  1. qdef.SQL 替换传递查询中的任何 SQL

  2. qdef.ReturnsRecords 不替换传递的属性表定义

有什么方法可以使查询完全通用,还是我需要根据是否返回记录来创建单独的查询?

4

1 回答 1

1

这似乎起到了作用——至少在我不需要任何记录的情况下。感谢 C Perkins 引导我朝这个方向发展。

Dim strSQL As String
Dim qdef As DAO.QueryDef

Set qdef = CurrentDb.CreateQueryDef("") 'temporary pass-through
strSQL = "exec dbo.sp_whatever"

With qdef
  .Connect = gConnect
  .SQL = strSQL
  .ReturnsRecords = False
  .Execute
End With

Set qdef = Nothing
于 2017-07-26T21:53:27.110 回答