0

我的 tblT1 中有超过 5000 条记录我在 access 2010 中执行以下查询,并在我的报告中使用 MS Sql 服务器数据库上的链接表。

  1. 直通查询:

    PTQuery1 = "选择 tblT1.* 从 tblT1;"

但我需要根据条件(tempQuotationNo)执行上述传递查询。

我的朋友建议我以下查询:

  1. 基于传递查询的选择查询:

    Query1 = "SELECT PTQuery1.* FROM PTQuery1 WHERE PTQuery1.QuotationNo = tempQuotationNO;"

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

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

有没有人可以为我提出解决方案?

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

4

1 回答 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 & "'"
于 2014-12-07T08:33:24.263 回答