У нас есть таблица ORDERS и таблица CHARGES. Для каждого заказа может взиматься плата. Если заказ удален, мы хотим, чтобы плата автоматически удалялась.Каскадное удаление с использованием макроса данных
Если между двумя таблицами существует одна взаимосвязь, мы можем определить отношение к каскаду, чтобы удалить заряд, когда заказ удален.
К сожалению, таблицы связаны с использованием двух полей.
Как сделать это с помощью макроса данных?
Вдохновленный Delete Records from Table Before Delete Trigger Я попытался следующие:
где DeleteCharge
является VBA
функцию
Он работает, но:
- Я предпочел бы не должны использование VBA
- Если пользователь отменяет первое удаление, все же выполняется его инициированное удаление.
Доступ позволит вам создать отношения на основе 2 полей в каждой таблице и обеспечить ссылочную целостность с помощью 'CASCADE DELETE'. – HansUp
@HansUp I попробовал это, но Access хочет уникальный индекс в основной таблице. В моем случае поля с обеих сторон не могут быть уникальными. –
Не уверен, что я понимаю. Означает ли это, что две или более строки ORDERS могут быть связаны с одним и тем же набором строк CHARGES? – HansUp