我在sql server数据库中有一个可更新的视图。当我使用ODBC创建链接表时,我被要求选择唯一的记录标识符,以便它可以更新。
我需要在VBA中动态重新链接此表,因此我需要删除并重新创建链接表(我无法更新ODBC表的TableDef.Connect属性)。
我找到了几种解决方案,在我的情况下不适用:
这些适用:
临时解决方法:
答案 0 :(得分:13)
为什么不能在链接后为ODBC源创建索引?
在工作中,我们使用Access与链接的SQL Server表,当有人想要连接到不同的数据库(从生产环境更改为测试环境)时,我们对所有表执行类似的操作:
Dim TD As TableDef
Dim ConString As String
ConString = "ODBC;DRIVER={SQL Server};SERVER=ServerName;DATABASE=DbName;Trusted_Connection=Yes;"
CurrentDb.TableDefs.Delete "SomeTable"
Set TD = CurrentDb.CreateTableDef("SomeTable", 0, "SomeTable", ConString)
CurrentDb.TableDefs.Append TD
Set TD = Nothing
CurrentDb.Execute "CREATE UNIQUE INDEX SomeIndex ON SomeTable (PrimaryKeyColumn) WITH PRIMARY"