【发布时间】:2012-07-17 16:01:51
【问题描述】:
我已经根据下面给出的建议更新了代码,我已经对其进行了测试并且效果很好,供未来用户快速参考。
我正在使用以下代码创建链接表,而无需为每个用户设置 DSN,我如何指定主键,因为如果手动连接会询问您:
Dim sConnect As String
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Set db = CurrentDb
Set tdf = db.CreateTableDef
tdf.Name = "dbo_vwFeedback" ' - -- --- This is the Label that you see in Access...
tdf.Connect = "ODBC;DRIVER=SQL Server;SERVER=server01\serverinstance;DATABASE=db_name;Trusted_Connection=Yes"
tdf.SourceTableName = "vwFeedback" ' - -- --- This is the actual name in SQL Server, minus the owner.
db.TableDefs.Append tdf
CurrentDb.Execute "CREATE UNIQUE INDEX PK_dbo_vwFeedback_PrimaryKey ON dbo_vwFeedback (DataSetID, FeedbackRef) WITH PRIMARY"
注意:以上是针对 SQL Server VIEW 的,与 SQL Server TABLE 相同,但您不需要 CurrentDB.Execute 行(如果您的主键已在服务器上正确设置)。
代码用于链接表并手动指定主键。
如果您没有手动或使用上述方法指定为 SQL Server VIEW 创建索引,您将只能获得一个 READ ONLY 视图,并且您可能会遇到返回错误数据,请参阅下面的 cmets 示例。
【问题讨论】:
标签: sql ms-access vba recordset