无法重新连接到链接表ODBC VBA

时间:2015-10-23 16:11:49

标签: mysql vba ms-access access-vba odbc

我正在使用MS Access 2007和Win7 Professional x64。 我必须连接到通过ODBC v5.1本地驱动程序传递的外部MySQL数据库。

从VBA我可以成功连接到我的数据库,从Access我可以打开我的链接表并查看数据。

您可以在下面看到我用来创建链接表的代码。我不想用DSN的方式;我更喜欢司机的方式。

Dim CnnString As String
Dim tdf As DAO.TableDef
CnnString = "ODBC;DRIVER=MySQL ODBC 5.1 Driver;DATABASE=xxxx;OPTION=2048;PORT=0;SERVER=xxxxx;UID=xxxxx;PWD=xxxx;Connect Timeout=45; Command Timeout=90;"
Set tdf = CurrentDb.CreateTableDef("table1")
tdf.Connect = CnnString
tdf.SourceTableName = "table1"
CurrentDb.TableDefs.Append tdf
Set tdf = Nothing

当我退出VBA / Access应用程序并重新打开它时,链接表出现在表格列表中,但如果我双击它,会出现ODBC连接器窗口,询问我DSN连接,我看不到数据和我的应用程序不起作用。

如何永久连接我的链接表?

提前致谢

1 个答案:

答案 0 :(得分:1)

现在我有机会检查我是怎么做到这一点的...... 我已使用DoCmd.TransferDatabase命令成功(并永久)将无DSN的ODBC表与VBA相关联:

' CnnString as above
DoCmd.TransferDatabase _
    TransferType:=acLink, _
    DatabaseType:="ODBC", _
    DatabaseName:=CnnString, _
    ObjectType:=acTable, _
    Source:="table1", _
    Destination:="table1", _
    StructureOnly:=False, _
    StoreLogin:=True

重要的部分是StoreLogin:=True - 我不认为您在使用CreateTableDef方法时可以指定此内容。