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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2010, 19:10   #1
Tatochka
Пользователь
 
Регистрация: 13.01.2010
Сообщений: 15
Вопрос Запрос с выбираемым набором выводимых полей

Всем привет.
Снова столкнулась с задачей, к которой не могу найти ответа.

Изначально задача звучит так: есть реестр с кучей полей из разных таблиц. Нужно на основе сводного реестра пользователю дать отмечать те поля, которые он хочет видеть в запросе (потом уже в отчете).

Мои попытки решить эту задачу пошли через построение общего запроса по всем таблицам - реестр.
На форме в виде чек боксов обозначила поля, которые пользователь отмечает. Дальше мой мозг нашел два варианта решения :
1) если поле отмечено, то передавать этот параметр в конструктор запросов для настройки "Выводить на экран". Но я не знаю куда передавать этот параметр, где свойство это хранится.
2) формировать на основе отмеченных полей условие селекта и передавать текстовую переменную в скл запрос - тут ситуация не лучше, я также не знаю куда это передавать. То есть у меня есть обработанные введенные данные, что хочет пользователь, но куда их прилепить, чтобы выводить не все поля запроса я не знаю.

Оч буду признательна помощи
Вложения
Тип файла: zip ChangableQuery.zip (38.5 Кб, 10 просмотров)
Tatochka вне форума Ответить с цитированием
Старый 27.01.2010, 23:02   #2
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте Tatochka.
для решения Вашей задачи, если я правильно понял, можно подобным образом "подредактировать" код:
Код:
Private Sub Реестр_Click()
On Error Resume Next
Dim s$
Const sQ = "SELECT КодЗаписи, tbПредприятия.Предприятие as firm, tbЗаказы_Заказ "
Const sQ1 = "FROM Реестр", sQ2 = ", Статус", sQ3 = ", Примечания", sQ4 = ", Менеджер "
Const sQw = " where tbПредприятия.Предприятие = '", sQd = "DROP TMP"
s = sQ + IIf(status = 0, "", sQ2) + IIf(manager = 0, "", sQ3) + IIf(Me.[rem] = 0, "", sQ4)
s = s + sQ1 + IIf(Len(cmb2.Column(1) & "") = 0, "", sQw + Me.cmb2.Column(1) + "'")
s = "SELECT * INTO TMP FROM (" + s + ")"

CurrentDb.Execute "DROP TABLE [TMP]"
CurrentDb.Execute s

DoCmd.OpenTable "TMP", acViewNormal, acEdit
    
End Sub
но данная конструкция может служить только примером, т.к. у неё некорректный источник (запрос "Реестр")
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 28.01.2010, 10:15   #3
Tatochka
Пользователь
 
Регистрация: 13.01.2010
Сообщений: 15
По умолчанию

Здравствуйте Евгений, а каким должен быть корректный источник? Перебирала все возможные варианты, этот мне показался наиболее простым %). И спасибо за решение с моим вариантом.
Tatochka вне форума Ответить с цитированием
Старый 28.01.2010, 19:22   #4
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Tatochka, источник может быть тот же но кол-во полей, отображаемые и реально содержащиеся в них данные нуждаются в корректировке. Причина в "замечательной" возможности MS Access использовать в полях таблицы подстановочное Поле со списком, которое может отображать данные из другого источника, и при использовании таблицы очень часто такие поля вводят в заблуждение.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать файл с набором записей? Alexsey1991 Помощь студентам 4 18.12.2009 07:31
При удалении записей значения полей с type:=Autoincrement (т.е+) в оставшихся полей не изменяются kenta БД в Delphi 2 29.10.2009 08:28
Объеденение полей запроса в для отображения нескольких полей в одном списке mrCreator Microsoft Office Access 3 08.08.2009 00:53
убрать запрос на обновление полей ruavia3 Microsoft Office Excel 4 28.07.2009 11:19
Ограничение кол-во выводимых строк в консоле.. Карась Общие вопросы Delphi 6 01.02.2008 00:54