【发布时间】:2016-03-04 16:51:41
【问题描述】:
【问题讨论】:
标签: ms-access vba ms-access-2010 ms-access-2007
【问题讨论】:
标签: ms-access vba ms-access-2010 ms-access-2007
看来您的目标是更改链接的TableDef 的SourceTableName,但我怀疑这是可能的。尝试这样做会触发错误 #3268:
一旦对象是集合的一部分,就无法设置此属性。
所以我认为你必须创建一个新的链接 TableDef 与旧链接的 Connect 属性和你的新 SourceTableName 值和 Append 到 TableDefs 集合。
Const cstrOldName As String = "dbo_tblFoo2"
Dim db As DAO.Database
Dim tdfOld As DAO.TableDef
Dim tdfNew As DAO.TableDef
Set db = CurrentDb
Set tdfOld = db.TableDefs(cstrOldName)
tdfOld.Name = cstrOldName & "_old" ' rename the old link
Set tdfNew = db.CreateTableDef
With tdfNew
.Name = cstrOldName
.Connect = tdfOld.Connect
.SourceTableName = "dbo.Dual"
End With
db.TableDefs.Append tdfNew
【讨论】:
.Connect 属性使用文件名作为 Description并且还包括其他连接字符串元素:ODBC;Description=zzzTestFileDsn;DRIVER=SQL Server;SERVER=(local)\SQLEXPRESS;Trusted_Connection=Yes;APP=Microsoft Office 2010;DATABASE=myDb.