Как использовать добавление нового обновления набора записей DAO для разделения баз данных со ссылками

#ms-access #vba #ms-access-2010

#ms-access #vba #ms-access-2010

Вопрос:

После создания базы данных, ее тестирования и подтверждения того, что все процедуры выполняются идеально, у меня возникают проблемы с командами набора записей DAO, как только я разделяю базу данных и связываю таблицы. Следующее ниже является одним (из многих) DAO записывает команды «ДОБАВИТЬ НОВЫЕ», которые больше не работают после разделения. Как ни странно, я нашел одно решение этой проблемы, удалив связанную таблицу и создав идентичную локальную таблицу во внешнем интерфейсе, где запись затем обновляется правильно, но для моих нужд это решение будет неприемлемым, поскольку слишком много таблиц, которые мне нужно содержать во внутренней базе данных дляв целях безопасности.

 Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("tblHoldingProjectDeepDive01", dbOpenTable)
rst.AddNew
rst!ID_Project_Sub_Phase = Me.IDProjSubPhase
rst.Update
rst.Close
Set rst = Nothing
 

Ответ №1:

Как вы уже обнаружили, dbOpenTable работает с локальными таблицами, но не со связанными таблицами. Для обновляемого набора записей, включающего связанные таблицы, используйте dbOpenDynaset вместо этого. (Для набора записей, доступного только для чтения, который вы могли бы использовать dbOpenSnapshot .)

Комментарии:

1. Ты снова спас меня, Горд. Спасибо .. вопрос, если у вас есть минутка. Учитывая, что я планирую разделить большинство своих баз данных и распространять интерфейсы для пользователей, вы рекомендуете мне заменить все мои команды dbOpenTables на dbOpenDynaset ?? Есть ли какие-либо преимущества в дальнейшем использовании dbOpenTable?

2. @MarcheseIlChihuahua я бы просто пошел dbOpenDynaset .

3. Еще раз спасибо, Горд. Если у вас есть возможность, не могли бы вы подумать над другим вопросом, который я недавно опубликовал, о том, почему я не могу взять свою разделенную базу данных и создать файл только для выполнения. Я проверил все источники по этому вопросу и не нашел ничего полезного.