Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Идеология построения форм / 25 сообщений из 38, страница 1 из 2
29.06.2001, 05:55
    #32008607
AlexUnik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Идеология построения форм
Чаще всего вопросы использования Access пересекаются с вопросами использования SQL Server - интересно, куда кидать question в этом случае?
В общем, у меня есть справочник товаров. Его необходимо соотнести со справочником марок товаров. Структура первого справочника разработана не мной, поэтому всякая возможность его изменения отпадает Второй справочник содержит идентификатор, наименование марки и немного другой информации. Проблема еще и в том, что товар может принадлежать нескольким различным маркам (например, шина автомобиля, пригодная нескольким видам авто). Для исключения связей "многие ко многим" введена промежуточная таблица, содержащая идентификаторы товара и идентификаторы марки. Таблицы размещены на SQL Server7. Заполнение должно быть в Access2000.
На данный момент у меня реализована форма, имеющая в себе три таблицы - в первой (верхней) находится справочник товаров, вторая (середина формы) содержит список марок, третья (нижняя) выводит содержащиеся в выбранном списке товары. Выбор товаров из верхней таблицы осуществляется их выделением левой кнопкой мыши с использованием клавиш SHIFT (для непрерывного выделения), CTRL (для выделения отдельных позиций). Затем выбранные позиции переносятся в нижнюю таблицу. Доступ к данным реализован через ODBC.
Эта форма хороша только если позиций товара немного (для облегчения работы внесена кнопка фильтрации по группам товаров)...
Быть может, я пошел по неверному пути при разработке структуры справочника (я был ограничен имеющейся структурой). Или можно сделать более удобную форму??? Мне было бы очень интересно услышать различные мнения по поводу идеологии построения форм в Access.
...
Рейтинг: 0 / 0
04.07.2001, 06:14
    #32008829
cube
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Идеология построения форм
Я придерживаюсь такой идеологии:

1. Форма содержит только "свободные" поля. Прямиком в таблицу НИЧЕГО НЕ ВВОДИТСЯ.
2. Записи основной таблицы (хранящей записи с объектами) отображаются в виде списка типа ListBox, служащего для навигации.
3. При активизации очередной записи в списке в соответствующих полях типа Edit отображаются поля текущей записи (некоторые из них могут быть заблокированы).
4. Значения полей могут быть изменены.
5. По кнопке Add "собирается" новая запись из значений в эдитах и выполнятеся запрос INSERT
6. По кнопке Change текущая запись обновляется значениями эдитов
7. Если в таблице исп. внешние ключи, то для таких полей создаются соотв. листбоксы, в которых отображаются отфильтрованные данные (либо неотфильтрованные для возможности выбора). Каждый листбокс содержит кнопку [...], по которой открывается форма для соотв. подчиненной таблицы.
8. При необходимости содержимое полей используется для поиска (различные LIKE - запросы). Результаты поиска отображаются в дополнительном листбоксе. При перемещении по нему, в основной таблице активизируются "найденные" записи.

Вот таким вот образом, Лом... (с).
Похожая стратегия реализована в 1С.
И еще: такую систему я отработал, когда пришлось совмещать работу оператора (работать с базой) и программиста. Такое построение форм оказалось наиболее безопасным (в плане контроля вводимых данных) и удобным для меня.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
08.09.2003, 19:19
    #32259123
Varan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Идеология построения форм
Что-то мало мнений по такому хорошему вопросу...
...
Рейтинг: 0 / 0
08.09.2003, 20:02
    #32259148
Varan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Идеология построения форм
Вот человек говорит "Форма содержит только "свободные" поля. Прямиком в таблицу НИЧЕГО НЕ ВВОДИТСЯ."
То есть, как я понял, для ввода данных связанные формы он предлагает не использовать. А у меня таких много...Если он прав, придется переделывать :-(
...
Рейтинг: 0 / 0
08.09.2003, 20:19
    #32259156
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Идеология построения форм
А у меня таких много...Если он прав, придется переделывать :-(

А ЛП сегодня сказал, что у него все формы имеют обработку OnOpen. А у меня в программе, с которой я сейчас работаю, трети форм совершенно параллельно, что они открылись... :( И что же - мне тоже переделывать? :((

Ну и что же, как способ, это может быть и неплохо. Но закона такого пока нет. Где то так удобнее, возможно, а где-то и по старинке можно... :)
...
Рейтинг: 0 / 0
08.09.2003, 20:26
    #32259159
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Идеология построения форм
Какое-то говно всплыло

Что-то мало мнений по такому хорошему вопросу...
Да потому что херня полная понаписана.

Первый пост - бред. Человек обрадовался и всем расказал про связанное выделение в листбоксе + таблицу для связи многие-ко-многим (причем для "исключения связей многие ко многим" )
Да, еще "доступ к данным через ODBC"

Второй пост - бред. Бред с точки зрения аксеса. На VB ему программировать - только там такие формы можно лепить. Да и то если полениться нормальные контролы найти.

Интересно, почему такая несправдливость? Поднять говнотопик просто, а скрыть его нафиг с глаз долой - несколько лет должно пройти и то найдутся умельцы, которые его отроют
...
Рейтинг: 0 / 0
08.09.2003, 20:32
    #32259160
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Идеология построения форм
А зачем его скрывать? Пусть будет как в жизни.
...
Рейтинг: 0 / 0
09.09.2003, 13:32
    #32259870
Varan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Идеология построения форм
Лох Позорный
А все ж если по существу. У меня есть форма (вводная) основанная на запросе, в котором несколько сотен тысяч строк. По-вашему хорошо вводить туда данные с помощью связанных с данными контролов?
...
Рейтинг: 0 / 0
09.09.2003, 13:39
    #32259887
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Идеология построения форм
Да хоть с помощью рукописного текста, сканера и распознавалки данные вводи.
Какая нахер разница сколько в запросе тысяч строк? Если форма только для ввода - "Ввод данных"="Да" в конструкторе поставь. И на всякий случай в базовый запрос "Where False" добавь.
Имея афигетельный контрол под названием "аксесовская форма, связанная с данными" писать самому формы, несвязынные с данными чтобы потом значения из свободных контролов переписать опять таки в базовый набор - маразм.
Любой маразм может быть иногда востребован, но "придерживаться такой идеологии" - дурость.
...
Рейтинг: 0 / 0
09.09.2003, 13:54
    #32259915
Varan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Идеология построения форм
Лох Позорный,
А не накладно ли ради добавления одной строки такую огромную таблицу через сеть прокачивать?
...
Рейтинг: 0 / 0
09.09.2003, 13:58
    #32259926
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Идеология построения форм
Перепопытка номер два

Какая нахер разница сколько в запросе тысяч строк? Если форма только для ввода - "Ввод данных"="Да" в конструкторе поставь. И на всякий случай в базовый запрос "Where False" добавь.

На всякий случай объясню. Если "Where False", то записей 0. Глюпому аксесовскому интерпретатору это понятно, и ничего он никуда не качает. Это должно спасти в случае, если "Ввод данных"="Да" не возымеет такого эффекта (хотя по идее должно).
...
Рейтинг: 0 / 0
09.09.2003, 14:25
    #32259981
Varan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Идеология построения форм
Лох Позорный,
Насчет этого я понял, просто беда этой несчастной формы (делал которую, к счастью, не я) в том, что она используется не только для ввода, но и для просмотра. И каждый раз, когда надо показать одну строчку, по сети летит огромная таблица...А один раз кто-то случайно тронул колесико у мыши, и такое началось, что даже сказать страшно.
...
Рейтинг: 0 / 0
09.09.2003, 14:40
    #32260022
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Идеология построения форм
А это уже совсем другой вопрос.
Если тебе нужно просматривать ВСЕ записи (ну и редактировать их) - то по другому ты никак и не сделаешь. И несвязанные контролы тебе не помогут.
Только скорее всего все записи не нужны. В лучшем (худшем) случае можно сделать пользовательский фильтр. Т.е. делаешь, к примеру, поле - "Показывать документы за ххх дней". По обновлению этого поля изменяешь базовый набор записей (как - уже зависит от версии аксеса, мдб/адп и т.п.) и обновляешь форму. Всего-то и делов.
И будет у тебя на экране только то, что нужно, и по сети огромные объемы не будут прокачиваться, и наступит полное щастье.
...
Рейтинг: 0 / 0
09.09.2003, 14:45
    #32260036
Varan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Идеология построения форм
Запрос "Select * from BigTable Where ...",
насколько мне известно, сперва все таблицу прокачает, а уже потом покажет результат, даже если он выражается всего одной строкой.
...
Рейтинг: 0 / 0
09.09.2003, 14:47
    #32260039
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Идеология построения форм
2 Varan:

Значит, надо делать Pass-Through. Тогда Where отработает на сервере.
...
Рейтинг: 0 / 0
09.09.2003, 14:48
    #32260043
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Идеология построения форм
Но это только если сервер не Аксесс. Аксесс и так должен понимать.
...
Рейтинг: 0 / 0
09.09.2003, 14:50
    #32260049
Varan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Идеология построения форм
Владдимир Саныч, "Значит, надо делать Pass-Through."
Что это такое? Под ADP?
...
Рейтинг: 0 / 0
09.09.2003, 14:51
    #32260052
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Идеология построения форм
>Запрос "Select * from BigTable Where ...", насколько мне известно, сперва все таблицу прокачает, а уже потом покажет результат, даже если он выражается всего одной строкой.

это зависит от того что ты используешь...
если MDB то вообще прокачивается весь файл .
если ADP то только отобранный результат запроса
...
Рейтинг: 0 / 0
09.09.2003, 14:51
    #32260053
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Идеология построения форм
Тогда View.
...
Рейтинг: 0 / 0
09.09.2003, 14:52
    #32260058
Varan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Идеология построения форм
АлексейК, mdb
...
Рейтинг: 0 / 0
09.09.2003, 14:58
    #32260069
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Идеология построения форм
если MDB то вообще прокачивается весь файл .
Ну здрасте приехали

Весь файл уж точно никогда не прокачивается.
Select * From Table Where что-то - прокачивает таблицу или нет -зависит именно от что-то.
Если выборка по индексам - как вариант (не всегда) прокачаются только индексы, а уж потом выкачаются нужные тебе три записи из миллиона. Поэтому грамотно индексируй.
Select * Where False не качает данных. Я это не проверял прямо щас, но буду очень сильно удивлен если это не так.
...
Рейтинг: 0 / 0
09.09.2003, 15:01
    #32260077
Varan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Идеология построения форм
Лох Позорный
Чего тогда возвратит запрос "Select * From BigTable Where false" Если он "не качает" данные?
...
Рейтинг: 0 / 0
09.09.2003, 15:02
    #32260079
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Идеология построения форм
Догадайся с трех раз. Если не догадаешься - это станет твоим домашним заданием.
...
Рейтинг: 0 / 0
09.09.2003, 15:09
    #32260090
Varan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Идеология построения форм
Лох Позорный,
ничего не возвращает, проверил. Но, по-моему, более правильно добалять запись через insrt into и несвязанные контролы, чем через такой запрос и связанные контролы...
...
Рейтинг: 0 / 0
09.09.2003, 15:26
    #32260111
incold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Идеология построения форм
Но, по-моему, более правильно добалять запись через insrt into и несвязанные контролы, чем через такой запрос и связанные контролы...

А по-моему неправильно

Если вернуться к исходному названию топика, то у меня идеология следующая:
- имеется форма поиска - простая форма без источника на ней параметры поиска, несколько кнопок и подчиненная форма с источником по указанным параметрам, обновление данных по кнопке, подчиненная форма только на просмотр, но не редактирование.
- имеется форма ввода/редактирования одной записи, открывается по кнопке либо на существующую запись в подчиненной форме (см. выше), либо на новую запись по кнопке главной формы.

Внешне примерно как в адресной книге в Outlook (с учетом особенностей, описанных выше).
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Идеология построения форм / 25 сообщений из 38, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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