How to set primary key when linking with CreateTableDef(与 CreateTableDef 链接时如何设置主键)
问题描述
在 MS Access 数据库中,我像这样连接到 SQL Server 数据库中的视图:
In a MS Access database, I'm connecting to views in a SQL Server database like this:
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 中的视图.
This creates a linked table, which is linked to a view in SQL Server.
但是,我无法插入/更新/删除,因为 Access 不知道主键".VBA中如何添加主键信息?
However, I cannot insert/update/delete, because Access does not know the "primary key". How can the information about the primary key added in VBA ?
使用链接表向导时,总是会要求您从列表框中选择唯一键列.我想在 VBA 中重现这种行为.
When using the Linked Table Wizard, you are always asked to select the unique key columns from a listbox. I want to reproduce this behaviour in VBA.
推荐答案
您可以随时更新刚刚附加的表以包含索引/主键.类似的东西,
You can always update the table you just attached to include an Index/Primary key. Something like,
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 语句.
Not sure if you need to refresh the CurrentDB before creating an INDEX. Try refreshing without first, if it does not work - refresh it then Execute the CREATE statement.
这篇关于与 CreateTableDef 链接时如何设置主键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:与 CreateTableDef 链接时如何设置主键
基础教程推荐
- 将 SQL Server DateTime 列迁移到 DateTimeOffset 2021-01-01
- 无法解决整理冲突 2021-01-01
- SQL:使用来自具有相同列名的两个表中的数据... 2021-01-01
- SQL 效率:WHERE IN 子查询 vs. JOIN 然后 GROUP 2021-01-01
- SQL Server 实例在登录协商期间返回无效或不受支持的协议版本 2021-01-01
- 需要 MySQL 5.1 中的抽象触发器来更新审计日志 2021-01-01
- 是否可以执行按位分组功能? 2021-01-01
- 在 SQL 中连接多个表 2021-01-01
- SSMS 中的权限问题:“对象 'extended_properties'、数据库 'mssqlsystem_resource'、... 错误 229)上的 SELECT 权限被拒绝" 2022-01-01
- 如何使用 mysql.connector 禁用查询缓存 2022-01-01
