0

背景故事 我正在使用 SAGE Mas 200 软件,试图通过 Access 链接到它。该软件为我公司的 300 名投资者提供日期。对于每个投资者,我在登录时都有一个不同的投资者 ID,以及我的 UID 和密码,因此每个连接字符串都是不同的。

经过数小时的反复试验,我成功地通过 Access 连接,却发现每个数据库只能有一个活动连接字符串。由于我需要从 300 位投资者那里提取数据,因此存在问题……我无法弄清楚。

我是 VBA 的新手,所以我的知识非常有限。我已阅读有关使用连接字符串链接到“模板”文件的信息,但不确定如何格式化模板文件。有人可以给我看一个例子吗?另外,我如何让它遍历存储在数据库中的每个查询,然后提取适当的连接字符串?

示例 这是我的连接字符串示例,其中“AAL”是投资者代码:

ODBC;DSN=SOTAMAS90;UID=tbard|AAL;PWD=password;Directory=\\mas-200\MAS90;Prefix=\\mas-200\MAS90\SY\, \\mas-200\MAS90\==\;ViewDLL=\\mas-200\MAS90\HOME;SERVER=NotTheServer

查询名称为 MAS_AAL。

另一投资者:SMP,查询名称为 MAS_SMP。等等等等等等……

有人可以成为我在隧道尽头的光并帮助我,这样我就不必手动运行 300 个查询。我要死在这里!!

4

1 回答 1

0

您可以以编程方式设置连接字符串。

有一个名为 SOTAMAS90 的 MAS 90 / MAS 200 ODBC 驱动程序。在过去 5 年的 MAS 安装中,有 32 位和 64 位驱动程序。

在 VBA 中,如果我没记错的话,你会做这样的事情。(这假设您已经获取了所需的 Investor 对象,并且它具有称为用户名和密码的属性):

Dim conn as new ADODB.Connection()

' Set properties of connection string manually
conn.ConnectionString = "DRIVER = SOTAMAS90; UID=" & myInvestor.username & "; PWD=" & myInvestor.password & "; Company=ABC"

conn.Open()

另一种方法是在 Access 中使用单个 ODBC 连接,使用 Access 的“获取外部数据”功能来设置链接的 ODBC 表。然后你可以像对待任何其他 Access 表一样对待它,直接查询它。这种方法的问题是 Access 会不断提示您输入凭据,无论是在您第一次打开表时,还是在您暂时不活动时。我听说你可以在 SOTAMAS90 ODBC 连接中保存 UID 和密码,但我从来没有这样做过。

希望有帮助。

亚伦

于 2018-04-27T07:22:13.783 回答