Можем ли мы использовать транзакции MS Access с acCmdSaveRecord? - PullRequest
0 голосов
/ 23 октября 2019

Я знаю, что мы можем использовать транзакции для SQL в Access через пространство имен DAO, но можем ли мы сделать то же самое с acCmdSaveRecord, поскольку он явно не связан с DAO? или acCmdSaveRecord имеет неявную транзакцию? Если вы не можете поместить acCmdSaveRecord в транзакцию, какова альтернатива? Явный SQL?

Забыл добавить, что я новичок в VBA, поэтому я не знаю, какие из них являются лучшими. Кроме того, поскольку я не могу комментировать, я беру на себя существующие приложения Access VBA, поэтому я не знаю смысла использования acCmdSaveRecord.

1 Ответ

0 голосов
/ 23 октября 2019

Нет, не как правило. Таким образом, использование транзакций относится к коду VBA и к коду sql или набора записей. К сожалению, транзакции не применяются к формам.

Однако вы можете обойти это: начать транзакцию. Создайте набор записей. Перенесите (назначьте) источник записи форм на созданный выше набор записей.

Теперь пользователь может свободно редактировать, изменять, добавлять, удалять эту форму, но если вы не зафиксировали набор записей после всехвыше и сделано, то редактирование и т. д. будут игнорироваться. Это может быть немного сложно, и для субформ я никогда не придумывал подход безупречного кодирования, который работал бы хорошо.

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

...