Программно создавать соединения ODBC и таблицы ссылок в MS Access - PullRequest
5 голосов
/ 22 июня 2010

Мы используем MS Access в качестве внешнего интерфейса для Oracle. Доступ к данным осуществляется через соединение ODBC, и в Access to Oracle есть две связанные таблицы, которые являются таблицами необработанных данных. Я хотел бы иметь возможность установить соединение и связать таблицы из файла Access. Таким образом, пользователям не нужно беспокоиться о настройке DSN для соединения ODBC (большинство из них не очень технические пользователи, и для этого потребуется ручное удержание), и в конечном итоге мы можем получить файл Access для различные тестовые среды и генерировать отчеты.

Можно ли динамически создавать соединение с базой данных при открытии файла, и можно ли динамически изменять местоположение, на которое ссылаются мои связанные таблицы?

Ответы [ 2 ]

11 голосов
/ 22 июня 2010

Требуется подключение таблицы без 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
6 голосов
/ 23 июня 2010

Я занимаюсь программированием на рабочей станции с определенным DSN, а затем перед распространением для производственного использования запускаю вариант Код Дуга Стила, чтобы преобразовать все строки подключения на основе DSN в без DSN .

...