2015-02-25 4 views
0

У меня есть транзитный запрос в приложении Access 2010, который я использую для вызова хранимой процедуры на бэкэнд SQL Server. Хранимая процедура принимает параметр, который мне нужно сделать динамическим. Проблема заключается в следующем:Использовать вызов функции в запросе passthrough?

Execute spMyProc 'userName' работает должным образом.

Execute spMyProc getUserName() генерирует сообщение «синтаксическая ошибка при ')' '.

Возможно ли использовать функцию в качестве параметра в сквозном запросе?

Кроме того, я должен отметить, что я переношу сложное приложение Access на SQL-сервер, и я не очень разбираюсь в том, что я делаю. Любые предложения о том, что я делаю неправильно, будут с благодарностью получены. Этот конкретный вопрос поднимается из попытки изменить источник записи формы из простого выражения select в свойстве Record Source на то, что может быть запущено на сервере.

+0

Что такое функция getUserName() - SQL Server или Access? Доступ, который я предполагаю ...? – VBlades

ответ

1

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

With CurrentDb.QueryDefs("MyPass") 
    .SQL = "exec spMyProc '" & getUserName() & "'" 
    .Execute 
End If 

Поскольку GetUserName() является локальной функцией VBA, то вам необходимо предварительно оценить фактическую строку, отправляемая на сервер SQL. Как показано выше, использование сохраненного пароля - «удобно», поскольку вам не нужно иметь дело со строками подключения и т. Д.

+0

Это отличная идея, тем более, что я буду сталкиваться с этой ситуацией несколько раз. благодаря! – nwhaught

 Смежные вопросы

  • Нет связанных вопросов^_^