|
|
|
Редактирование записей чисто средствами DAO. Как правильно?
|
|||
|---|---|---|---|
|
#18+
Форма и все ее контролы свободные от данных. Делаю форму для редактирования записей. В форме список с помощью которого можно перейти на нужную запись. Для перехода использую метод Seek. Но вот задача , как организовать изменение записи. Юзер переходит на нужную запись и если нужно меняет ее и нажимает кнопку сохранить (вызывается update через DAO) , но вдруг ему вздумается перейти на другую запись. Может кто делал подобное, поделитесь опытом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 14:36 |
|
||
|
Редактирование записей чисто средствами DAO. Как правильно?
|
|||
|---|---|---|---|
|
#18+
Правильной дорогой идешь: сперва сделал, а потом подумал! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 14:39 |
|
||
|
Редактирование записей чисто средствами DAO. Как правильно?
|
|||
|---|---|---|---|
|
#18+
2 Виктору Ну так получилось. Так что , может что подскажешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 14:46 |
|
||
|
Редактирование записей чисто средствами DAO. Как правильно?
|
|||
|---|---|---|---|
|
#18+
Виктор убежал далеко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 15:04 |
|
||
|
Редактирование записей чисто средствами DAO. Как правильно?
|
|||
|---|---|---|---|
|
#18+
А в чём проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 15:21 |
|
||
|
Редактирование записей чисто средствами DAO. Как правильно?
|
|||
|---|---|---|---|
|
#18+
Я всегда делаю так: нашел нужную запись, кликнул на нее (2 раза - для надежности) и открывается подформочка, которая редактирует выбранную запись И ТОЛЬКО ЕЕ. Да простят меня монстроподобные, белой кости, гуру и кенгуру Аксесса за мой нарочитый примитивизм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 15:27 |
|
||
|
Редактирование записей чисто средствами DAO. Как правильно?
|
|||
|---|---|---|---|
|
#18+
Ну я и дурак Все , дошло. При переходе на другую запись ничего страшного не произойдет. Ведь контроллы не привязаны к данным. Так что юзер должен нажимать "сохранить" если хочет чтобы изменения записались в базу. Вот заметил , что напишу на форум , то сразу как то проясняется Какой хороший форум. 2 Shkurenko Alexander Да все теперь нормально. Вопрос кстати тут назрел, как запретить юзеру править текст в текстовом поле ( не используя enabled) ? Форма свободная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 15:28 |
|
||
|
Редактирование записей чисто средствами DAO. Как правильно?
|
|||
|---|---|---|---|
|
#18+
2 Лифчик А как юзер у тебя на нужную запись переходит? В этой подформе кнопки "сохранить" и "отмена", да? В подформе вносишь изменения с помощью DAO / ADO? Я тоже сначала хотел так сделать. Но переход к нужной записи с помощью списка мне показался привлекательней. Вот может кто скажет из монстров какой способ получше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 15:33 |
|
||
|
Редактирование записей чисто средствами DAO. Как правильно?
|
|||
|---|---|---|---|
|
#18+
Мы решали это так - есть отдельная форма для редактирования, в нее копируются данные нужной записи (был спец. метод написан) и открывается POPUP!!!! , потом ее можно редактировать до посинения (изменения только у Вас на экране) - и только по Save запихиваем в базу (тоже был спец. метод написан) Удачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 15:34 |
|
||
|
Редактирование записей чисто средствами DAO. Как правильно?
|
|||
|---|---|---|---|
|
#18+
опоздал... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 15:36 |
|
||
|
Редактирование записей чисто средствами DAO. Как правильно?
|
|||
|---|---|---|---|
|
#18+
А вот ежели я забыл нажать сохранить, что мне бедному пользователю делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 15:46 |
|
||
|
Редактирование записей чисто средствами DAO. Как правильно?
|
|||
|---|---|---|---|
|
#18+
Я понял тебя. Да это не мешало бы учесть. Может смотреть изменялся ли текст в полях , и если хоть в одном был изменен текст вывести мессадж юзеру с предложением "сохранить / нет " и оставить на выбранной записи. Блин вот только полей много (более 25 штук) половина комбобоксов . Как проверить , что изменились данные хотя бы в одном? Сижу думаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 15:51 |
|
||
|
Редактирование записей чисто средствами DAO. Как правильно?
|
|||
|---|---|---|---|
|
#18+
Eternal> Блин вот только полей много (более 25 штук) половина комбобоксов . Eternal> Как проверить , что изменились данные хотя бы в одном? Код: plaintext 1. 2. 3. 4. В каждом элементе управления, которые содержат данные, событие изменение =dirty_data() Это самый простой способ, можно придумать чего-нибудь посложнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 16:02 |
|
||
|
Редактирование записей чисто средствами DAO. Как правильно?
|
|||
|---|---|---|---|
|
#18+
А просто событие Form.Dirty разве не подойдет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 16:06 |
|
||
|
Редактирование записей чисто средствами DAO. Как правильно?
|
|||
|---|---|---|---|
|
#18+
Хорошо. Я получил признак того, что юзер не нажал "сохранить". Процедуру проверки надо вешать на событие листбокса (в начале) где предупреждать об этом и спрашивать вариант действия. И если он нажмет "да" обновить запись, ведь нахожусь пока на ней. Т.е каждый раз перед переходом к новой записи проверяется, была ли изменена предыдущая. Public Function dirty_data() dirty_ = True End Function Но где то надо сбрасывать в False ! Чтобы сообщения не достали юзера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 16:09 |
|
||
|
Редактирование записей чисто средствами DAO. Как правильно?
|
|||
|---|---|---|---|
|
#18+
2 Eternal Ну дык когда я, пользователь, сохранил запись dirty_ = False 2 Лифчик А разве это работает с "отвязанными" элементами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 16:15 |
|
||
|
Редактирование записей чисто средствами DAO. Как правильно?
|
|||
|---|---|---|---|
|
#18+
Dirty новое свойство Access 2000 . Что то я с ним не очень. 2 Лифчику Form.Dirty не работает , проверил. Когда наступает это событие? При каких действиях , не при изменении данных которые подвязаны к форме? Private k As Long 'обще доступная переменная для всех процедур модуля Private Sub Form_Dirty(Cancel As Integer) k = 1 End Sub А вот change полей действует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 16:17 |
|
||
|
Редактирование записей чисто средствами DAO. Как правильно?
|
|||
|---|---|---|---|
|
#18+
>Ну дык когда я, пользователь, сохранил запись dirty_ = False Точно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 16:18 |
|
||
|
Редактирование записей чисто средствами DAO. Как правильно?
|
|||
|---|---|---|---|
|
#18+
2 Eternal Не совсем так + задаём пользователю вопрос "Сохранить запись?" YesNoCancel YesNo - сбрасываем флаг Cancel - оставляем все как есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 16:19 |
|
||
|
Редактирование записей чисто средствами DAO. Как правильно?
|
|||
|---|---|---|---|
|
#18+
проверь (перед переходом) равенство полей формы данным в записи. (стандартная связанная форма почти так и работает). //можешь ввести набор переменных - "старых значений формы" - и грузить их при переходе на запись данными, параллельно заполнению контролов. /* Для полной иммитации можно перед сохранением проверять равенство "старых значений формы" значениям записи, и при несовпадении выдавать ругательство о том, что другой юзер уже поменял данные :0)*/// И не мучай события контролов (на выставку псевдофлага). Застрелишься. Ибо, если после ченjа пользователь эскейпы нажимал, то он может не понять юмора сообщений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 16:49 |
|
||
|
Редактирование записей чисто средствами DAO. Как правильно?
|
|||
|---|---|---|---|
|
#18+
Ну совсем немного осталось. Проблема вот в чем. Юзер изменил запись и забыл (гад такой) нажать "сохранить". Я это отловил скажем и вывожу диалог где предлагаю сохранить запись или отказаться от сохранения. Если юзер выберет "нет" , то произойдет переход на нужную запись (значение в листбоксе выделится), а вот если выберет " да ",тогда нужно взять и вызвать процедуру сохранения , но юзер то уже щелкнул на другом значении списка. Короче в списке происходит выделение сразу 2-х значений и попадаю черт знает куда. Вот код процедуры. Option Compare Database Private k As Long Private Sub FId_Change() k = 1 End Sub Private Sub List_AfterUpdate() Dim s As Long If k = 1 Then s = MsgBox("Save changed !!! ", vbYesNo + vbQuestion, "jjj") If s = 6 Then 'сохраняем запись save_Click k = 0 'сброс признака изменения записи Else 'просто переходим на указанную юзером запись rst.Index = "PrimaryKey" rst.Seek "=", List.Value FId.SetFocus: FId.Value = rst(0).Value FNaim.SetFocus: FNaim.Value = rst(1).Value List.SetFocus k = 0 End If End Sub Private Sub save_Click() rst.Edit FId.SetFocus rst(0).Value = CLng(FId.Text) FNaim.SetFocus rst(1).Value = FNaim.Text rst.Update List.Requery End Sub Так вот все работает, только не могу обработать правильный переход в списке. Выделяется два значения после нажатия "да" в Msgbox. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 17:10 |
|
||
|
Редактирование записей чисто средствами DAO. Как правильно?
|
|||
|---|---|---|---|
|
#18+
Александр Шкуренко: 2 Лифчик А разве это работает с "отвязанными" элементами. А слабО форму для редактирования (одной записи) сделать с "привязанными" элементами? Или это постановка задачи такая - все сделать на "отвязанных"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 17:23 |
|
||
|
Редактирование записей чисто средствами DAO. Как правильно?
|
|||
|---|---|---|---|
|
#18+
2 Лифчик Нет не слабо. Автор топика работает с несвязанными элементами управления, поэтому и такие советы. Хотя иногда бывает нужно работать именно с несвязанными э/у. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 17:33 |
|
||
|
Редактирование записей чисто средствами DAO. Как правильно?
|
|||
|---|---|---|---|
|
#18+
А м.б. в данном контексте товарищь найдет облегчение именно в привязанной форме, надо лишь подсказать такую возможность! ЗЫ Вчера на даче засел в сугроб. Час возился с лопатой, откапывал авто. Обеспокоенная теща приходит и говорит: А ты, зятек, не пробовал назад подать? Может она назад поедет? Потом была некая обида... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 17:39 |
|
||
|
Редактирование записей чисто средствами DAO. Как правильно?
|
|||
|---|---|---|---|
|
#18+
EternalВопрос кстати тут назрел, как запретить юзеру править текст в текстовом поле ( не используя enabled) ? Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 19:34 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32395485&tid=1676876]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
219ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
78ms |
get tp. blocked users: |
1ms |
| others: | 265ms |
| total: | 609ms |

| 0 / 0 |
