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

时间:2010-06-22 18:56:02

标签: oracle ms-access odbc dsn

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

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:6)

我在已定义DSN的工作站上进行编程,然后在分发以供生产使用之前,运行Doug Steele's code to convert all the DSN-based connect strings to be DSN-less的变体。

相关问题