MS Access中的Filtered Pass Through查询

时间:2014-12-05 08:45:50

标签: sql-server ms-access access-vba pass-through

我的tblT1中有超过5000条记录 我在访问2010中使用MS Sql server数据库上的链接表执行以下查询。

  1. 通过查询:

    PTQuery1 =“SELECT tblT1。* from tblT1;”

  2. 但我需要根据条件(tempQuotationNo)执行上面的Pass Through查询。

    我的朋友在下面查询了我:

    1. 基于直通查询的选择查询:

      Query1 =“SELECT PTQuery1。* FROM PTQuery1 WHERE PTQuery1.QuotationNo = tempQuotationNO;”

    2. tempQuotationNO可以是表单中的变量或字段。

      据我所知,两个查询都将tblT1的所有记录加载到客户端(加载后第二个查询过滤结果为PTQuery1)。 两者都运行正常,但我需要减少将记录加载到客户端的时间。

      有人为我建议解决方案吗?

      目标是(首先)过滤SQL Server上的记录,然后根据表单或用户定义变量中的字段将结果加载到FE,以减少将数据从SQL Server加载到客户端的时间。

1 个答案:

答案 0 :(得分:1)

只需修改PT查询,如下所示:

Dim strSQL As String
strSQL = "select * from table where QuotationNo = " & lngQuoteNum
CurrentDb.QueryDefs("MyPass").SQL = strSQL

此时你可以启动你的表单等,它将使用这个新的sql进行传递。以上假设longQuoteNum是VBA var。如果引号是文本,那么你需要这个:

strSQL = "select * from table where QuotationNo = '" & lngQuoteNum & "'"