以编程方式在MS Access中创建ODBC连接和链接表

Fru*_*ner 5 oracle ms-access odbc dsn

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

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

Tah*_*aza 11

您想从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
Run Code Online (Sandbox Code Playgroud)


Dav*_*ton 6

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