powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
20 сообщений из 20, страница 1 из 1
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
    #39754114
v-e-t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

Подскажите, каким способом в макросе данных AfterDelete отследить, было ли подтверждение пользователем удаления записи?
При выполнении команды УДАЛИТЬ ЗАПИСЬ срабатывает обработчик, написанный на vba (вызывается через оператор ЗадатьЛокПеременную в макросе данных).

сейчас в макросе данных такой код:

Код: vbnet
1.
ЗадатьЛокПеременную =SetParametr(Old.ID)



Команда вызывает функцию, в которой находится логика дополнительной обработки, но функция вызывается, независимо от того, подтвердил ли пользователь удаление. Возникает ситуация, что запись не удалена, а обработчик срабатывает.

Требуется что-то вроде
Код: vbnet
1.
Если <ЗАПИСЬ УДАЛЕНА> то ЗадатьЛокПеременную =SetParametr(Old.ID)
...
Рейтинг: 0 / 0
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
    #39754146
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v-e-t,
для формы существуют события до/после подтверждения Del,удаление-может какое из них подойдет
...
Рейтинг: 0 / 0
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
    #39754149
v-e-t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku, про формы знаю, требуется решить задачу на уровне макроса данных.
...
Рейтинг: 0 / 0
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
    #39754156
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v-e-tsdku, про формы знаю, требуется решить задачу на уровне макроса данных.
Я извиняюсь за тупость , а не могли бы Вы для тех кто в танке перевести свою фразу на более понятный язык , особенно словосочетание на уровне макроса данных. Спасибо.
...
Рейтинг: 0 / 0
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
    #39754158
v-e-t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMan, может слишком скомкано/кратко выразился. На уровне макроса данных таблицы - пользуясь тем, что можно использовать при построении макроса данных. Может есть какое-то свойство, которое можно использовать в теле макроса, например возможно DELETED (по аналогии с OLD, содержащим предыдущие значения полей).
...
Рейтинг: 0 / 0
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
    #39754162
v-e-t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или подскажите, где полное руководство по макросам данных посмотреть.
...
Рейтинг: 0 / 0
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
    #39754167
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v-e-tНа уровне макроса данных таблицы - ,
Вот это уже более понятно , это если я правильно понял , начиная с Access 2010 тригеры ??? А чем Вам не нравится обрабатывать все это в форме как Вам советовали ? Там очень много подходящих событий . А на уровне таблицы как мне кажется , то откуда ей известно ... , что нажимал пользователь ? Я думаю там Вы сможете отловить уже когда запись удалена. Если я не ошибаюсь конечно.
...
Рейтинг: 0 / 0
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
    #39754271
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v-e-tПри выполнении команды УДАЛИТЬ ЗАПИСЬ срабатывает обработчик, написанный на vba (вызывается через оператор ЗадатьЛокПеременную в макросе данных).Вызывать процедуру (макрос) иначе как в ответ на событие (или инструкцией Call)-это сильно.
Стесняюсь спросить: а занафига нужен макрос??? (по сути "посредник", между Аксом и VBA, с очень ограниченными возможностями и полным отсутствием средств отладки. Или я чего-то не понимаю?)
...
Рейтинг: 0 / 0
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
    #39754286
v-e-t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku, он нужен именно, чтобы можно было обойтись без использования событий форм. задача такая - не использовать события формы. оптимально это или нет - другой вопрос.
...
Рейтинг: 0 / 0
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
    #39754289
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v-e-t,
ACCESS-система, управляемая событиями
(обойтись без их использования-полный...нонсенс)
...
Рейтинг: 0 / 0
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
    #39754292
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v-e-t, макрос AfterDelete сработает соответственно после всех подтверждений иначе события удаления не будет, т.е. по определению пользователь уже подтвердил своё действие.
Но если прямо таки нужно отловить подтверждение, то попробуй создавать переменную в коллекции TempVars (она доступна, и из макросов, и из VBA) на событие формы Delete (надеюсь работа с данными идёт через форму). Но надо помнить что событие формы Delete происходит для каждой удаляемой записи.
Далее смотри переменную в TempVars в своём макросе данных.

Использование таких ограничений, ИМХО, ухудшает результат использование макросов данных - независимость от способа обработки данных.
...
Рейтинг: 0 / 0
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
    #39754299
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПанургНо если прямо таки нужно отловить подтверждение, то попробуй создавать переменную в коллекции TempVars (она доступна, и из макросов, и из VBA) на событие формы Delete (надеюсь работа с данными идёт через форму). Но надо помнить что событие формы Delete происходит для каждой удаляемой записи.
Далее смотри переменную в TempVars в своём макросе данных.Посмотрел тут - не работает. Не видно этой коллекции в макросах данных. Увы.

sdkuполным отсутствием средств отладки. Или я чего-то не понимаю?)Ошибки пишутся в спец таблицу "USysApplicationLog"
...
Рейтинг: 0 / 0
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
    #39754300
v-e-t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панургv-e-t, макрос AfterDelete сработает соответственно после всех подтверждений иначе события удаления не будет, т.е. по определению пользователь уже подтвердил своё действие.
Но если прямо таки нужно отловить подтверждение, то попробуй создавать переменную в коллекции TempVars (она доступна, и из макросов, и из VBA) на событие фор

Нет, не так. При вызове команды УДАЛИТЬ ЗАПИСЬ. Запись удаляется и триггер срабатывает. Потом отображается диалоговое окно подтверждения удаления записи. Если пользователь не подтверждает, то происходит откат действий. Вроде бы все хорошо, но откат только тех действий, что записаны в макросе. Если действия выполнялись с использованием пользовательской функции из модуля vba, то выполненные данной функцией изменения не откатываются назад, т.е. не охватываются транзакцией и соответственно откат не происходит.
...
Рейтинг: 0 / 0
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
    #39754301
v-e-t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuv-e-t,
ACCESS-система, управляемая событиями
(обойтись без их использования-полный...нонсенс)

Как, используя события формы в аксессе, реализовать определенную логику, связанную с обновлением данных в нескольких таблицах, если изменения вносятся без вызова формы аксесса, а непосредственно в таблицу базы, на основании изменений которой должны меняться данные в других талицах, например, изменения вносятся документа excel или word? (изменения в таблице excel автоматически вносятся в талицу БД acсess)
...
Рейтинг: 0 / 0
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
    #39754302
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v-e-tНет, не так. При вызове команды УДАЛИТЬ ЗАПИСЬ. Запись удаляется и триггер срабатывает.Да, макрос срабатывает. Я писал про коллекцию TempVars .
Меняй логику программы - откажись от этого способа.
...
Рейтинг: 0 / 0
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
    #39754468
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v-e-tнапример, изменения вносятся документа excel или word? (изменения в таблице excel автоматически вносятся в талицу БД acсess)А про связанные таблицы Вы читали или про импорт/экспорт данных, который происходит по событию мыши или клавиатуры,в том приложении,где оно произошло (а не по хлопку в ладоши)
...
Рейтинг: 0 / 0
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
    #39754469
Swa111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
v-e-t,

Возможно поможет этот материал и еще тут

А так, пересмотрите алгоритм, возможно стоит сначала выполнить все проверки и/или спросить пользователя, а уже потом изменять данные
...
Рейтинг: 0 / 0
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
    #39754487
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вдогонку:v-e-t.....в таблицу базы, на основании изменений которой должны меняться данные в других талицах, ...А это есть нарушение одного из фундаментальных правил "базостроения" явно указывающее на не верно спроектированную БД.
Это не только мое мнение:
Панург..Меняй логику программы - откажись от этого способа.Swa111А так, пересмотрите алгоритм...
...
Рейтинг: 0 / 0
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
    #39754492
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панургsdkuполным отсутствием средств отладки. Или я чего-то не понимаю?)Ошибки пишутся в спец таблицу "USysApplicationLog"Констатацию факта ошибки и дальнейшую запись этого факта в таблицу не считаю "средством отладки"
...
Рейтинг: 0 / 0
AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
    #39755026
v-e-t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо! Разобрался.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / AfterDelete (Макрос данных) с проверкой подтверждения удаления записи
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]