powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Процедура
4 сообщений из 4, страница 1 из 1
Процедура
    #39842896
bbc116
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Есть база данных на MS Access и, GUI, что ли, для работы с ней.

В этом GUI (программа "Учет клиентов"), можно создавать триггеры и процедуры, ну и формировать отчеты разные, с конструктором или по запросу.

Пытаюсь написать процедуру, которая выбирала бы данные для отчета, заносила их в отдельную таблицу и далее формировать отчет с этими данными.

Проблема, которую не могу решить уже недели две как - код процедуры не обрабатывает циклы, а именно не производит выборку по запросу содержащему переменную. При этом, если переменную заменить каким-либо значением, в моем случае 1 или 2, то код обрабатывается корректно. При использовании переменной запрос возвращает значение Null.

Буду признателен любой помощи, подсказке и совету.
...
Рейтинг: 0 / 0
Процедура
    #39842963
Вы меняете саму переменную i на 1 или 2? Или в условии указываете = 'ПП1'?
Как-то странно выглядят SQL выражения в аргументе ExecuteSQL. Это строка, но открывающей кавычки перед SELECT нет, а в условии что-то типа = 'ПП'' i '" (жаль, что картинка, а не текст). Может что-то нахимичили с кавычками/апострофами?
...
Рейтинг: 0 / 0
Процедура
    #39842973
bbc116
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кривцов Анатолий,

Если бы было нахимичено с кавычками/апострофами при выполнении процедуры вылезло бы сообщение с ошибкой. Результатом выполнения кода на скриншоте будет МсгБокс Null и всё. Если в запросе заменить " & i & " на 1 или 2, МсгБокс выдаст -4443,50 или -2614 дважды (цикл исполнится дважды). И вот я никак понять не могу, почему запрос с переменной возвращает Null.

К примеру, если бы эта процедура делала заполнение таблицы по циклу вида

Counter PL = ExecuteSQL(SELECT COUNT(*) FROM tblMain WHERE MainType LIKE '%ПЛ%') 'подсчитываем кол-во подотчетных лиц в таблице "Контрагенты"
for i=1 to CountelPL
ExecuteSQL(INSERT INTO tblReport (PLID, FIOPL) VALUES ('ПЛ" & i & "', (SELECT Client FROM tblMain WHERE MainType = 'ПЛ" & i & "')))
Next

То в таблице tblReport будут записаны новые строки с правильными значениями.
...
Рейтинг: 0 / 0
Процедура
    #39843080
bbc116
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот в таком виде заработало как надо
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Процедура
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]