我们使用MS Access作为Oracle的报告前端。通过ODBC连接访问数据,Access中有两个链接表作为原始数据表。我希望能够在Access文件中设置连接并链接表。这样用户就不必担心为ODBC连接设置DSN(他们中的大多数都不是非常技术性的用户,并且需要手持这样的东西),我们最终可以将Access文件指向不同的测试环境并生成报告。
是否可以在打开文件时动态创建数据库连接,是否可以动态更改链接表链接的位置?
答案 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的变体。