在MS Access数据库中,我正在连接到SQL Server数据库中的视图,如下所示:
Dim s As String
s = "ODBC;DSN=mydb;Trusted_Connection=Yes;DATABASE=mydb;"
Dim td As TableDef
Set td = CurrentDb.CreateTableDef("vwMyView", 0, "MySchema.vwMyView", s)
CurrentDb.TableDefs.Append td
CurrentDb.TableDefs.Refresh
这将创建一个链接表,该链接表链接到SQL Server中的视图。
但是,我无法插入/更新/删除,因为Access不知道“主键”。如何在VBA中添加有关主键的信息?
使用链接表向导时,总是要求您从列表框中选择唯一键列。我想在VBA中重现此行为。
最佳答案
您始终可以更新刚附加的表,以包括索引/主键。就像是,
Dim s As String
s = "ODBC;DSN=mydb;Trusted_Connection=Yes;DATABASE=mydb;"
Dim td As TableDef
Set td = CurrentDb.CreateTableDef("vwMyView", 0, "MySchema.vwMyView", s)
CurrentDb.TableDefs.Append td
CurrentDb.Execute "CREATE UNIQUE INDEX SomeIndex ON vwMyView (PrimaryKeyColumn) WITH PRIMARY".
CurrentDb.TableDefs.Refresh
Set td = Nothing
不知道是否需要在创建INDEX之前刷新CurrentDB。首先尝试刷新,如果它不起作用-刷新它,然后执行CREATE语句。