|
|
|
Новая запись и server filter
|
|||
|---|---|---|---|
|
#18+
ADP+SQL Есть форма основанная на запросе. Если она открывается из другой формы по критерию, то у нее заполняется свойство Sever Filter и оно как я понимаю не дает вводу новой записи, если если сбросить фильтр + requer то в форме ввод становится возможным но обрання запись теряется. В поисках по форуму обсуждение подобных задач идет при использовании recordset, нельзяли как то попроще не отказываясь от именованного источника данных для формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2004, 11:47 |
|
||
|
Новая запись и server filter
|
|||
|---|---|---|---|
|
#18+
Может я не очень коректно задал вопрос,проблема в следующем при открытии одной формы из другой я делаю приблизительно так: DCmd.OpenForm stDocName, , , stLinkCriteria источником открываемой формы является запрос, формы открывается на нужной записи а при попытке ввода новой записи, выдается ошибка что новые данные не могут быть отражены в форме так как противоречат условиям на базовый источник записей. Я ни как не могу понять что чему прротиворечит, ведь с одной стороны запись добавляется, значит источник данных (насколько я понимаяю это имя запроса и WHERE: (то что записывается в Server filter)) допускает обновление, получается что ограничением является значение server filter. Ставлю на открытие формы Server Filter ="", при этом открывается нужная запись свойстово фильтра пусто, но форма все равно не хочет показывать новую запись. Как нужно открывать форму чтобы с одной стороны она показала то что нужно, а сдругой стороны позволяла вводить новые записи. Буду очень признателен за ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 12:41 |
|
||
|
Новая запись и server filter
|
|||
|---|---|---|---|
|
#18+
Я делаю две кнопки: одна на открытие формы на существующую запись с условием на ключевое поле, вторая кнопка на добавление записи docmd.OpenForm "MyForm", , , ,acFormAdd ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 12:55 |
|
||
|
Новая запись и server filter
|
|||
|---|---|---|---|
|
#18+
Но тогда получается что появляется второй экземпляр формы, я сейчас тоже где также и выхожу , у меня на форме есть кнопка открыть дополнительный экземпляр формы и еще кнопка на разрешения ввода, и пользователь отобрав нужную запись может просто нажать "разрешить ввод" тогда у него форма закрывается и снова открывается уже пустой в режиме добавления записи, а если он хочет чтобы выбранная запись остовалась доступной то он может открыть дополнительный экземпляр, а основной обнулить и использовать для ввода. По сравнение с mdb где пользователь просто после выбора записи если хотел мог тут же перейти на нову запись как то все очень загромождено, а копрование записи вообще превращается в самостоятельную процедуру, открыть нужную запись, открыть ее дубль, перейти в режим ввода, скопировать, снова перейти по форме, вставить. Не ужели все это нельзя както сделать по человечески. Что Все подряд занимаются таким гемороем ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 14:42 |
|
||
|
Новая запись и server filter
|
|||
|---|---|---|---|
|
#18+
Неправильно получается Для сложных таблиц, которые содержат большое число полей (или подчиненные таблицы) Есть форма поиска записей состоит из: - главной формы без источника с набором полей - условий отбора - ленточной (или табличной) формы списка найденных записей - только просмотр, редактирование/добавление/удаление - запроещено. Есть форма редактирования одной записи. На форме поиска две кнопки: 1 - добавление новой записи, открытие формы редактирования в режиме добавления. 2 - открытие текущей записи - по условию на ключевое(ые) поля. Для простых таблиц делается ленточная/табличная форма редактирования сразу всех записей (возможно с ограничениями по параметрам). Никаких новых экземпляров формы. Никакого гемороя нет P.S. Копирование записей нужно делать не на клиенте а на сервере И ничего не загромождено. Нужно просто отучится мыслить "а вот в MDB было..." и приучится мыслить к должно быть в клиент-сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 14:55 |
|
||
|
Новая запись и server filter
|
|||
|---|---|---|---|
|
#18+
На форме поиска две кнопки: 1 - добавление новой записи, открытие формы редактирования в режиме добавления. 2 - открытие текущей записи - по условию на ключевое(ые) поля. Если не открывать еще одни экземпляр формы, и не использовать отдельную форму только для ввода то действие 1 если его делать так docmd.OpenForm "MyForm", , , ,acFormAdd приведет к закрытию существующей открытой записи и открытию уже пустой формы с возможностью ввода. или это делается как то по другому с сохранением текущей записи??? Что имеется ввиду под кнопкой 2: после нее остается возможность добавления новой записи или нет, в чем смысл этой кнопки ведь мы уже отбрали нужную запись или это переход из режима ввода в режим выбора. Видно я совсем заблудился в трех соснах если не влом можно код кнопки 1 и 2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 17:52 |
|
||
|
Новая запись и server filter
|
|||
|---|---|---|---|
|
#18+
Перед открытием формы проверяется открыта ли она, если да выдается сообщение, что форма открыта и нужно закрыть форму для работы в другом режиме. Можно делать по-разному (с наворотами в виде экземпляров форм) - у меня по простому: либо ввод новой записи, либо редактирование существующей и все. Переход из одного режима в другой не закрывая форму не допускается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 18:01 |
|
||
|
Новая запись и server filter
|
|||
|---|---|---|---|
|
#18+
Как то очень не удобно получается особенно после mdb. если не секрет а что делаете с копированием, и если при вводе одной записи клиент хочет видеть другую выход только два экземпляра ?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 18:13 |
|
||
|
Новая запись и server filter
|
|||
|---|---|---|---|
|
#18+
На всякий случай повторю - это мой подход, я не претендую на то, что такой подход единственно правильный. По теме: Копирование записи делаю на сервере с помощью ХП - передаю ключ записи которую нужно скопировать, возвращаю ключ новой записи. если необходимо делаю закрытие формы и открытие с новым условием. При вводе записей открываю формы на добавление с разрашенным свойством добавлять новые записи. В итоге в одном сеансе открытия формы можно вводить бесконечное число записей. Передвигаться по ним можно либо с помощью сових кнопок, либо с помощью стандартных средств. При редактировании записи - клиенту не нужно (не должно ) смотреть другие записи. И еще раз забитая истина: настольное приложение (MDB) и клиент-серверное приложение (ADP) - это разные подходы не только в программировании, но и в организации работы вообще как самого приложения, так и работы пользователей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 11:02 |
|
||
|
Новая запись и server filter
|
|||
|---|---|---|---|
|
#18+
Спасибо за советы, ""При редактировании записи - клиенту не нужно (не должно ) смотреть другие записи. "" С записяи работаету ведь не только опреаторы, но пользователи с задачами типа анализа, администрирования, поиска ошибок. При достотаточно сложной форме очень удобно перед глазами видеть подобный экземпляр для более осмысленного заполнения новой записи. "И еще раз забитая истина: настольное приложение (MDB) и клиент-серверное приложение (ADP) - это разные подходы не только в программировании, но и в организации работы вообще как самого приложения, так и работы пользователей." Это начинает помоленьку доходить. Только вот как бы только пользователь не постродал (но это уже к самому себе). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 13:30 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32390949&tid=1676969]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
221ms |
get topic data: |
9ms |
get forum data: |
4ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 248ms |
| total: | 562ms |

| 0 / 0 |
