|
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
|
|||
---|---|---|---|
#18+
Здравствуйте! Подскажите, каким способом в макросе данных AfterDelete отследить, было ли подтверждение пользователем удаления записи? При выполнении команды УДАЛИТЬ ЗАПИСЬ срабатывает обработчик, написанный на vba (вызывается через оператор ЗадатьЛокПеременную в макросе данных). сейчас в макросе данных такой код: Код: vbnet 1.
Команда вызывает функцию, в которой находится логика дополнительной обработки, но функция вызывается, независимо от того, подтвердил ли пользователь удаление. Возникает ситуация, что запись не удалена, а обработчик срабатывает. Требуется что-то вроде Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 18:19 |
|
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
|
|||
---|---|---|---|
#18+
v-e-t, для формы существуют события до/после подтверждения Del,удаление-может какое из них подойдет ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 19:11 |
|
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
|
|||
---|---|---|---|
#18+
sdku, про формы знаю, требуется решить задачу на уровне макроса данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 19:16 |
|
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
|
|||
---|---|---|---|
#18+
v-e-tsdku, про формы знаю, требуется решить задачу на уровне макроса данных. Я извиняюсь за тупость , а не могли бы Вы для тех кто в танке перевести свою фразу на более понятный язык , особенно словосочетание на уровне макроса данных. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 19:23 |
|
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
|
|||
---|---|---|---|
#18+
DarkMan, может слишком скомкано/кратко выразился. На уровне макроса данных таблицы - пользуясь тем, что можно использовать при построении макроса данных. Может есть какое-то свойство, которое можно использовать в теле макроса, например возможно DELETED (по аналогии с OLD, содержащим предыдущие значения полей). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 19:36 |
|
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
|
|||
---|---|---|---|
#18+
Или подскажите, где полное руководство по макросам данных посмотреть. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 19:40 |
|
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
|
|||
---|---|---|---|
#18+
v-e-tНа уровне макроса данных таблицы - , Вот это уже более понятно , это если я правильно понял , начиная с Access 2010 тригеры ??? А чем Вам не нравится обрабатывать все это в форме как Вам советовали ? Там очень много подходящих событий . А на уровне таблицы как мне кажется , то откуда ей известно ... , что нажимал пользователь ? Я думаю там Вы сможете отловить уже когда запись удалена. Если я не ошибаюсь конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 19:43 |
|
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
|
|||
---|---|---|---|
#18+
v-e-tПри выполнении команды УДАЛИТЬ ЗАПИСЬ срабатывает обработчик, написанный на vba (вызывается через оператор ЗадатьЛокПеременную в макросе данных).Вызывать процедуру (макрос) иначе как в ответ на событие (или инструкцией Call)-это сильно. Стесняюсь спросить: а занафига нужен макрос??? (по сути "посредник", между Аксом и VBA, с очень ограниченными возможностями и полным отсутствием средств отладки. Или я чего-то не понимаю?) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 01:01 |
|
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
|
|||
---|---|---|---|
#18+
sdku, он нужен именно, чтобы можно было обойтись без использования событий форм. задача такая - не использовать события формы. оптимально это или нет - другой вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 02:36 |
|
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 03:23 |
|
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
|
|||
---|---|---|---|
#18+
v-e-t, макрос AfterDelete сработает соответственно после всех подтверждений иначе события удаления не будет, т.е. по определению пользователь уже подтвердил своё действие. Но если прямо таки нужно отловить подтверждение, то попробуй создавать переменную в коллекции TempVars (она доступна, и из макросов, и из VBA) на событие формы Delete (надеюсь работа с данными идёт через форму). Но надо помнить что событие формы Delete происходит для каждой удаляемой записи. Далее смотри переменную в TempVars в своём макросе данных. Использование таких ограничений, ИМХО, ухудшает результат использование макросов данных - независимость от способа обработки данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 04:11 |
|
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
|
|||
---|---|---|---|
#18+
ПанургНо если прямо таки нужно отловить подтверждение, то попробуй создавать переменную в коллекции TempVars (она доступна, и из макросов, и из VBA) на событие формы Delete (надеюсь работа с данными идёт через форму). Но надо помнить что событие формы Delete происходит для каждой удаляемой записи. Далее смотри переменную в TempVars в своём макросе данных.Посмотрел тут - не работает. Не видно этой коллекции в макросах данных. Увы. sdkuполным отсутствием средств отладки. Или я чего-то не понимаю?)Ошибки пишутся в спец таблицу "USysApplicationLog" ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 06:22 |
|
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
|
|||
---|---|---|---|
#18+
Панургv-e-t, макрос AfterDelete сработает соответственно после всех подтверждений иначе события удаления не будет, т.е. по определению пользователь уже подтвердил своё действие. Но если прямо таки нужно отловить подтверждение, то попробуй создавать переменную в коллекции TempVars (она доступна, и из макросов, и из VBA) на событие фор Нет, не так. При вызове команды УДАЛИТЬ ЗАПИСЬ. Запись удаляется и триггер срабатывает. Потом отображается диалоговое окно подтверждения удаления записи. Если пользователь не подтверждает, то происходит откат действий. Вроде бы все хорошо, но откат только тех действий, что записаны в макросе. Если действия выполнялись с использованием пользовательской функции из модуля vba, то выполненные данной функцией изменения не откатываются назад, т.е. не охватываются транзакцией и соответственно откат не происходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 06:30 |
|
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
|
|||
---|---|---|---|
#18+
sdkuv-e-t, ACCESS-система, управляемая событиями (обойтись без их использования-полный...нонсенс) Как, используя события формы в аксессе, реализовать определенную логику, связанную с обновлением данных в нескольких таблицах, если изменения вносятся без вызова формы аксесса, а непосредственно в таблицу базы, на основании изменений которой должны меняться данные в других талицах, например, изменения вносятся документа excel или word? (изменения в таблице excel автоматически вносятся в талицу БД acсess) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 06:39 |
|
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
|
|||
---|---|---|---|
#18+
v-e-tНет, не так. При вызове команды УДАЛИТЬ ЗАПИСЬ. Запись удаляется и триггер срабатывает.Да, макрос срабатывает. Я писал про коллекцию TempVars . Меняй логику программы - откажись от этого способа. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 06:53 |
|
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
|
|||
---|---|---|---|
#18+
v-e-tнапример, изменения вносятся документа excel или word? (изменения в таблице excel автоматически вносятся в талицу БД acсess)А про связанные таблицы Вы читали или про импорт/экспорт данных, который происходит по событию мыши или клавиатуры,в том приложении,где оно произошло (а не по хлопку в ладоши) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 12:20 |
|
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
|
|||
---|---|---|---|
#18+
v-e-t, Возможно поможет этот материал и еще тут А так, пересмотрите алгоритм, возможно стоит сначала выполнить все проверки и/или спросить пользователя, а уже потом изменять данные ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 12:24 |
|
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
|
|||
---|---|---|---|
#18+
Вдогонку:v-e-t.....в таблицу базы, на основании изменений которой должны меняться данные в других талицах, ...А это есть нарушение одного из фундаментальных правил "базостроения" явно указывающее на не верно спроектированную БД. Это не только мое мнение: Панург..Меняй логику программы - откажись от этого способа.Swa111А так, пересмотрите алгоритм... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 12:47 |
|
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
|
|||
---|---|---|---|
#18+
Панургsdkuполным отсутствием средств отладки. Или я чего-то не понимаю?)Ошибки пишутся в спец таблицу "USysApplicationLog"Констатацию факта ошибки и дальнейшую запись этого факта в таблицу не считаю "средством отладки" ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 12:57 |
|
|
start [/forum/topic.php?fid=45&msg=39754149&tid=1610939]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 147ms |
0 / 0 |