Передать значение даты таблицы доступа в качестве параметра хранимой процедуре SQL Server
У меня есть хранимая процедура в SQL Server 2016 с именем usp_createRecord
который принимает 2 параметра start_date
а также end_date
,
У меня есть таблица в MS Access с именем MyReport
это имеет 8 столбцов - 2 из них являются startDate
а также endDate
,
Мне нужно передать значение даты из MS Access в качестве параметра для хранимой процедуры SQL Server. Выполните хранимую процедуру и отобразите ее в книге MS Access.
Надеюсь, мне было ясно.
1 ответ
Я думаю, что вам понадобится запрос с полем, вызывающим функцию VBA, передающую ваши параметры, которая возвращает значение из сквозного запроса, SQL
определяется во время выполнения. Если вы вызываете такую функцию для большого количества строк, она будет медленной.
Например, вам нужен сквозной запрос с вашим подключением к вашему SQL Server. Я позвоню qry_PT_createRecord
,
Тогда вам нужно public function
в VBA с вашими двумя date
переданные параметры, которые изменяют сквозной запрос sql
собственность, как:
Public Function g_createRecord(startDate As Date, endDate As Date) As Integer
Dim db As Database
Dim qdef As QueryDef
Dim sql As String
Set db = CurrentDb()
Set qdef = db.QueryDef("qry_PT_createRecord")
qdef.sql = "exec usp_createRecord " & startDate & "," & endDate
g_createRecord = qdef.Execute
End Function
Затем вам нужен запрос для отображения ваших полей из MyReport
вызовите функцию и верните значение sp, если оно есть. Я позвоню на этот запрос qry_createRecord
, SQL будет выглядеть так:
Select
ID,
startDate,
endDate,
g_createRecord(startdate,enddate)
from
myReport