Использование функции Месяц в качестве критерия в запросе Access SQL - PullRequest
0 голосов
/ 05 ноября 2019

Я пытаюсь извлечь данные из базы данных Access 2016, используя SQL и VBA. Ниже приведен код, который я пытаюсь использовать, и каждый раз, когда я запускаю его, я получаю «Не задано значение для одного или нескольких параметров». Я также показал то, что вижу в ближайшем окне.

vsql = "SELECT [ResDate],[ResNanme],[ResStart],[ResEnd] FROM [TrainingRoom] where Month([ResDate]) = " & MonNo

Set RecSet1 = Connection.Execute(vsql, dbrows, adCmdText)

Немедленное окно:

SELECT [ResDate],[ResNanme],[ResStart],[ResEnd] FROM [TrainingRoom] where(Month([ResDate])) = 11

Я не вижу ничего плохого, но уверен, что это ошибка пользователя. ,Переменная «MonNo» объявляется как целое число.

Буду признателен за любые предложения. Спасибо за помощь .....

1 Ответ

0 голосов
/ 05 ноября 2019

Я никогда не использовал метод Execute для открытия набора записей ADO, только Open.

Предполагается, что Connection является объявленной и установленной переменной - но это зарезервированное слово и действительно не должно использоваться в качестве переменной. Если код находится за той же самой базой данных, извлекающей данные, можно просто использовать CurrentDb с переменной набора записей DAO и методом OpenRecordset. Пример, который принимает параметры по умолчанию для необязательных аргументов:

Dim RecSet1 As DAO.Recordset
Set RecSet1 = CurrentDb.OpenRecordset(vsql)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...