使用vba建表时如何指定主键

2024-01-15

我已经用下面给出的建议更新了代码,我已经测试过并且效果很好,供未来用户快速参考。


我使用下面的代码创建链接表,而无需为每个用户设置 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 视图创建索引,您将只能获得只读视图,并且可能会遇到返回错误数据的情况,请参阅下面的注释以获取示例。


将表格与问题中的代码链接后,您需要执行以下操作:

CurrentDb.Execute "CREATE UNIQUE INDEX SomeIndex ON SomeTable (PrimaryKeyColumn) WITH PRIMARY"

See 添加带主键的链接表的 VBA 代码 https://stackoverflow.com/questions/9602687一个完整的例子。

请注意,你这样做not如果您链接一个则需要这样做table- Access 将自动检测主键(正如 Remou 在下面的评论中明确指出的那样)。

但是当你链接 SQL Server 时view在 Access 中,它是很重要为 Access 中的视图指定正确的主键。
如果您指定了错误的键(= 您选择了不标识唯一记录的列)或根本没有键,Access 会将视图链接为只读表(正如您已经注意到的那样)。

另外,它会搞乱显示的行 - 请参阅为什么 MS Access 与 SQL Manager 的链接视图给出不同的结果? https://stackoverflow.com/questions/7350928以获得更多解释。
(阅读我的回答,and我在其他答案下的评论)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用vba建表时如何指定主键 的相关文章

  • 限制相同的数据条目

    我是 SQL 新手 我有两张桌子 一张放冰箱 一张放食物 一台冰箱只能存放 5 种食物 所以我想知道是否有办法限制食物表中只有 5 个相同的冰箱 ID 条目 没有直接的方法来强制执行这样的约束 我能想到的最好的是 有一个 冗余 列food
  • 如何在条件持续时在Mysql中选择行

    我有这样的事情 Name Value A 10 B 9 C 8 意思是 这些值是按降序排列的 我需要创建一个新表 其中包含占总值 60 的值 所以 这可能是一个伪代码 set Total sum value set counter 0 fo
  • LINQ to Entities 无法识别“System.String ToString()”方法,并且该方法无法转换为存储表达式

    我正在将一些内容从一台 mysql 服务器迁移到一台 sql 服务器 但我不知道如何使这段代码工作 using var context new Context foreach var item in collection IQueryabl
  • MySQL - 如何将列逆透视到行?

    ID a b c 1 a1 b1 c1 2 a2 b2 c2 如何将行重新组织为ID columntitle value 1 a1 a 1 b1 b 1 c1 c 2 a2 a 2 b2 b 2 c2 c 你正在尝试unpivot数据 My
  • SQL准备语句如何通过多个可能的菜单选择进行选择?

    所以我有 4 个菜单选择 产品 位置 课程类型和类别 所有这些都可以为空 使用 JSF 编程 但这应该与这个问题无关 因为它是一个 SQL 问题 菜单选择将向托管 bean 发送用户选择的变量 并使用准备好的语句使用用户选择的菜单中的信息
  • 如何在oracle sql查询中提取括号之间的字符串

    我正在尝试从字符串中提取括号之间的值 我怎样才能做到这一点 例如 我有这个字符串 Gupta Abha 01792 我想得到括号之间的结果 即 01792 我正在尝试编写这样的查询 select substr Gupta Abha 0179
  • SQL Server 2008 中超前滞后函数的替代

    我想将当前行与下一行中的值进行比较 SQL 有LEAD and LAG函数来获取下一个和上一个值 但我无法使用它们 因为我使用的是 SQL Server 2008 那么我该如何得到这个呢 我有带输出的表 Id ActId StatusId
  • 与派生表的内连接

    我对连接派生表的基本语法有疑问 这是使用的基本语法吗 select from table1 a inner join select from table2 as T1 on 1 ID T1 ID 那行得通吗 您是在问加入两个子查询吗 尝试
  • 选择具有按两列分组的最大值的行

    我见过很多关于此类问题的解决方案 尤其是这个SQL 仅选择列上具有最大值的行 https stackoverflow com questions 7745609 sql select only rows with max value on
  • 访问应用程序,带有表单任务栏图标的隐藏应用程序窗口

    我有一个带有一个主表单的访问应用程序 当您打开应用程序时 AutoExec 宏会通过 Windows API apiShowWindow 隐藏应用程序 然后 AutoExec 打开设置为 Popup 的主窗体 这一切都很顺利 我的数据库内容
  • 使用 Excel VBA 比较列并突出显示匹配数据

    我需要比较Column B in Sheet 2 with Column C in Sheet 3并突出显示具有匹配数据的单元格Column B Sheet 2 中使用了以下公式条件格式 哪个有效 NOT ISNA VLOOKUP Shee
  • “JSON”附近的语法不正确 - SQL Server 2016

    所以我最近安装了SQL Server 2016 CTP3主要是为了JSON输出功能 我正在尝试在我的 SQL 查询中使用它 就像 MSDN 上下面的链接中显示的那样 关键字 JSON 不会变成蓝色并给出错误 JSON 附近的语法不正确 可能
  • 如何修复此“输入超出文件末尾”错误? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我必须找到包含以下内容的所有步骤PGM FTP然后阅读所有行 直到找到另一个没有的步骤PGM FTP 它可以是任何东西 除了FTP 我需要
  • 使用 Microsoft Excel 进行 RSA 加密

    是否有任何现成的适用于 Excel 的 RSA 加密算法实现 只需使用给定的公钥加密纯文本 仅此而已 或者我需要从一开始就实施它 我谷歌但没有发现任何有用的东西 欢迎任何有用的链接 UPDATE 我需要一个非商业图书馆 None
  • SQL Server 2008 R2 中的字符映射/逐字符搜索和替换

    我在 SQL Server 2008 R2 上运行 我们在这里有一个要求 即我需要创建将某些英文字符替换为以前在遗留系统中使用的区域设置语言字符 为此 我可能会使用 T SQL 中的替换函数 但在我的实践中 我们会逐个字符地替换 例如 AS
  • 在 INSERT INTO....RETURNING 上添加 LEFT JOIN

    我的查询插入一个值并返回插入的新行 INSERT INTO event comments date posted e id created by parent id body num likes thread id VALUES 15757
  • 使用 VBA 将 Excel 中的范围粘贴到 Powerpoint 模板的特定幻灯片中

    我花了好几个小时查看针对我的问题的各种建议解决方案 但找不到任何似乎可以完成工作的东西 或者更可能的是 我对 VBA 的掌握正在了解我理解在线解决方案的能力 因此 我希望你们中的一位好心人能够帮助我解决问题 我打开了一个 Excel 工作表
  • 检查行中是否有单调递增的值

    我正在寻找一种方法来检查表中的值是否针对特定的行子集单调递增 该表包含列 id name meas date 和 value 对于具有相同名称的所有行 应按 meas date 对行进行排序 并且需要检查这些排序行的值列是否单调递增 因此
  • 计算Oracle中逗号分隔字符串中的元素数量

    假设我有一张桌子Col2是 varchar Col1 Col2 1 001 002 2 003 004 005 我需要计算 Col2 中的元素数量 并返回它 如果我这样做的话 select do something here with co
  • 使用SQL显示组内最小计数和最大计数

    Goal 我正在寻找一种方法来计算等于组的最小值或最大值的项目数 我的物品每隔几天就会收到一次 并且每两周输入一次 我需要查看每个 EntryDate 的最小和最大接收日期 以及最小和最大的项目计数 在 MS Access 中使用 SQL

随机推荐

  • MongoDB C++,如何在插入时添加 ISODate 值

    这是关于新的 MongoDB C 驱动程序 不是旧版驱动程序 我可以这样插入文档 value Value document lt lt Key lt lt Value lt
  • .NET 中的字符串转换

    为什么 net中有这么多方法可以转换为字符串 我见过的方法是 ToString Convert ToString 和 string 有什么不同 Convert ToString obj 将指定值转换为其等效的字符串表示形式 将返回Strin
  • 调整 GC 以进行大型缓存刷新

    我的内存中有一个很大的缓存 使用com google common cache LoadingCache 使用 Scheduler 会在 10 分钟后刷新 如下所示 ScheduledExecutorService refresher Ex
  • Mac OS X 10.9 - 设置永久环境变量

    如何在 Mac OS X 10 9 中设置永久环境变量 即每次启动新终端会话时不需要导出的环境变量 我找到了许多关于修改我的答案 bash profile and profile然而 这两种选择似乎都不是永久的解决方案 只是暂时的 我试图设
  • 我应该将 SQL 查询放在 Rails 中的哪里?

    我应该在 Rails 中的什么位置放置 SQL 查询的最佳实践是什么 我是否应该在模型中创建方法 例如 find all public items 其中我在所有条件下使用查找方法 然后在控制器中使用它们 就像这样 我将所有查询都放在一个地方
  • 为什么占位符伪元素上的转换属性在 Chrome 中有效?

    我正在闲逛 placeholder当我注意到一些奇怪的事情时 Codepen Chrome 59 0 3071 上的伪元素 请看我的JSFiddle https jsfiddle net 4ct6zkaw 简而言之 此 CSS 不应启用 p
  • 红外 LED 跟踪:使用 OpenCV 跟踪 x、y、z 位置

    我正在寻找一种方法来解决我遇到的计算机视觉问题 我有工作跟踪系统 4 8个摄像头 给出红外 LED 的 x y z 每个 LED 传输独特的 8 位信号 跟踪系统价格昂贵 而且界面对于我们的用户来说太难使用 我想用我自己的 OpenCV 实
  • 按钮垂直对齐引导程序

    我正在尝试以简单的形式对齐按钮 我这样做了 div class panel panel default div class panel heading teste div div class panel body div class row
  • 将应用程序提交到使用 Firebase 的 App Store

    我有一个关于在使用 Firebase 时向应用程序商店提交应用程序的快速问题 我想知道 Firebase 方面是否需要做任何事情才能使数据库可供任何人使用 或者我可以只完成提交应用程序的正常过程并假设数据库将为测试人员或下载该应用程序的任何
  • std::includes 实际上做了什么?

    From 标准 https timsong cpp github io cppwp n4659 alg set operations includes std includes 返回 true if first2 last2 为空或者范围内
  • AVL树如何在插入时平衡树

    我想为 avl 树创建一个插入函数 然而 插入函数必须是递归的并且必须是平衡的 我有一个将树向左旋转的方法 PivoterAGauche 和一个将树向右旋转的方法 PivoterADroite Pivot left Private Func
  • 与 C 预处理器“字符串化”相反

    当使用 C 预处理器时 可以像这样对宏参数进行字符串化 define TO STRING x a string with x 所以使用时 结果如下 TO STRING test 将扩展到 a string with test 有什么办法可以
  • docker 扩展字段解析器错误

    我刚看到新的extension fields https docs docker com compose compose file extension fields在 Docker Compose v3 4 中 并尝试将其与部分覆盖结合使用
  • JsonPath - 过滤数组并仅获取第一个元素

    我试图过滤此 JSON 数组的元素以仅返回它找到的第一个元素 elements urn urn li lyndaCourse 189800 details classifications associatedClassification u
  • 固定位置元素继承弹性项目的宽度

    我正在构建一个 UI 它需要在视口底部有一个固定位置 粘性元素 其宽度受主要内容区域的限制 主要内容区域的两侧可以选择具有固定宽度的 同级 左侧和 或右侧边栏 因此我使用 Flexbox 来构建三列结构flex grow 1就主要内容而言
  • 使用 ctypes 访问变量数组的内容

    我使用 ctypes 来访问读取 python 中 C 函数的文件 由于读取的数据巨大且大小未知 我使用 float in C int read file const char file int n int m float data 功能m
  • Python 应用程序不执行任何操作

    在我更改了我不再记得的内容后 这段代码根本停止执行任何操作 Dash Shell import os import datetime class LocalComputer pass def InitInformation Home Loc
  • android:约束布局是否支持RTL

    在 android Studio 的约束布局中支持 RTL 的最佳实践是什么 或者我应该创建一个单独的布局 一个用于英语 另一个用于阿拉伯语 英文版 The Expected layout with Arabic language The
  • Tomcat如何定位webapps目录?

    Tomcat如何定位webapps目录 这个位置设置在哪里 是相对目录吗 它可以在 CATALINA BASE conf server xml in the
  • 使用vba建表时如何指定主键

    我已经用下面给出的建议更新了代码 我已经测试过并且效果很好 供未来用户快速参考 我使用下面的代码创建链接表 而无需为每个用户设置 DSN 如果手动连接 我如何指定主键 Dim sConnect As String Dim db As DAO