Ms access MS Access ODBC VBA刷新链接

Ms access MS Access ODBC VBA刷新链接,ms-access,vba,quickbooks,Ms Access,Vba,Quickbooks,我有一个MS Access数据库,其中有六(6)个来自Intuit QuickBooks Enterprise的ODBC表。我手动创建了链接,它们一下子就工作得很好。但是,链接需要每天刷新。我试图编写一个VBA代码来自动化这个过程,但是使用tdf。RefreshLinks总是失败。我总是要手动刷新链接。我发现数据库名称每天都在变化。刷新后,无论电脑是否重新启动,它都会在一天的剩余时间刷新。然而,第二天,名字总是不同的。这一定是QuickBooks所做的事情。我认为我需要能够“抓取”这个数据库名称

我有一个MS Access数据库,其中有六(6)个来自Intuit QuickBooks Enterprise的ODBC表。我手动创建了链接,它们一下子就工作得很好。但是,链接需要每天刷新。我试图编写一个VBA代码来自动化这个过程,但是使用
tdf。RefreshLinks
总是失败。我总是要手动刷新链接。我发现数据库名称每天都在变化。刷新后,无论电脑是否重新启动,它都会在一天的剩余时间刷新。然而,第二天,名字总是不同的。这一定是QuickBooks所做的事情。我认为我需要能够“抓取”这个数据库名称,以便使我的代码能够成功工作。有人听说过这个吗?有人知道如何克服这一点,以便我可以编写刷新链接的脚本,而不是手动刷新它们吗


由于我在这个网站上没有声誉,我无法发布任何图片。但我可以解释,我的MSysObjects查询显示QuickBooks链接表数据库名称为33c292ce6be44bdca0cc8dd6c68594a0,当我手动创建新链接时,连接到SQL Anywhere对话框会在数据库选项卡上显示新一天的数据库名称:4b2444e2c7ff4c37aa53d12a648f2fa0。我知道,一旦我刷新链接,这将是一天剩下的时间里显示在我的MSysObjects查询中的数据库名称。我如何得到它,以便将其合并到VBA代码中?如果这确实是自动刷新链接的答案?

刷新链接应该可以正常工作:

Dim db As DAO.Database, tdf As DAO.TableDef
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection ' cnn as in connection
On Error Resume Next
cnn.Open YOURCONNECTIONSTRINGHERE

Set db = CurrentDb

For each tdf in db.TableDefs
    tdf.Connect = YOURCONNECTIONSTRINGHERE
    tdf.RefreshLink
Next tdf

db.Close
Set db = Nothing

感谢您确认。刷新链接。连接字符串是否需要能够获取新的数据库名称?它不是静态的,正如我在最初的帖子中所描述的,prob解释了刷新的必要性。我在想可能有一种方法可以使用VBA获得这个数据库名称,这样我的连接字符串就会有效。我的另一个想法是查看Intuit(用于QuickBooks)提供的驱动程序,看看我是否有权正确访问QB数据库,以确保我没有因为某种原因被阻止。