Передать значение даты таблицы доступа в качестве параметра хранимой процедуре 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
Другие вопросы по тегам