Может кто-нибудь объяснить, почему первый пример кода работает, а второй нет?
Этот код повторной ссылки работает:
Dim db As Database
Dim sNewLinkAddress As String
sNewLinkAddress = "C:\temp\backend.accdb"
Set db = CurrentDb
db.TableDefs("table1").Connect = ";Database=" & sNewLinkAddress
db.TableDefs("table1").RefreshLink
Этот код повторной ссылки НЕ работает, но сообщения об ошибках не выдаются:
Dim sNewLinkAddress As String
sNewLinkAddress = "C:\temp\backend.accdb"
CurrentDb().TableDefs("table1").Connect = ";Database=" & sNewLinkAddress
CurrentDb().TableDefs("table1").RefreshLink
Что меня беспокоит, так это то, что есть фундаментальное различие, о котором я не знаю, между использованием объекта базы данных, непосредственно возвращаемого функцией CurrentDB (), и использованием переменной 'db', которая установлена для объекта базы данных, возвращаемого функцией CurrentDB (). На мой взгляд, оба пути должны быть идентичными, но, очевидно, я ошибаюсь!
В прошлом я использовал CurrentDB () напрямую для различных задач, таких как открытие набора записей без проблем. Кажется, есть определенная проблема с перекомпоновкой таблиц. Есть идеи, что здесь происходит?
Я использую Access 2007, но та же проблема относится и к 2003 году.