5

我们使用 MS Access 作为 Oracle 的报告前端。数据通过 ODBC 连接访问,Access to Oracle 中有两个链接表是原始数据表。我希望能够设置连接并从 Access 文件中链接表。这样用户就不必担心为 ODBC 连接设置 DSN(他们中的大多数不是非常技术性的用户,并且需要手动操作),我们最终可以让 Access 文件指向不同的测试环境并生成报告。

是否可以在打开文件时动态创建数据库连接,并且可以动态更改链接表链接到的位置?

4

2 回答 2

12

您需要来自 Access 的无 DSN 链接表连接。这是可能的,我已经做到了,但我没有代码。我认为它类似于以下内容(这使用 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
于 2010-06-22T19:10:50.853 回答
7

我在定义了 DSN 的工作站上进行编程,然后在分发以供生产使用之前,运行Doug Steele 代码的变体以将所有基于 DSN 的连接字符串转换为 DSN-less

于 2010-06-22T23:30:40.440 回答