删除 5 条记录,但 RecordsAffected 属性为 0

2024-01-31

这是一个代码片段:

Private Sub frmSearch_UnMarkAll()
Const sqlD As String = "DELETE * FROM PickList WHERE TableName = ""CARS"" AND KeyNo IN (" & _
"SELECT RecNo FROM Cars "
If frmSearch.WhereSql <> vbNullString Then
    CurrentDb.Execute sqlD & frmSearch.WhereSql & ")"
End If
Stop
End Sub

通过单击 frmSearch 表单上的命令按钮来调用此函数。该按钮引发一个由上述代码处理的事件。 WhereSql 是查找屏幕上显示的列表框中的 where 子句。它的值类似于“WHERE Cars.RecNo > 1441” 当代码到达 Stop 语句时,我使用立即窗口并键入以下内容来检查 RecordsAffected 属性:

? Currentdb.RecordsAffected 
 0 is the result.

我检查了 PickList 表并删除了相应的项目。

我的问题:这是一个错误吗?或者说删除一条记录不影响是正常的吗?

我已经解决了这个问题。我从 PickList 表中删除了 SequenceNo 字段。我在 PickList 表中的 TableName 和 KeyNo 上创建了索引,并将 Unique 指定为 yes。现在我只是

INSERT INTO PickList (表名,LastChangedDate,KeyNo)
Values(表名,now(),从命名表中recno)

如果 INSERT 由于错误 3022 而失败,则这是尝试重复条目,在此示例中我将忽略该条目。其他一切都按照我最初想要的方式运行。当我在代码中测试它或通过在调试器中打印来查看时,RecordsAffected 属性始终为零。这仍然令人困惑,因为如果您以交互方式从访问运行操作查询,则会显示所有信息。如果您运行其他关系 DBMS(标准的 DBMS),那么在使用查询引擎时总会有反馈。如果这是访问中的错误,我很难相信其他人不会失败。我倾向于认为我搞砸了。希望我不是孤独的先驱。谢谢您提前查看此内容。


查看答案here https://stackoverflow.com/a/21417189/430567来解释出了什么问题。实际上,当您获取 RecordsAffected 属性时,您并没有引用同一个对象。在这两种情况下,您都需要设置明确的引用和使用。 就像是:

dim db as dao.database
set db=currentdb
db.execute "some SQL statement", dbfailonerror
debug.print db.recordsaffected
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

删除 5 条记录,但 RecordsAffected 属性为 0 的相关文章

  • if 语句中的组合框为 null

    我正在尝试编写一个 if 语句 其中如果某个组合框为空 那么它会运行代码的某个部分 如果其中有数据 然后它会运行另一个组合框 我写了这个 Private Sub ProjectAddSetDateAutoBtn Click If Proje
  • 将图像存储到 Access 数据库的附件字段中

    我正在编写一个 VB 应用程序 需要在数据库中存储图像 用户在计算机上选择图像 这会以字符串形式提供路径 这是我的尝试 但是我收到错误 INSERT INTO 查询不能包含多值字段 这是我的代码 Dim buff As Byte Nothi
  • 在 Access 查询中调用 VBA 函数

    我正在尝试将 8 个不同查询的结果合并回一个查询中 所有要使用的查询都是查询的查询的查询的查询的查询 8 个系列的 4 个查询根据玩家打了多少轮高尔夫球将他们分开 每个系列中的最后一个查询计算每个玩家的确切让分 我正在使用的代码可能无法实现
  • 使用 C# .accdb 文件的 Microsoft Access 压缩和修复

    我需要使用 C 压缩并修复 accdb 最后一个 MS Access 版本 我尝试使用这个 var jroEngine new JRO JetEngineClass var old Provider Microsoft ACE OLEDB
  • 查询以显示表格,即使未输入某些字段

    我有一个查询和一张表 表的名称为 OrderT 而查询的名称为 SearchQ 查询就在那里 因此我可以让子表单显示表单上的搜索结果 尽管我的查询如果缺少任何字段中的任何数据 则不会在表上显示一行 例如 如果我有 CustomerName
  • 为什么这个非常简单的 SQL 查询在 MS Access 中失败?

    我有一个疑问 从所有权利来看都不应该失败 但我一生都无法弄清楚为什么 INSERT INTO Grocery Store Prices Store Item Brand Price Unit Quantity Note VALUES Kro
  • ALTER TABLE 语句中的 DEFAULT 子句导致语法错误

    我有一位客户想要定制一个旧的 Visual Basic 5 应用程序 该应用程序使用 Access 97 数据库和 Jet 3 5 作为数据库引擎 所需的自定义需要将一列添加到现有表中 以下工作正常 strSQL ALTER TABLE U
  • ConcatRelated() 函数的字符限制

    我一直在用艾伦 布朗的ConcatRelated 函数 但我意识到对于较大的数据集 数据是不完整的 此函数是否有字符限制 如果有 是否有不同的函数 UDF 可以实现相同的结果 这是功能 并链接回原始线程http allenbrowne co
  • 支持多个版本的 Excel 以从 Access 应用程序实现自动化

    我有一个 Access 应用程序 是在多用户环境中的 Access 2013 中开发的 它使用 Excel 自动化来导出和格式化 Excel 文件 正常的 Office Excel 2013 15 0 参考已完成 并且在 Office 20
  • MS Access 不需要的断点

    我有一个复杂的 MS Access 2013 数据库 其中包含数十个表单 在其中一个表单上 我有一个带有 vba 过程的按钮 它从 MS SQL ADODB 返回值并将它们放入文本框中 问题是 每当我单击此按钮时 它就会进入编译菜单 就好像
  • Access 2013 accde 文件无法导出到 acFormatXLSX

    我有一个 Access 2013 数据库 并将其保存为 accde 文件以提供给最终用户 我注意到报告打印预览功能区上不再有导出按钮 我不确定为什么它们存在于 accdb 中 但消失在 accde 文件中 并且无法使用 Google 找到任
  • 将 MS Access 表单和类/模块递归导出到文本文件?

    我在一个古老的留言板上发现了一些代码 它很好地从类 模块和表单中导出了所有 VBA 代码 见下文 Option Explicit Option Compare Database Function SaveToFile Save the co
  • Jet4 中的日期时间和数字格式是如何编码的?

    我正在编写一个低级工具来扫描损坏的 Jet4 MDB 文件并恢复数据 我正在扫描页面 解析行并解码列 如果我有日期时间字段的原始 8 字节值 如何将其转换为日期的字符串表示形式 例如 MM DD YY HH MM SS 如果我有单字段大小和
  • 禁止访问消息以防止从 Excel 重复导入

    我正在将数据从 Excel 导入到 Access 中的现有表中 并希望抑制以下消息 我尝试使用多字段索引将新记录导入表中 并且还尝试首先导入临时表 然后将新记录附加到现有表中 然而 在这两种情况下 它仍然会弹出以下消息 我想避免用户看到该消
  • Microsoft ACE 驱动程序更改了程序其余部分中的浮点精度

    我遇到一个问题 在使用后 某些计算的结果似乎发生了变化微软 ACE 驱动程序 http www microsoft com en us download details aspx id 13255打开 Excel 电子表格 下面的代码重现了
  • 如何在 where 子句中使用别名?

    我试图在多列文本和备忘录中搜索我不想看到的某些短语和黑名单短语 假设如下表 stories id title author publisher content 前任 我想找到所有提到 在任何领域 苹果 但将 苹果酱 列入黑名单的故事 SEL
  • 计算查询中活动时间戳之间的时间差

    我对 Access 相当陌生 无法解决 我希望 一个简单的问题 我想我可能是通过 Excel 护目镜来查看它 我有一个名为importedData我每天 并不奇怪 导入一个日志文件 该日志文件来自某些采矿设备上的简单数据记录应用程序 本质上
  • MS Access VBA SQL 查询调试选择案例

    在 MS Access 2013 VBA 中 我在此 SQL 字符串中遇到语法错误 strSQL INSERT INTO man year man year val year int main research area organisat
  • 将 nHibernate 3.x 与 Jet 驱动程序结合使用 (Microsoft Access)

    我正在开发一个 nHibernate 项目 该项目使用 Access 数据库作为数据源 不幸的是 我在运行时遇到问题 因为我找不到支持 nHibernate 3 x 的 Jet 驱动程序 我已经从 trunk 下载了源代码并编译了它 但事实
  • 在 Microsoft Access 中编写查询,字段描述错误 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这个问题是由拼写错误或无法再重现的问题引起的 虽然类似的问题可能是on topic help on topic在这里 这个问题的解决方式不

随机推荐