powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопросы по философии программирования в Access
12 сообщений из 12, страница 1 из 1
Вопросы по философии программирования в Access
    #32358609
Pavel Krupets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hello,

Есть таблица в которой содержаться изделия и таблица с номенклатурой документов (изделия, ко-во, etc) которые ссылаются на эти изделия. В таблице с изделиями содержиться порядка 100'000 записей. В год добавляется по ~20'000 тысяч записей.

Необходимо сделать редактор номенклатуры документов. В списке номенклатуры нельзя сделать combobox из-за огромного количества записей в таблице с изделиями. Я пока сделал следующим образом:

Список номенклатуры это отключенный рекордсет в котором можно задавать количество, etc добавленных изделий. Изделия добавляются при помощи специального фильтра (можно несколько записей сразу). Может как-нибудь можно попроще сделать?

Интересно услышать от опытных програмеров какбы они это сделали.

Project -> ADE + Access 2003 + SQL Server 2003
...
Рейтинг: 0 / 0
Вопросы по философии программирования в Access
    #32358618
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО

Access XP (ADP) + MS SQL 2000

Я никогда не делаю combobox на источнике который вернет более чем x*100 записей.
Для выбора всяких кодов из присоединенных таблиц (т.е. справочников)
нарисована универсальная форма (так и называется выбор из справочника)
с модулем класса. Форма настраивается на любой справочник, и может возвращать значения в любое поле любой формы.
Имеет поле для поиска.

На форме ставится кнопка, поле для ввода значения и закрытое поле для подсвечивания расшифровки значения справочника.

Для аналогии можно посмотреть как реализована справка в новых продуктах Microsoft. Открыл справку: если без контекста то разделы не выводятся, в поле поиска набрал текст, нажал кнопку - получил список разделов; если открыл справку с контекстом, то справка сразу окрывается со списком необходимых разделов.

Примерно также у меня реализована форма выбор из справочника.

Насколько мне известно Senin Viktor делал примерно тоже самое, но с использованием какого-то ActiveX.
...
Рейтинг: 0 / 0
Вопросы по философии программирования в Access
    #32358638
Pavel Krupets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема в том что combo box был в под-форме (datasheet).
У меня сейчас примерно тоже самое. Только вот смущает то что у меня часто получаются формы с отключенными recordset'ами.

То глючит обновление вида то связи таблиц то еще чего-то. :(
...
Рейтинг: 0 / 0
Вопросы по философии программирования в Access
    #32358644
HEXplorer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://www.hiprog.com/forum/forum.asp?action=show&id=6&messid=45040&fullview=0
...
Рейтинг: 0 / 0
Вопросы по философии программирования в Access
    #32358656
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, а при чем здесь философия? И при чем здесь аксес?

Вопрос, в общем-то, классический для клиент-серверных технологий:
Как переслать клиенту 100000 записей?
и ответ на него классический:
Клиенту не нужны 100000 записей

В форме отображать название.
Для выбора товара - использовать деревья, классификаторы, фильтрацию по названию, все что угодно, но не комбобокс со 100000 записей, ибо это бред.
...
Рейтинг: 0 / 0
Вопросы по философии программирования в Access
    #32358742
Pavel Krupets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может не очень точно выразился.

У меня данные вносятся в datasheet. Выбор изделия через отфильтрованный combo box в datasheet невозможен, так как если какая-то запись из datasheet не попадет в список отфильтрованных значений то на ее месте будет пустота. Я сделал это через отключенный recordset и диалог добавления изделий. И все работает удобно быстро и просто для пользователя. Но:
У меня довольно много таких случаев (с отключенными recordset'ами) и может я что-то недопонимаю или немного не правильно использую (я в Access совсем зеленый). Вот к этому и относиться вопрос по философии (так как каждый язык, api, etc подразумевает свой собственный стиль, подход, архитектуру, etc). И ни кто не будет спорить если сказать что с использованием ADO и OCI один и тот же проект будет написан поразному.
...
Рейтинг: 0 / 0
Вопросы по философии программирования в Access
    #32358767
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
где взял SQL Server 2003 ????

дашь скачать?
...
Рейтинг: 0 / 0
Вопросы по философии программирования в Access
    #32358879
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Pavel Krupets
Во-первых. Сначала данные у тебя отображаются в datasheet. Для отображения данных комбобокс не нужен. Достаточно обычного текстового поля с наименованием. Значение этого поля приходят с сервера как разультат джойна состава с номенклатурным справочником.

Во-вторых. Datasheet у тебя используется для ввода данных, причем ввод осуществляется через комбобокс с 100000 записей. Не могу поверить, чтобы пользователю это было удобно. Из этого предположения (что пользователю неудобно ползать по списку с 100000 записей) и рассуждаю дальше.
Для эффективной работы необходимо эти 100000 записей разбить на группы, сделать деревянный просматривальщик, ввести признаки товаров, сделать возможность фильтрации по этим признакам. По возможности стремиться к тому, чтобы пользователю приходилось выбирать максимум из сотни товаров. В этой сотне еще сделать быстрый поиск по первым буквам и/или фильтрацию по части наименования.
Очевидно, что такую конструкцию не запихнуть ни в комбобокс, ни в два комбобокса. Разумным выглядить решение в виде popup-формочки, в которой пользователь выбирает все что ему нужно, туда же можно выводить, например, текущие складские остатки, описание для выбранного товара, да и кучу всего. Пользователь выбирает товар, по дабл-клику или чему-нибудь еще выбранный товар заносится в документ, а пользователь выбирает следующий товар. Выбарные товары отображаются в составе документа в обычных полях, а не полях со списком.

В-третьих. Недавно проскакивало решение с комбобоксом. Latuk пытался минимизировать сетевой трафик. Предлагал пересылать с сервера на клиент не наименования товаров, а их ID-шники. А наименования получать на клиенте да-да, с помощью комбобокса на отсоединенном рекордсете. НО! Это была попытка именно минимизации сетевого траффика, и этот комбобокс не предназначался для выбора товара . (Собственно, у Latuk'а и возник вопрос - как убрать стрелочку у комбобокса, и вообще запретить ему раскрываться).
...
Рейтинг: 0 / 0
Вопросы по философии программирования в Access
    #32358891
Pavel Krupets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Лох Позорный
Я еще в самом первом сообщении написал что нет у меня комбобокса а есть специальная форма фильтр в которой пользователь вводит раззные данные по которым он хочет получить изделия. После чего из отфильтрованных изделий отбирает необходимые и добавляет. Так как в номенклатуре есть два поля обязательных к заполнению используется отключенный recordset (изделия вставляются туда с этими олями = NULL). В уже отобранных и добавленных изделиях пользователь может редактировать только два поля все отсальные текстовые и locked.

Вопрос больше о том что у меня довольно часто используются отключенные рекордсеты и я думаю что это немного не правильно.
...
Рейтинг: 0 / 0
Вопросы по философии программирования в Access
    #32358899
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я еще в самом первом сообщении написал
Ну извиняй, торможу видать :)

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

Так как в номенклатуре есть два поля обязательных к заполнению используется отключенный recordset (изделия вставляются туда с этими олями = NULL).
Номенклатура - это состав документа?
Зачем здесь отключенный рекордсет? Выбрал изделие - жамкнул кнопку - добавил запись в состав документа. Пока все и без отключенных рекордсетов работает.

Вопрос больше о том что у меня довольно часто используются отключенные рекордсеты и я думаю что это немного не правильно.
Вот и я не могу понять - зачем они у тебя используются? Внимательно прочитав твои посты понял, что вроде бы твоя реализация совпадает с моим видением, но только у меня ничего не отключается...
...
Рейтинг: 0 / 0
Вопросы по философии программирования в Access
    #32358902
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чего не понял - пробую протелепячить
Отключенный рекордсет у тебя используется:

В спецформочке для ввода новых записей (в состав документа aka номенклатура)? Т.е. ты сначала на клиент шлешь весь набор изделий, и уже на клиенте фильтруешь, сортируешь и т.п. в соответствии с пользовательскими действиями? Если так - то (имхо) это не есть правильно.

или же

Отключенный рекордсет у тебя используется:


Для добавления в состав документа (aka номенклатура) сразу нескольких записей?
...
Рейтинг: 0 / 0
Вопросы по философии программирования в Access
    #32358929
Pavel Krupets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня в отключенном recordset'е находяться только выбранные записи. В фильтре только отфильтрованные я ни когда не читаю всех записей (в фильтре есть против этого защита).

В отключенный рекордсет добавляются по N записей из фильтра и так как у всех этих записей есть 2 поля NOT NULL то подключенный рекордсет нельзя использовать (пользователи против значений = 0). После добавления пользователи редактируют эти поля (изменять изделия не могут, их можно удалить и через фильтр добавить новые). Добавлять по 1 записи нельзя, так как это жутко не удобно (часто добавляются изделия в чем то-похожие)

Еще один случай это редактирование через view с istead of тригерами. Если использовать подключенные recordset то выдает сообщение что данные были изменены другим пользователем (оменить/скопировать/повторить), хотя данные записывабюся в базу. Тут что-то говорили про ХП но толком ни чего не объяснили. Может форму на ХП основывать? Только как это сделать (in out параметры как будут работать, как определить момент чтения записи, или они имели ввиду руками вызывать при загрузке ХП load_something а при сохранении save_something, тогда это тоже что и через view)
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопросы по философии программирования в Access
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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