Как вызвать пользовательскую функцию SQL -Server с помощью Access vba - PullRequest
0 голосов
/ 07 августа 2020

Можно вызвать оконную sql пользовательскую функцию базы данных, используя код доступа vba?

Я обнаружил вызов функции db.testFunction (id) в базе данных sql; Я использую SQLNCL11.1 в качестве провайдера и ADODB для подключения.

Как мне использовать эту функцию в коде доступа vba?

1 Ответ

0 голосов
/ 07 августа 2020

Предполагается, что в этом приложении есть рабочие связанные таблицы?

Затем просто создайте сквозной запрос. Введите свою функцию с оператором выбора впереди. Запустите запрос pt. Он должен вернуть ваше значение. Итак, в конструкторе запросов создайте этот запрос PT. В качестве источника запроса PT вы можете ввести любой допустимый t- sql, но в этом случае имеет смысл ввести тест функции.

Скажите это:

SELECT dbo.textFunction(12)

Если это сработает (и УБЕДИТЕСЬ, что это работает - вы не написали ни строчки кода). Как только у вас будет работать этот PT-запрос?

Затем вы можете использовать этот код VBA:

Sub Test33434()

   Dim lngID           As Long
   Dim lngReturnValue  As Long
   
   lngID = 1234
   
   With CurrentDb.QueryDefs("qryPass")
      .SQL = "select dbo.testFunction(" & lngID & ")"
      lngReturnValue = .OpenRecordset()(0)
   End With

End Sub

Итак, выше у нас есть значение, которое мы передаем, и возвращаемое значение. И обратите внимание, что нам не нужно связываться с каким-либо объектом подключения в коде - поэтому использование сохраненного запроса PT - это хорошо, поскольку в коде нет строк подключения.

...