0

因此,我在使用查询设计创建的 MS-Access 中有一个 SQL Server 直通查询。我只需双击它,它就会运行并在数据表视图中打开。然后我可以导出它。查询如下所示:

DECLARE @acyr AS varchar(4);
 SELECT @acyr = '2018'

SELECT *
FROM Table
WHERE year = @acyr

我还有一个带有标记为 acyrList 的列表框的表单,用户从 2017、2018、2019 年选择。我希望 acyrList.Value 在传递查询中传递给 @acyr 并返回该年的记录。

我怎样才能做到这一点?

4

1 回答 1

2

您可以在列表框的 Click 事件中重建 SQL,然后将该 SQL 分配给传递查询。就像是:

Private Sub acyrList_Click()
  Dim strSQL As String
  strSQL = "DECLARE @acyr AS varchar(4); " & _
           "SELECT @acyr = '" & acyrList.value & "'; " & _
           "SELECT * From Table WHERE year = @acyr;"

  'MsgBox strSQL
  CurrentDb.QueryDefs("passthrough_query_name").sql = strSQL
End Sub
于 2019-08-02T18:19:46.613 回答