Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Создать универсальный запрос в Ассess2002
 
 автор: Nat   (30.03.2009 в 15:27)   личное сообщение
 
 

Пож-сто! Как составить один запрос на выборку того поля из таблицы, номер которого в названии поля совпадает с номером, указанным пользователем в форме. Поля в таблице kol1,kol2,kol3 ...kol12. В форме указываю например 5.В запросе д.б. поле KOL5.

  Ответить  
 
 автор: FORMAT   (30.03.2009 в 16:05)   личное сообщение
 
 

в запросе ставите что-то типа where Поле =' Kol'" & Me.Поле_с_цифрой.Vlue & "';"
либо через переменные
вшь strString = "Kol" & Me.Поле_с_цифрой.Vlue
а далее в запросе WHERE Поле = '" & strString &"';"

  Ответить  
 
 автор: Nat   (30.03.2009 в 16:54)   личное сообщение
 
 

Спасибо за ответ! Но мне не понятно, как в конструкторе запросов это сделать, ведь там нужно выбрать конкретное поле из таблицы kol1 ...kol12. Как указать, что это n-ное поле. Какая д.б. проверка?

  Ответить  
 
 автор: Анатолий (Киев)   (30.03.2009 в 17:20)   личное сообщение
 
 

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

Подробнее опишите задачу.

  Ответить  
 
 автор: Nat   (30.03.2009 в 17:27)   личное сообщение
 
 

Есть таблица zaj (заявка на материалы)состоит из KRS-код материала и kol1-kol12 количество материалов по месяцам (январь-декабрь). Мне нужно сделать запрос для печати заявки на любой месяц. Месяц выбирается пользователем в форме Печать заявки. Сделать 12 запросов (по-простому). Хочется что-нибудь универсальное.

  Ответить  
 
 автор: Анатолий (Киев)   (30.03.2009 в 18:39)   личное сообщение
 
 

Опять же, где применяется запрос? Если в отчете, то на его событие Report_Open можно составить SQL выражнеие и вставить в Me.RecordSource. Или в ControlSource поля отчета указать требуемое из 12-ти полей запроса.

Вообще-то правильная стратегия - создать подчиненную таблицу с номерами месяцев и кол-вом, связанную с zaj (многие к одному). Тогда и проблемы такой не было бы.

  Ответить  
 
 автор: Анатолий (Киев)   (31.03.2009 в 10:35)   личное сообщение
 
 

Меня посетила мысля...
Вам, наверное, нужно возвращать не конкретное поле со своим собственным именем, а значение указанного поля в поле запроса с неизменным именем, например - "kol"?
Это можно сделать и в сохраненном запросе. В конструкторе добавьте вычисляемое поле:
kol: Choose([Forms]![ИмяФормы]![ИмяПоля], [kol1], [kol2],...,[kol12])

  Ответить  
 
 автор: Nat   (31.03.2009 в 13:07)   личное сообщение
 
 

Большое спасибо. Все получилось.Choose([...) - это гениально! Просто и быстро.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList