Programatically создают соединение ODBC и таблицы ссылки в Доступе MS

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

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

5
задан FrustratedWithFormsDesigner 22 June 2010 в 18:56
поделиться

2 ответа

Требуется подключение к связанной таблице без DSN от Access. Это возможно, и я сделал это, но у меня нет кода с собой. Я думаю, что это было примерно так (здесь используется источник SQL Server, но у Oracle просто будет немного другая строка подключения). Чтобы таблицы были созданы при запуске, вам необходимо проверить наличие каждого tabledef, прежде чем пытаться создать их снова, и вызвать подпрограмму, подобную приведенной ниже, при открытии базы данных 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
11
ответ дан 18 December 2019 в 09:47
поделиться

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

6
ответ дан 18 December 2019 в 09:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: