2016-03-04 62 views

回答

4

看来你的目标是改变联系TableDef的,但我怀疑这是可能的。试图做到这一点触发错误#3268:

一旦对象是集合的一部分,不能设置此属性。

所以我认为你必须创建一个新的链接TableDef从旧链接Connect属性和新的值和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 
+2

...或只是通过删除旧ODBC链接表,在创建新的,然后重命名新的具有相同的名称作为旧做手工的UI。 –

+0

可以通过没有DSN的用户界面来完成吗?我不知道如何。 – HansUp

+1

类别。如果新建的ODBC链接表是使用* File DSN *创建的(就像在单击[Select]按钮时单击[“New ...”按钮](http://i.stack.imgur.com/FJm99.png)数据源对话框),那么'.Connect'属性使用文件名称作为'Description',并且包含其他连接字符串元素:ODBC; Description = zzzTestFileDsn; DRIVER = SQL Server; SERVER =(local)\ SQLEXPRESS; Trusted_Connection =是; APP = Microsoft Office 2010; DATABASE = myDb'。 –