|
|
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
Нужно создать форму только с добавлением данных в таблицу с кнопками "ОК" и "Отмена". Кнопку "ОК" сделал, использовав команду DoCmd.Close Но вот кнопку "Отмена" - не могу. Если использовать ту же команду DoCmd.Close, то она при выходе сохраняет набранную в полях информацию в таблице. Что нужно сделать, чтобы набранная информация в полях не сохранялась в таблице? Заранее благодарю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 13:47 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
me.undo Но это может оказаться не очень надежно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 13:51 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 13:51 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
2 ВС Почему же? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 13:52 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
Например, юзер может несколько раз нажать на Shift+Enter (Save Record) - и тогда анду отандует ему только то, что сделано после последнего сейва. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 14:01 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
Согласен.. лажа.. Надо перехватывать Me.Dirty=False И предупреждать что откат станет не возможен.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 14:06 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
А транзакциями? У Гетца все подробно описано, правда для .adp, не знаю, подойдет ли для .mdb ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 14:08 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
На какой странице Для mdb устанешь расписывать реализацию транзакции на форму ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 14:10 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
Транзакция была бы хороша еще и потому, что в AfterUpdate какого-нибудь поля может производиться еще какое-нибудь изменение в базе, и обычным Undo его отменить нельзя. Транзакция тут бы была очень кстати. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 14:14 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
Страницу не помню :) dim cnn as new adodb.connection dim rst as new adodb.recordset На Form_Load: cnn.connectionstring=currentproject.connection rst.open "MyTable",cnn, adOpenKeyset, adLockPessimistic set me.recordset=rst cnn.begintrans На ButCancel_Click: cnn.rollback На ButOK_Click: cnn.commit Что, для mdb так не прокатит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 14:16 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
То есть включение формы в транзакцию происходит за счет того, что ее рекордсет и транзакция открываются на одном и том же коннекшне. Похоже, что (хоть в mdb, хоть в adp) то, что написано в AfterUpdate, в эту транзакцию не будет включено и при RollBack не будет откачено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 14:20 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
Не прокатит там надо колбаситься в Worspaces (та что ли пишется) У Гетца том один тоже есть пример, если я помню.. А вот работать с рекордсетом формы может быть черевато глюками! Мне кажется что это стрем! Владимир Саныч как считаешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 14:20 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
Хотя с adp я никогда не работал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 14:21 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
Хотя стоп, Access ХР поддерживает ADODB рекордсеты для формы? Если да то прокатит, в 2000 такого не было ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 14:21 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
См. мое 14:20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 14:22 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
Не ну чего скрывать, zz меня озадачил.. Неужели всю работу с формами запихать в транзакции... мда.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 14:27 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
Все понятно. mdb не поддерживает более одного подключения (что логично, иначе она сразу бы стала клиент-сервером ) Так что мой способ не катит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 14:28 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
2Пой: кстати, для .adp использую именно транзакции, никаких глюков пока не замечал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 14:29 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
2 zz Насчет глюков, у меня на форме (табличная подчиненная) висел чекбокс, завязанный на поле smallint, так вот после обращении к свойству Me.Form.Recordset.RecordCount, чекбокс глючил! ADP XP, убрал нафиг это обращение и стало все гуд. А обращался я в одной из функций которая срабатывала на нажатие кнопки в основной форме, и возвращала количество записей в подчиненной табличной. С тех пор страдаю предубеждением. Однако очень заманчиво использовать транзакцию! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 14:36 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
по поводу чекбокса - это известный глюк, слава богу, проявляется только на чекбоксе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 14:38 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
авторслава богу, проявляется только на чекбоксе. К сожалению, не только на чекбоксе. При оперециях с me.recordset в форме, в которой разрешено редактирование (ХТ говорит, что если оно не разрешено, то и проблем нет - не знаю, не проверял), жди беды. В любой момент в любом поле (это мои ощущения, я не пытался как-нибудь классифицировать поведение акцесса), акцесс может выпасть в "выполнил недопустимую операцию), или просто начать генерить непонятные ошибки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 15:21 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
Согласен с Geo, но вот вопрос, а что если из всех операций с рекордсетом мы ограничимся лишь SET Me.Recordset=Rst как предлагает zz. Тогда транзакция у нас в руках А насчет "Недопустимых операций" тоже видал и не раз.. мда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 15:25 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
не знаю, у меня вот уже год крутится .adp с реализованными транзакциями через me.recordset, формы разрешены для редактирования, пока обвалов и вылетов не наблюдалось... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 15:28 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
2 zz Убедил черт красноречивый , сегодня же на одну из форм (маленьких) повешу алгоритм с транзакцией! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 15:33 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
2 2ПОЙ (или 22 ПОЙ): Но только если нигде нет AfterUpdate. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 15:37 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
2ВС: напугал ты меня этим AfterUpdate, только что проверил, все там роллбэкится. Так что 2пой может спокойно пользовать транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 15:39 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
Владимир Саныч ты что ты имеешь ввиду под этим? Программное изменение значения поля? Та что ли?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 15:39 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
Если AfterUpdate меняет значения в той же форме, то все ОК. А если в каких-то других таблицах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 15:41 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
Не ну саныч отчасти прав, если ты на AfterUpdate зарядишь новый рекордсет или к примеру вызов хранимки которая на серваке поменяет значение полей в таблице то откат транзакции в форме ничего не даст. А если просто Me.Мое_Поле="Владимир Саныч" то откатит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 15:42 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
2ВС: а как он меняет значение др. таблиц? Через рекордсет? Ну так то мешает этот рекордсет открыть на том же коннекте, тогда он тоже войдет в транзакцию. Через Execute? Опять же делать Execute от нашего затранзакченного (во слово придумал) коннекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 15:44 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
автор А если в каких-то других таблицах? Этого надо либо избежать, либо сделать на серваке в триггере на Update этого поля в таблице, тогда при откате, изменения сделанные триггером тоже откатятся?? Или нет?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 15:45 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
2 zz Тогда надо поменять Dim на Private, то есть объявить cnn на уровне модуля формы, и обращаться к нему при работе с рекордсетами и коммандсами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 15:47 |
|
||
|
Как сделать кнопку "Отмена" в форме?
|
|||
|---|---|---|---|
|
#18+
Это без разницы, Dim или Private, главное, чтоб объявление до всех процедур в модуле формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2004, 15:51 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1675085]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
175ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
| others: | 221ms |
| total: | 513ms |

| 0 / 0 |
