首页 文章

MS Access中的Filtered Pass Through查询

提问于
浏览
0

我在tblT1中有超过5000条记录,我在访问2010中执行以下查询,并在MS Sql server数据库上为我的报告执行链接表 .

  • 通过查询:

PTQuery1 =“SELECT tblT1 . * from tblT1;”

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

我的朋友建议我在下面查询:

  • 基于直通查询的选择查询:

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

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

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

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

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

1 回答

  • 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 & "'"
    

相关问题