Выполнение SQL запросов в VBA Access

программирование базы данных VBA access

Есть Функция:

'Функция для выполнения SQL запросов
Function sqlexec(ByVal query As String) As Boolean
On Error GoTo On_Error
Dim cmd As Command
Set cmd = New ADODB.Command
cmd.ActiveConnection = CurrentProject.Connection
cmd.CommandText = query
cmd.Execute
sqlexec = True
On_Error:
sqlexec = False
End Function


И место где она используется:

If sqlexec("EXECUTE dbo.SP_GetProdName 2") Then
MsgBox ("True")
Else
MsgBox ("false")
End If

Почему в Любом случае выводиться false даже если запрос проверен в SQL Server и он корректнен
Может я Сделал что то не правльно?
Где может быть моя ошибка, Как будет првильно?

Примечание:
Спасибо ennuyé
Exit Function помогло

Как тока я сам не дотукался ))
Ответы:
Здесь несколько ошибок:
1) после sqlexec = True надо бы выйти из функции, иначе, даже если все будет хорошо выполнение будет продолжено и выполнится sqlexec = false
2) вероятно твоя процедура возвращает набор записей, его надо куда-то получить
3) а затем получить и значения возвращеных записей
4) неплохо бы явно указывать тип команды (и вообще для вызова хрони может стоит использовать adCmdStoredProc?
5) ну и в обработчике ошибок полезно их выводить, чтобы знать, обо что споткнулись


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.