有没有办法使用 VBA 从 TNS 文件中提取 Service_Name?因为任何人都可以为他们的 TNS 条目命名任何他们想要的名称——我的直通查询在他们的计算机上不起作用。
如果有办法通过使用 TNS 条目本身而不是 SERVICE_NAME 来设置查询 - 那也可以。我只是想确保我的数据库在任何方面都不是特定于计算机的。
例如,这是我的无 DSN 连接字符串
[ODBC] DRIVER={Oracle in Oracle1}
UID=username
Pwd=password DBQ=myTNSEntryName.ourcompany.com
Trusted_Connection=Yes
server= (DESCRIPTION= (ADDRESS= (PROTOCOL=TCP)
(HOST=ourhost.ourcompany.com) (PORT =9999) )
(CONNECT_DATA= (SERVICE_NAME=myTNSEntryName.ourcompany.com)
)
这是我的 TNS 条目
myTNSEntryName.ourcompany.COM=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=ourhost.ourcompany.com)
(PORT=9999)
)
(CONNECT_DATA=
(SERVER=dedicated)
(SERVICE_NAME=ourdatabasename.ourcompany.com)
) )
在 TNS 文件中,SERVICE_NAME 是我们的数据库名称,但由于我将 TNS 条目命名为 myTNSEntryName - 现在使用 report.ourcompany.com 作为 SERVICE_NAME 不起作用。
谢谢你
编辑:澄清一点,基本上我正在寻找一种方法来设置一个 DSN'less 连接字符串,然后我可以在 MS Access Pass-Through 查询的 PROPERTIES 和 Docmd 中的 ODBC CONNECT STR 行中使用它.Transfer数据库。
或者,找到一种方法来读取用户的 TNS 条目名称(不是数据库名称,而是他们选择的任何名称)