我正在使用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连接,我看不到数据和我的应用程序不起作用。
如何永久连接我的链接表?
提前致谢
答案 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
方法时可以指定此内容。