内存中、独立、断开连接的 ADO 记录集

2023-12-03

当我的表单加载时,我在数据表子表单上运行此代码,并且没有收到任何错误消息或代码中断。我的 debug.print 显示记录集 rs 充满了 2131 条记录,就像它应该的那样,但我的表单显示单行带有#Name?在各个领域。我的控件上的控件源属性肯定与我上面列出的字段名称相匹配。 RS 是一个表单级别变量,在表单关闭之前我不会将其关闭或将其设置为空。

知道我做错了什么吗?

Set rs = New ADODB.Recordset
rs.Fields.Append "TimesUsed", adInteger
rs.Fields.Append "strWorkType", adVarWChar, 150
rs.Fields.Append "DateLastUsed", adDate
rs.Fields.Append "SelectedYN", adBoolean
Set rs.ActiveConnection = Nothing
rs.CursorLocation = adUseClient
rs.LockType = adLockBatchOptimistic
rs.Open

Dim sSQL As String
sSQL = "MyComplicated SQL Statement Ommitted from this SO Question"

Dim r As DAO.Recordset
Set r = CurrentDb.OpenRecordset(sSQL, dbOpenDynaset, dbSeeChanges)
If Not (r.EOF And r.BOF) Then
    r.MoveFirst
    Dim fld
    Do Until r.EOF = True
        rs.AddNew
        For Each fld In r.Fields
            rs(fld.Name) = r(fld.Name).value
        Next
        rs.Update
        r.MoveNext
    Loop
End If
r.Close
Set r = Nothing
Debug.Print rs.RecordCount '2131 records
Set Me.Recordset = rs

好的,所以我刚刚读了这个在MSDN网站上:

记录集必须包含一个或多个具有唯一索引的字段,例如表的主键。

(注意:此信息在这种情况下似乎是错误的。)


是否可以在仅是内存对象的记录集上设置主键?

是的,使用adFldKeyColumn as the Attrib to the 附加方法。阅读字段属性枚举更多细节。

如果您的 SQL 语句中已有合适的唯一字段(或字段组合),请使用它。如果没有,请创建一个长整型字段并将其用作假主键字段...为插入的每一行增加值。

rs.Fields.Append "pkey", adInteger, , adFldKeyColumn

另请参阅 Danny Lesandrini 撰写的 Database Journal 中的这篇文章是否有帮助:创建内存中 ADO 记录集

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

内存中、独立、断开连接的 ADO 记录集 的相关文章

随机推荐

  • 填充 Internet Explorer 输入框

    我读了很多关于我的问题的答案 但不知何故 如果我尝试 模仿 我所看到的 我仍然无法做我需要的事情 问题很简单 在打开的 IE 页面上填写一个输入框 结果 代码卡在了线上getelementbyid显示运行时错误 424 需要对象 Priva
  • 编程珍珠:在 40 亿个整数的文件中查找丢失的整数

    Question 输入位于顺序文件上 该文件最多包含 40 亿个整数 找出缺失的整数 Solution据我的理解 制作两个临时文件 一个以 0 开头 另一个以 1 开头 两羽鸽子 4 3B 鸽子和 4B 鸽子 之一必须低于 2B 选择文件并
  • Chrome 扩展中的选择和站点搜索

    我正在尝试编写接受用户选择的单词和用户定义的谷歌浏览器扩展 网站并在该网站上搜索这个词 通过 Google 和上下文菜单 选项页面中有一个表单 用户在表单字段中输入站点 字段 站点的数量可变 用户指定 哪些站点以及多少个 所有站点都保存到数
  • 在函数中声明数组是不好的做法吗

    努力只问我在这里真正寻找的东西 我真的只关心是否被认为是不好的做法 或者不声明如下所示的大小可能变化的数组 如果是 我通常会用 malloc 代替 void MyFunction int size do a bunch of stuff s
  • 扩展界面和悬停提示

    我正在 VS Code 中使用 TypeScript 我有三个接口 A B and C 每个都有两个属性 C延伸A and B interface A A1 boolean A2 boolean interface B B1 boolean
  • jQuery,阻止表单提交输入,但允许表单通过按钮单击提交[重复]

    这个问题在这里已经有答案了 我有一个表单 在输入文本框中输入一个数字并按 ENTER 键 然后使用 jQuery 将值附加到文本区域 这一切都很好 我遇到的问题是 如果我添加一个提交按钮来提交表单 那么只要我按 ENTER 键 它就会提交表
  • 如何将对象解构为已定义的变量? [复制]

    这个问题在这里已经有答案了 以下产生语法错误 let source screenings size source screenings a size b screenings size source 预期结果 screenings shou
  • Javascript 日期在 iOS 上无效

    我正在开发一个基于 Phonegap 的 iOS 应用程序 该应用程序已经为 Android 做好了 以下几行适用于 Android 但不适用于 iOS 为什么 var d new Date 2015 12 31 00 00 00 cons
  • 自定义 Woocommerce 店面主页上显示的产品

    我已经绞尽脑汁思考了太久 但找不到解决方案 我尝试过使用插件来连接 woo 商务文档和店面文档 但没有成功 默认情况下 主题有 新品 和 畅销商品 其中列出了 4 个 新品 和 4 个 畅销商品 我想将 4 个 新产品 增加到 8 个 即
  • 图标题 学名 + textGrob gtable 中的符号

    首先 我要感谢 Baptiste 爵士帮助我改进 R 脚本 使用 gtable textGrob 在组合图的左下角添加标题 如下所示 library grid library gridExtra library ggplot2 p1 lt
  • Apache+PHP 在unix上的写权限

    我正在尝试在 Fedora 上使用 apache 启动 PHP 站点 但遇到了写入权限问题 看起来 apache 对某些文件夹没有写权限 但我不明白为什么 我检查了httpd conf 它有组 apache 用户 apache 然后我做了
  • 在 Google 地图中创建自定义信息窗口

    我需要为 Google 地图信息窗口创建自定义外观 直边框架和透明度等 我知道这只能通过外部插件来实现 但我不确定该使用哪一个 我尝试过使用 extInfoWindow 但在使其正常工作时遇到问题 我还查看了 PD 标记窗口 http ww
  • 提交按钮未提交

    div class buttons div
  • 将指定内容作为属性的 XML 导入到 MySQL 表中?

    我有一个如下所示的 XML 文件
  • 将多个json反序列化为对象c#

    我正在尝试从具有多个对象的 API 调用中反序列化 json 字符串 但没有取得太大成功 JSON purchaseOrders supplierId 500 currencyCode EUR companyId LALA companyN
  • 使用虚方法的 C++ 对象大小

    我对虚拟对象的大小有一些疑问 1 虚函数 class A public int a virtual void v A类的大小是8字节 一个整数 4字节 加1个虚拟指针 4字节 天气晴朗 class B public A public int
  • Bullet/ammo.js 中的刚体(形状)来自 Three.js 中的网格

    我将bullet ammo js 与 Three js 一起使用 我有一个 3d 网格 我想使用精确的形状与软体进行碰撞检测 有没有办法从网格 在 Three js 中 创建 3D 刚体 在项目符号中 这是一个例子 http kidzins
  • 对子数组进行向量化 numpy 唯一

    我有一个形状为 N 20 20 的 numpy 数组数据 其中 N 是一个非常大的数字 我想获取每个 20x20 子数组中唯一值的数量 循环如下 values for i in data values append len np uniqu
  • 为什么java支持原始数据类型的函数重载? [复制]

    这个问题在这里已经有答案了 在学习java中的自动装箱和拆箱时 我了解到java会在需要时将原始数据类型转换为包装类 反之亦然 例如如果函数正在执行Integer作为参数 如果我们将值传递为1然后java编译器会将其转换为new Integ
  • 内存中、独立、断开连接的 ADO 记录集

    当我的表单加载时 我在数据表子表单上运行此代码 并且没有收到任何错误消息或代码中断 我的 debug print 显示记录集 rs 充满了 2131 条记录 就像它应该的那样 但我的表单显示单行带有 Name 在各个领域 我的控件上的控件源