|
|
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
Имеется форма ввода, можно ли как нибудь ограничить ввод до одной записи, т.е. чтобы пользователь мог внести не более одной записи????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 09:05 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
Убрать кнопки перехода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 09:48 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
Cоздаёшь глобальную переменную в модуле формы. На событие "После вставки" накапливаешь кол-во добавляемых записей в созданную переменную. На событие "До вставки" проверяешь значение переменной и далее идут твои действия... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 09:51 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
2 Витал: Отсутствие кнопок перехода - не значит отсутствие возможности ввода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 10:02 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
Просто убрать кнопки перехода нельзя - остается прокрутка колесиком, например. Если тебе нужна форма, вообще с одной записью ( а не с возможностью добавлять по одной записи), то легче на событие ТекущаяЗапись повесить проверку на кол-во записей, если записей нет - то разрешить ввод, если есть - то только редактирование. Так же поможет событие Form_BeforeInsert (ДоВставки) - делаешь проверку на кол-во записей и или отменяешь ввод либо разрешаешь. Способов много. Если это был бы adp-проект, было бы еще проще (триггер) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 10:04 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
Проект ADP, да вообщето с 2000 Аксеса и в mdp проектах появились тригеры. Но дело в том что эта форма вносит данные в таблицу в которой уже есть записи, но из одних форм можно вносить сколь угодное количество записей, а из этой формы только одну, плюс возможность ее редактирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 10:17 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
Вариант: добавить пустую запись программно, а в форме разрешить только редактирование, но не добавление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 10:39 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
2pv > да вообщето с 2000 Аксеса и в mdp проектах появились тригеры. Ты ошибаешься, путая скудные возможности наложения ораничений на столбец в mdb с триггерами в MS SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 10:50 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
при социализме обходилось повторным заниманием очереди. Что будете делать, если форму откроют второй раз ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 10:54 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
Так речь идет о форме ввода или о таблице? Где нужно поставить ограничение? Пользователь не может в таблицу добавить более одной записи, или в форме за один сеанс не более одной записи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 11:06 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
Догадываюсь, что это таблица с реквизитами предприятия (или типа того). В самом простом случае - это всегда одна запись. Тогда лучше сделать несвязанную форму с которой и работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 11:16 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
2 All: форма предназначена для следующего: Есть основная форма, которая служит для отображения забронированного товара( связанна с таблицей броней), есть возможность отгрузки какого-то заброннированного товара, вот при выборе отпустить с брони появляется модальный диалог, который предназначен для ввода количества отпускаемого товара, причем сразу в таблицу выдач товаров, только часть полей автоматически заполняются с формы бороней для отпускаемого товара, нужно, чтобы человек если введет отпуск с брони, то эту запись можно было только редактировать, а при закрытие формы автоматически уменьшается количество товара на брони, и следовательно последующее открытие формы отпуска товара с брони вполне возможна, например, в случае если сразу выбрали не весь забронированный товар. 2 incold: За один сеанс в форму ввода не более одной записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 11:46 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
А если добавлять враз по 1. записи, чем плохо убрать прокрутки? (С addOnly)? Что-то я не придумаю... Но если плохо - добавь свойство, меняй при открытии, а в onCurrent проверяй, - это, имхо, покрывает все возможные вызовы без закрытия. ЗЫ: если "самый простой случай" -таблица с одной записью, для Microsoft Jet проще уникального индекса с единственным возможным значением (CONSTRAINT + UNIQUE + ValidationRule) ничего нет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 11:55 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
ИМХО, в данном случае лучше делать несвязанную форму и заполнять и контролировать все ручками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 12:03 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
2incold ага ...и изобретать маски ввода и прочие барьеры для кривых ручек для всех контролов :) (когда-то в букварях это делали временными табличками, чтобы не иметь гемора с правилами в несвязанных полях, отличными от правил в таблице) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 12:08 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
А мой пост от 10:39 чем плох? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 12:09 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
2 incold: Все хотел узнать, что это за ИМХО? Я думал о не связной форме, но хочется же найти решение проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 12:11 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
2 Владимир Саныч: O посте в 10:39. Пользователь же может передумать вносить данные и тогда ее потом и удалать? Форма для ввода открывается всегда пустой, не смотря на то, что даже записи в таблице, с которой она связана, есть. Скорее всего придется прибегнуть к несвязной форме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 12:24 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
ИМХО\r /topic/29727\r \r У меня есть подобные задачи (правда ADP+SQL) так я их делаю на несвязанных формах и передаю параметры в серверные процедуры. \r Пока что лучше/проще/надежнее не нашел варианта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 12:30 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
2 pv: Ну и пусть открывается пустой. Можно сделать кнопку Add, которая добавит запись и сама скроется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 12:31 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
Лучше в твоем случае последовать совету assa и установить уникальный составной индекс на поля. Открывать форму всегда для редактирования, без NavigationBar, отслеживать ошибки при попытке ввести 2-ую запись (нарушение уникальности ключа) лучше самостоятельно (Form_Error) либо как я уже писал, остлеживать на событие ДоВставки кол-во записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 12:32 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
Что-й то я не въеду, господа! Разъясните тупому!! Если RecordSource модальной формы - одна-единственная запись выбранная Select'ом, где ID> максимального значения (т.е. новая запись), то о переходах на какие другие записи в этой форме идет речь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 12:42 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
2 incold - проект ADP + SQL Server. Может идею AlTis развить? Что если ключ - количество записей. --------------- После вставки ключ++ Если ключ >0 me!AllowAdditions = False ----------------- удалени/после подтверждения del(еще не разобрался) ключ-- Если ключ <1 me!AllowAdditions = True ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 12:43 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
2 Витал: рекордсоурс формы - не результат запроса с одной записью, а таблица, но т.к. таблица в свойствах обозначена как для "ввода данных", то при открытие она вообще не содержит строк, не смотря на то что сам источник данных их может содержать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 12:47 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
А что мешает вместо таблицы использовать запрос? Который к тому же будет формироваться вместе с открытием формы (по кнопке открытия формы или другому)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 12:52 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
Или примерно так: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 12:59 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
2 Витал: На момент открытия формы записи не существует, а если использовать запрос то она должна уже быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 13:04 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
2 incold - проект ADP + SQL Server. Может идею AlTis развить? Что если ключ - количество записей. Зачем? При работе ADP + SQL Server - одно из важных требований уменьшение траффика между клиентом и сервером. Зачем мне открывать форму с источником и тянуть с сервера записи, если я собираюсь только добавить новую запись? Так как я предлагал - при открытии формы никакого траффика вообще нет, при закрытии или нажатии на кнопку выполнить операцию - на сервер передается только вызов процедуры с параметрами, все остальное делает сервер. Зачем громоздить какие-то ключи дополнительные и т.п.? Если речь идет о простом решении проблемы, которая была в начале, то именно так и нужно делать...имхо :) 2 ALL Народ, вот все тут постепенно собираются переходить на ADP + SQL Server. Подумайте, сколько вам придется переделывать при таких подходах к реализации такой задачи.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 13:09 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
2 incold не думаю, что открытие формы в режиме ввод данных влечет за собой пересылку всей таблицы, я не прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 13:14 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
2 incold не думаю, что открытие формы в режиме ввод данных влечет за собой пересылку всей таблицы, я не прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 13:17 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
На событие после обновления - Me.AllowAdditions = False ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 13:30 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
не думаю, что открытие формы в режиме ввод данных влечет за собой пересылку всей таблицы, я не прав? Какая разница влечет или не влечет. Дело в подходе. Есть простая задача: добавить по данным введенным пользователем одну и только одну запись. Начинаются всякие навороты, тут включить, тут выключить. А потом через месяц меняется алгоритм обработки (например на определенных клиентов ставится квота, или еще что-нибудь). И опять программист лезет править клиентскую часть и обновлять новую версию и юзеров. при серверной процедуре все намного проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 13:37 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
Заработало Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 13:40 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
Вообще-то у формы есть свойство: Цикл табуляции. Устанавливаешь "Текущая запись" и до выхода из формы больше запись добавить нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 13:52 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
2 Huk: По-моему, для этого надо ампутировать мышку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 13:54 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
По-моему, для этого надо ампутировать мышку. по самые плечи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 14:01 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
Вот и не знаю что поможет: На ввод данных в таблицу срабатывает тригер, которай может запретить изменение в запись, так вот если изменение не может произойти(происходит откат), то это отображается на форме при переходе на другую запись, а т.к. запись она, то это не отображается, подскажите, как отобразить это, т.е. обновлять контролы, после изменений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 14:06 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
Ты сам то понял что написал??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 14:22 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
Перефразирую: На обновление записи в таблице срабатывает тригер, который может запретить изменение в записи, так вот если изменение не может произойти(происходит откат), то это отображается на форме при переходе на другую запись, а т.к. запись одна, то перехода на другую запись не происходит, а следовательно наш откат, т.е. возврат к старому значению поля не отображается на форме, requery поставить не получается, т.к. форма для ввода а следовательно при requery форма визуально будет очищаться. Как решить эту проблему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 14:32 |
|
||
|
О формах ввода.......
|
|||
|---|---|---|---|
|
#18+
Я вот за собой тоже замечал такую черту, если делаешь что-то, а кто-то говорит "так не оптимально, лучше по-другому", то все равно продолжаешь делать, чтобы потом продемонстрировать "я все-таки сделал ЭТО". Правда я так и не понял на чем база на SQL или Access. Но если будет желание обсудить как оптимальнее сделать на SQL, могу сказать, если желания нет......каждому свое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 14:43 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1681454]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
44ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 334ms |

| 0 / 0 |
