Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Обращение к запросу через VBA / 25 сообщений из 37, страница 1 из 2
14.05.2020, 08:17
    #39957232
PavelPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к запросу через VBA
Приветствую, уважаемые форумчане.
В своей базе я сделал запрос, в нем выводятся поля из двух таблиц.
Запрос формируется нормально, но вот при обращении к этому запросу через Recordset получаю сообщение что мало параметров и Требуется 1. Но запрос то заполнен, вот он передо мной и в нем есть записи. ничо не понимаю. К стати проверил, что если в запросе нет условия для отбора записей, то все в порядке и VBA его видит, но при создании условия сразу же слепнет.
Прошу Вашей помощи. Спасибо.
...
Рейтинг: 0 / 0
14.05.2020, 08:22
    #39957233
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к запросу через VBA
PavelPK
получаю сообщение что мало параметров и Требуется 1

почти наверняка проблемы с кавычками для символьных полей поиска и запятыми для дробных числовых
...
Рейтинг: 0 / 0
14.05.2020, 08:27
    #39957236
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к запросу через VBA
PavelPK
Запрос формируется нормально
Покажите финальный текст запроса. И код, который пытается его выполнить.
...
Рейтинг: 0 / 0
14.05.2020, 08:47
    #39957243
PavelPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к запросу через VBA
Код: vbnet
1.
sql = "SELECT Недееспособные.Фамилия AS Недееспособные_Фамилия, Недееспособные.Имя AS Недееспособные_Имя, Недееспособные.Отчество AS Недееспособные_Отчество, Недееспособные.Статус FROM Недееспособные WHERE Недееспособные.Статус=[действующий]"




Код: vbnet
1.
2.
Dim Record_set As Recordset
Set Record_set = CurrentDb.OpenRecordset(sql)



Есть готовый запрос, сформированный посредством Акса, результат такой же. Условие есть- параметров мало, условия нет- все в порядке.
...
Рейтинг: 0 / 0
14.05.2020, 08:57
    #39957247
bubucha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к запросу через VBA
кто такой [действующий] ?
...
Рейтинг: 0 / 0
14.05.2020, 09:29
    #39957252
Обращение к запросу через VBA
[действующий], это параметр, который при открытии запроса на экране у вас запрашивается (разве не так?). А в VBA этот параметр надо либо заменить в строке SQL на требуемое значение (например Статус='действующий'), либо открывать Recordset иначе (используя QueryDef).
...
Рейтинг: 0 / 0
14.05.2020, 10:13
    #39957266
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к запросу через VBA
PavelPK,
я бы предпочла поделить строку, для наглядности
Код: vbnet
1.
2.
3.
4.
5.
6.
sql = "SELECT Недееспособные.Фамилия AS Недееспособные_Фамилия,"
sql=sql & " Недееспособные.Имя AS Недееспособные_Имя,"
sql=sql & "  Недееспособные.Отчество AS Недееспособные_Отчество,"
sql=sql & "  Недееспособные.Статус FROM Недееспособные"
sql=sql & "  WHERE Недееспособные.Статус=[действующий]"
debug.print sql



пара секунд и ошибку сразу видно
...
Рейтинг: 0 / 0
14.05.2020, 11:36
    #39957322
PavelPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к запросу через VBA
А ннет. Не помогло

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Dim sql As String
sql = "SELECT Недееспособные.Фамилия AS Недееспособные_Фамилия,"
sql = sql & " Недееспособные.Имя AS Недееспособные_Имя,"
sql = sql & "  Недееспособные.Отчество AS Недееспособные_Отчество,"
sql = sql & "  Недееспособные.Статус FROM Недееспособные"
sql = sql & "  WHERE Недееспособные.Статус=[действующий]"
Debug.Print sql


Dim Record_set As Recordset
Set Record_set = CurrentDb.OpenRecordset(sql)



Все таже проблема
...
Рейтинг: 0 / 0
14.05.2020, 11:45
    #39957325
PavelPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к запросу через VBA
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
sql = "SELECT Недееспособные.Фамилия AS Недееспособные_Фамилия,"
sql = sql & " Недееспособные.Имя AS Недееспособные_Имя,"
sql = sql & "  Недееспособные.Отчество AS Недееспособные_Отчество,"
sql = sql & "  Недееспособные.Статус FROM Недееспособные"
'sql = sql & "  WHERE Недееспособные.Статус=[действующий]"
Debug.Print sql


Dim Record_set As Recordset
Set Record_set = CurrentDb.OpenRecordset(sql)



Вот в этом случае все работает прекрасно, НО мне нужно обратиться к запросу с выбранными данными, а не ко всем записям, содержащимся в таблицах.
...
Рейтинг: 0 / 0
14.05.2020, 11:50
    #39957328
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к запросу через VBA
PavelPK,

это для символьного статуса

Код: vbnet
1.
2.
3.
4.
5.
sql = "SELECT Недееспособные.Фамилия AS Недееспособные_Фамилия,"
sql = sql & " Недееспособные.Имя AS Недееспособные_Имя,"
sql = sql & "  Недееспособные.Отчество AS Недееспособные_Отчество,"
sql = sql & "  Недееспособные.Статус FROM Недееспособные"
sql = sql & "  WHERE Недееспособные.Статус='" & ME.[действующий] & "'"





для числового кода
......
sql = sql & " WHERE Недееспособные.Статус=" & ME.[действующий]
...
Рейтинг: 0 / 0
14.05.2020, 11:50
    #39957329
bubucha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к запросу через VBA
еще раз...кто такой
[действующий]
кто он, что он и откуда берется?
...
Рейтинг: 0 / 0
14.05.2020, 11:54
    #39957332
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к запросу через VBA
PavelPK
Вот в этом случае все работает прекрасно, НО мне нужно обратиться к запросу с выбранными данными, а не ко всем записям, содержащимся в таблицах.

Вам уже 100 раз задали вопрос, кто такой -действующий ???
Если это значение поля , по которому должно быть ограничение , то его нужно взять в кавычки как string , см. сдесь :
https://www.sql.ru/faq/faq_topic.aspx?fid=157
...
Рейтинг: 0 / 0
14.05.2020, 12:05
    #39957337
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к запросу через VBA
DarkMan
PavelPK
Вот в этом случае все работает прекрасно, НО мне нужно обратиться к запросу с выбранными данными, а не ко всем записям, содержащимся в таблицах.

Вам уже 100 раз задали вопрос, кто такой -действующий ???
Если это значение поля таблицы , по которому должно быть ограничение , то его нужно взять в кавычки как string , см. сдесь :
https://www.sql.ru/faq/faq_topic.aspx?fid=157
...
Рейтинг: 0 / 0
14.05.2020, 12:07
    #39957338
PavelPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к запросу через VBA
bubucha,

Есть поле в таблице "Статус" называется, он бывает "действующий", "умер" и "выбыл".
Вот мне нужны сведения о действующих товарисчах.
...
Рейтинг: 0 / 0
14.05.2020, 12:07
    #39957339
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к запросу через VBA
DarkMan
DarkMan
пропущено...

Вам уже 100 раз задали вопрос, кто такой -действующий ???
Если это значение поля таблицы , по которому должно быть ограничение , то его нужно взять в кавычки как string , см. сдесь :
https://www.sql.ru/faq/faq_topic.aspx?fid=157


Блин , хотел изменить , а получилось новое сообщение .
P.S Если слово действующий это значение поля таблицы , а далее см.выше. :))
...
Рейтинг: 0 / 0
14.05.2020, 12:07
    #39957340
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к запросу через VBA
PavelPK
bubucha,

Есть поле в таблице "Статус" называется, он бывает "действующий", "умер" и "выбыл".
Вот мне нужны сведения о действующих товарисчах.

Тогда зайдите в FAQ и почитайте.
...
Рейтинг: 0 / 0
14.05.2020, 12:11
    #39957344
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к запросу через VBA
PavelPK,

Код: vbnet
1.
2.
3.
4.
5.
sql = "SELECT Недееспособные.Фамилия AS Недееспособные_Фамилия,"
sql = sql & " Недееспособные.Имя AS Недееспособные_Имя,"
sql = sql & "  Недееспособные.Отчество AS Недееспособные_Отчество,"
sql = sql & "  Недееспособные.Статус FROM Недееспособные"
sql = sql & "  WHERE Недееспособные.Статус='действующий'"



Попробуйте так .

P.S. И в FAQ написано , копируете текст запроса , вставляете в конструктор запросов и смотрите что получается.
...
Рейтинг: 0 / 0
14.05.2020, 12:11
    #39957346
PavelPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к запросу через VBA
Ребят, вобще задача стоит собрать сведения из двух таблиц за определенный период, несколько столбцов объединить в один и полученную таблицу выпулить в Эксель. Вот.
Думал через запрос все это сделать, но чтото пошло не так(((
...
Рейтинг: 0 / 0
14.05.2020, 12:15
    #39957347
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к запросу через VBA
PavelPK
Ребят, вобще задача стоит собрать сведения из двух таблиц

Но в приведенном примере вроде как одна таблица и простой запрос.
P.S как сказал бы sdku выложите пример в студию.
...
Рейтинг: 0 / 0
14.05.2020, 12:17
    #39957350
PavelPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к запросу через VBA
DarkMan,
Большое спасибо, сроду бы не догадался эти ковычки воткнуть. Заработало.
...
Рейтинг: 0 / 0
14.05.2020, 12:19
    #39957352
PavelPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к запросу через VBA
DarkMan,
Нет, там две таблицы, я просто пока убрал лишнее
...
Рейтинг: 0 / 0
14.05.2020, 12:19
    #39957353
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к запросу через VBA
PavelPK
DarkMan,
Большое спасибо, сроду бы не догадался эти ковычки воткнуть. Заработало.

Не мне спасибо , Вам уже до меня намекали на это. :))
...
Рейтинг: 0 / 0
14.05.2020, 12:23
    #39957357
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к запросу через VBA
PavelPK
сроду бы не догадался эти ковычки воткнуть.

Ну это вроде святая , святых и не только для VBA .
...
Рейтинг: 0 / 0
14.05.2020, 12:40
    #39957365
PavelPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к запросу через VBA
Код: sql
1.
2.
3.
SELECT Опекуны.Фамилия, Опекуны.Имя, Опекуны.Отчество, Опекуны.[Дата рождения], Опекуны.СНИЛС, Опекуны.серия, Опекуны.номер, Опекуны.[кем выдан], Опекуны.[Дата выдачи], Опекуны.ГородРег, Опекуны.[Населенный пунктРег], Опекуны.УлицаРег, Опекуны.домРег, Опекуны.корпРег, Опекуны.квРег, Опекуны.Акт_назначения, Опекуны.Дата_распоряжения, Опекуны.Дата_распоряжения, Недееспособные.Фамилия, Недееспособные.Имя, Недееспособные.Отчество, Недееспособные.[Дата рождения], Недееспособные.серия, Недееспособные.номер, Недееспособные.[кем выдан], Недееспособные.[дата выдачи], Недееспособные.СНИЛС, Опекуны.[Статус опекуна], Недееспособные.ДатаПоступления
FROM Недееспособные INNER JOIN Опекуны ON Недееспособные.Код_недееспособного = Опекуны.Код_недееспосоного
WHERE (((Опекуны.[Статус опекуна])=[Forms]![Администрирование]![ПолеСоСписком108]) AND ((Недееспособные.ДатаПоступления) Between [Forms]![Администрирование]![Поле112] And [Forms]![Администрирование]![Поле114]));



Прошу не материте сильно. Так выглядит код в SQL запросе.
Запрос сам вполне нормально формируется и выводит то, что нужно.
Проблема в том, что столбцы фамилия имя и отчество нужно объединить в один
Данные паспорта тоже в один столбец нужно, ну и адрес соответственно тоже.
Обратиться к этому запросу через Recordset не получается. Думал сформировать его через VBA и поставлять во временную таблицу.
Вот. Как на духу.
...
Рейтинг: 0 / 0
14.05.2020, 13:03
    #39957374
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к запросу через VBA
PavelPK
Обратиться к этому запросу через Recordset не получается.
блин, ну FAQ же отправили! Прочитать трудно?! Будем дальше тупить?
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Обращение к запросу через VBA / 25 сообщений из 37, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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