【问题标题】:Unable to reconnect to linked tables ODBC VBA无法重新连接到链接表 ODBC VBA
【发布时间】:2015-10-23 16:11:49
【问题描述】:

我正在使用带有 Win7 Professional x64 的 MS Access 2007。 我必须连接到通过 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 连接,我看不到数据并且我的应用程序不起作用。

我怎样才能永久连接到我的链接表?

提前致谢

【问题讨论】:

  • 也许你应该使用Port=3306;
  • 重新打开数据库后,链接表显示什么Connect字符串? (设计视图 -> 属性)
  • @Gustav:我尝试过使用端口 3306,但它是一样的。连接正常,但在我退出并重新打开程序后,ODBC 连接器窗口仍然出现并且我的应用程序无法运行。
  • @Andre451:重新打开数据库后,连接字符串是我帖子中代码中使用的正确字符串:“ODBC;DRIVER={MYSQL ODBC 5.1 Driver};DATABASE=xxxx;OPTION=2048; PORT=3306;SERVER=xxx;连接超时=45;命令超时=90;;TABLE=table1

标签: mysql ms-access vba odbc


【解决方案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方法时不能指定这个。

【讨论】:

  • 非常感谢,这解决了我的问题!非常感谢你^_^
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-15
相关资源
最近更新 更多