更改 SQL 服务器传递查询变量

Change SQL Server Pass Through Query Variable

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

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

SELECT *
FROM Table
WHERE year = @acyr

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

我怎样才能做到这一点?

您可以在列表框的 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