Единая форма для отображения вывода из нескольких запросов

Пункт 1. Создайте форму управления с кнопками для выполнения различных запросов (по автору, по заголовку и т. Д.); Я также хотел бы иметь опцию «свободный текстовый поиск» для всей базы данных. Эта форма также будет включать поля для ввода критериев поиска, таких как, например, «Автор» для поиска по автору и т. Д. Эти поля должны быть полями со списком с автозаполнением, чтобы облегчить поиск пользователю.


person rodedo    schedule 07.09.2012    source источник


Ответы (1)


Вы, безусловно, можете использовать раскрывающиеся списки для заполнения формы. Для этого есть мастер. Вы не можете использовать раскрывающиеся списки для поиска в любом месте, но есть удобная кнопка поиска, или вы можете объединить и использовать InStr.

Пункт 2. Различные выполняемые запросы должны быть «жестко запрограммированы» в коде vba события нажатия соответствующей кнопки; это потому, что мне легче написать SQL-запрос вручную, особенно когда мне нужно передать параметры из других полей; Кроме того, я не вижу необходимости умножать формы и хранить запросы отдельно в БД, когда я могу «хранить» их в моем коде.

Вы поймете, что нужно хранить запросы вне кода, когда начнете делать accdes / mdes.

Пункт 3. Окончательный результат запросов (набор записей?) Должен быть отображен в форме. Я всегда буду выбирать одни и те же поля для вывода, независимо от выполняемого запроса, поэтому для вывода всех различных запросов должна использоваться одна форма. Мне нужна форма по этой причине, чтобы я мог раз и навсегда настроить ее внешний вид и поведение. По возможности форма должна быть типа Datasheet (но это не является строгим требованием). Учитывая дисперсию критериев поиска, я считаю, что это нормально, что результаты запроса хранятся в изменчивых таблицах / наборах записей, и не проблема, что их нужно повторно заполнять при каждом запросе.

Повторное заселение может привести к вздутию живота. По возможности всегда избегайте временных таблиц в MS Access.

Так что бы вы сделали вместо этого?

person Fionnuala    schedule 07.09.2012
comment
Вместо чего? Временные таблицы? Вы почти всегда можете построить подходящий запрос. Только когда это не удается, вам нужна временная таблица. В этом никогда не должно быть необходимости, когда все, что вам нужно, - это поиск. - person rodedo; 07.09.2012
comment
Извините, может, я не стал разбираться в себе. Я описывал всю идею. Вы прокомментировали пункты, но не ответили на мои проблемы / вопросы, поэтому я предположил, что вы считаете всю идею неудачной, поэтому я спрашиваю, как вы поступите вместо этого. - person Fionnuala; 07.09.2012
comment
Ваш вопрос очень открытый, и мои комментарии также открыты. Я, наверное, не должен был отвечать, потому что вопрос действительно не в рамках правил ТАК, ИМХО. Да, ваш поиск возможен, опубликуйте детали, и вы получите более подробный ответ. - person rodedo; 07.09.2012
comment
Благодаря помощи, полученной в других вопросах, и нескольким хорошим руководствам я смог создать свою базу данных доступа для хранения книг в моей библиотеке, и теперь у меня есть хорошая форма (с несколькими подформами) для ввода новых книг в мою базу данных. (Все это основано только на Access 2003).

Следующим шагом будет возможность запрашивать БД и искать книги.

Я подумывал о следующем подходе, но не уверен если это осуществимо и / или если усилия будут непомерно высокими. На самом деле у меня уже есть свои проблемы и / или вопросы.

Не могли бы вы поделиться своим мнением о моем подходе и, в конечном итоге, решить некоторые из моих проблем? (Ссылки на другие вопросы или ресурсы, которые касаются любого из моих вопросов, прекрасны!)
Заранее благодарим за любой вклад!

Пункт 1. Создать форму управления с кнопками для выполнения различных запросов (по автору, по заголовку и т. Д.); Я также хотел бы иметь опцию «свободный текстовый поиск» для всей базы данных. Эта форма также будет включать поля для ввода критериев поиска, таких как, например, «Автор» для поиска по автору и т. Д. Эти поля должны быть полями со списком с автозаполнением, чтобы облегчить поиск пользователю.
Пункт 2 . Различные выполняемые запросы должны быть «жестко запрограммированы» в коде vba события нажатия соответствующей кнопки; это потому, что мне легче написать SQL-запрос вручную, особенно когда мне нужно передать параметры из других полей; плюс, я не вижу необходимости умножать формы и хранить запросы отдельно в БД, когда я могу «хранить» их в моем коде.
Пункт 3. Окончательный результат запросов (набор записей?) Затем должен быть отображен в форме. Я всегда буду выбирать одни и те же поля для вывода, независимо от выполняемого запроса, поэтому для вывода всех различных запросов должна использоваться одна форма. Мне нужна форма по этой причине, чтобы я мог раз и навсегда настроить ее внешний вид и поведение. По возможности форма должна быть типа Datasheet (но это не является строгим требованием). Учитывая различие критериев поиска, я считаю, что это нормально, что результаты запроса хранятся в изменчивых таблицах / наборах записей, и не проблема, что их нужно повторно заполнять при каждом запросе.

Обеспокоенность по пункту 1. Возможен ли свободный текстовый поиск? Как я мог это сделать?
Обеспокоенность по пункту 2. Легко создать строку, содержащую запрос SQL со всеми входными параметрами, но как мне выполнить запрос? Мой поиск в руководствах сбил меня с толку, и я больше не знаю, как это делать. Как было сказано, я не хочу хранить запрос отдельно, а затем ссылаться на конкретный запрос в коллекции запросов, а хочу выполнить и «строку SQL». Как это сделать? А как мне сохранить результаты в переменной? Подходит ли Recordset для хранения временной таблицы?
Проблемы по пункту 3. Как мне создать форму «вывода»? Должен ли я создавать поля (в представлении дизайна) как несвязанные или я должен привязать их к таблицам в моей базе данных? И как мне заполнить форму данными в переменной? Возможна ли таблица данных, учитывая, что в моей базе данных есть несколько отношений "многие ко многим" (например, для авторов и книг). Если мне нужно снова обратиться к форме и подформам, как мне соединить подформы и основную форму, учитывая, что «таблица» не существует во время проектирования, а только во «время выполнения»? И у меня тоже нет запросов, потому что, как я уже сказал, они разные и жестко запрограммированы в коде vba.

PS Для информации, все это делается в качестве «хобби» и по порядку узнать что-то новое (доступ и vba), сделав это ... - person Fionnuala; 07.09.2012