Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2013, 08:59   #1
mozjiqok
Новичок
Джуниор
 
Регистрация: 13.01.2013
Сообщений: 1
Печаль выполнение запроса из vba

Здравствуйте,

Пытаюсь выполнить из vba sql запрос следующим кодом:

Код:
kol_Chekov = "SELECT Count(чек) AS кол_чеков FROM (SELECT чек FROM товары, чеки " & _
"WHERE weekday(чеки.дата,2) In (select day from week where active=true) And " & _
"чеки.кол_гостей>=forms!form1.guest1 And чеки.кол_гостей<=forms!form1.guest2 And " & _
"чеки.время_откр>=forms!form1.since And чеки.время_закр<=forms!form1.till And " & _
"чеки.дата>=forms!form1.from And чеки.дата<=forms!form1.to And товары.чек=чеки.номер and " & _
"группа_меню='" & Me.cat1 & "' GROUP BY чек)"
Kol = CurrentProject.Connection.Execute(kol_Chekov).Fields(0)
При выполнении получаю ошибку "Отсутствует значение для одного или нескольких требуемых параметров"

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

Подскажите, пожалуйста, как обойти ошибку. Заранее спасибо.
mozjiqok вне форума Ответить с цитированием
Старый 13.01.2013, 10:57   #2
Myhaylo
Форумчанин
 
Регистрация: 19.07.2012
Сообщений: 520
По умолчанию

Конечно, ведь сервер ничего не знает об элементах управления, расположенных на формах где-то там (в MS Access). Поэтому, в текст запроса нужно включать непосредственные значения, а не ссылки на формы и их элементы управления (так, как Вы сделали с "группа_меню"):

kol_Chekov = "SELECT Count(чек) AS кол_чеков FROM (SELECT чек FROM товары, чеки " & _
"WHERE weekday(чеки.дата,2) In (select day from week where active=true) And " & _
"чеки.кол_гостей>=" & forms!form1.guest1 & " And чеки.кол_гостей<=" & forms!form1.guest2 & " And " & _
"чеки.время_откр>=" & forms!form1.since & " And чеки.время_закр<=" & forms!form1.till & " And " & _
"чеки.дата>=" & forms!form1.from & " And чеки.дата<=" & forms!form1.to & " And товары.чек=чеки.номер and " & _
"группа_меню='" & Me.cat1 & "' GROUP BY чек)"
Окупант, руки прочь от Украины!!! Слава Героям!
Myhaylo вне форума Ответить с цитированием
Старый 14.01.2013, 10:27   #3
alvk
Форумчанин
 
Регистрация: 22.05.2012
Сообщений: 136
По умолчанию

Цитата:
Сообщение от Myhaylo Посмотреть сообщение
"чеки.дата>=" & forms!form1.from & " And чеки.дата<=" & forms!form1.to & "
Обращение к дате неверное, нужно так:
Код:
" чеки.дата>=#" & Format(forms!form1.[from], "mm\/dd\/yy") & "# " _
& " And чеки.дата<=#" & Format(forms!form1.[to], "mm\/dd\/yy") & "#"
alvk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выполнение запроса TIBScript maxwait БД в Delphi 2 08.01.2022 16:06
Оишбка при выполнение запроса us4us Общие вопросы Delphi 1 21.05.2011 21:41
Выполнение макроса без запроса пароля на листе защищенном паролем Pavarotti Microsoft Office Excel 14 22.09.2010 20:24
Программное выполнение SQL запроса на VBA Access chandrasecar Microsoft Office Access 2 02.06.2009 21:46
Выполнение запроса на добавление denver_ua Microsoft Office Access 0 22.03.2009 13:19