Программно создавать соединения ODBC и таблицы ссылок в MS Access
Мы используем MS Access в качестве клиентского интерфейса для Oracle. Доступ к данным осуществляется через соединение ODBC, и в Access to Oracle есть две связанные таблицы, которые являются таблицами необработанных данных. Я хотел бы иметь возможность установить соединение и связать таблицы из файла Access. Таким образом, пользователям не нужно беспокоиться о настройке DSN для соединения ODBC (большинство из них не очень технические пользователи, и для этого потребуется ручное удержание), и в итоге мы можем получить доступ к файлу Access различные тестовые среды и генерировать отчеты.
Можно ли динамически создавать соединение с базой данных при открытии файла, и можно ли динамически изменять местоположение, на которое ссылаются мои связанные таблицы?
2 ответа
Требуется подключение таблицы без привязки к DSN из Access. Это возможно, и я сделал это, но у меня нет кода со мной. Я думаю, что это было что-то вроде ниже (это использует источник SQL Server, но Oracle просто будет иметь немного другую строку подключения). Чтобы создать таблицы при запуске, вам нужно проверить существование каждой таблицы, прежде чем пытаться создать их снова, и вызвать подпрограмму, подобную приведенной ниже, при открытии базы данных Access.
Function LinkTables()
Dim DB As Database, tDef As TableDef
Set DB = CurrentDb
Set tDef = DB.CreateTableDef("YourAccessLinkedTableNameHere")
tDef.Connect = "ODBC;Driver={SQL Server};Server=srvname;Database=dbname;UID=sqluserid;PWD=sqlpwd"
tDef.SourceTableName = "dbo.YourSourceTableNameHere"
DB.TableDefs.Append tDef
End Function
Я занимаюсь программированием на рабочей станции с определенным DSN, а затем перед распространением для производственного использования запускаю вариант кода Дуга Стила, чтобы преобразовать все строки подключения на основе DSN в DSN-менее.