Изменить сквозную переменную запроса SQL Server

Итак, у меня есть сквозной запрос SQL Server в MS-Access, который я создал с помощью дизайна запроса. Я просто дважды щелкаю по нему, и он запускается и открывается в виде таблицы. Тогда я могу экспортировать его. Запрос выглядит так:

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

SELECT *
FROM Table
WHERE year = @acyr

У меня также есть форма со списком, помеченным как acyrList, где пользователь выбирает 2017, 2018, 2019. Я хотел бы, чтобы acyrList.Value передавался в @acyr в сквозном запросе и возвращал записи за этот год.

Как я могу этого добиться?


person David    schedule 02.08.2019    source источник


Ответы (1)


Вы можете перестроить SQL в событии Click для списка, а затем назначить этот 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
person Jim B    schedule 02.08.2019