如何使用 DAO.Recordset 通过不可更新查询来更新表

2023-12-12

我有一张相当小的桌子tblFunding有20条记录。我想更新它的字段Payment使用不可更新查询的结果,即:

"SELECT UserName, Sum([Payment]) As Payment FROM tblFundingMain WHERE (((DateDiff('m',[PaymentDate],DateSerial(Year(Date()),1,1))) Between -7 And 4)) GROUP BY UserName")我知道存储此类数据是不好的做法,但用户希望时不时地看一下数据,因为为了方便起见,该表已绑定到表单。 我们想出了一个方法,使用DAO它有效,但它为不存在的记录留下空值UserName更新表中的字段,即tblFunding。我们希望该值是0如果字段不匹配。该代码在表单打开之前运行,这意味着表在表单启动之前更新。有没有办法礼貌地完成这项任务?请参阅下面的代码并尽可能提供建议。谢谢你!

Private Sub btnGlance_Click()

Dim rs1 As DAO.Recordset
Dim rs 2 As DAO.Recordset

Set rs1 = CurrentDb.OpenRecordset("SELECT UserName, Sum([Payment]) As Payment FROM tblFundingMain WHERE (((DateDiff('m',[PaymentDate],DateSerial(Year(Date()),1,1))) Between -7 And 4)) GROUP BY UserName")
Set rs2 = CurrentDb.OpenRecordset("SELECT * FROM tblFunding")

rs1.MoveFirst
  Do Until rs1.EOF
  rs2.MoveFirst
  Do Until rs2.EOF
  If rs1.Fields("UserName") = rs2.Fields("UserName") Then
  rs2.Edit
  rs2.Fields("Payment").Value = rs1.Fields("Payment").Value
  rs2.Update
  End If      
  rs2.MoveNext
  Loop
rs1.MoveNext
Loop

rs1.Close
rs2.Close
Set rs1 = Nothing
Set rs2 = Nothing

Docmd.OpenForm "frmUserGlance"

End Sub

可以运行 UPDATE 操作将所有 Null 更改为 0。

CurrentDb.Execute "UPDATE tblFunding SET Payment = 0 WHERE Payment Is Null"

或者考虑替代代码:

rs2.MoveFirst
Do Until rs2.EOF
  rs1.MoveFirst
  rs1.FindFirst "UserName = '" & rs2!UserName & "'"
  rs2.Edit
  If Not rs1.NoMatch Then
     rs2!Payment =  rs1!Payment
  Else
     rs2!Payment = 0
  End If
  rs2.Update
  rs2.MoveNext
Loop

在表单上显示此摘要数据的替代方法可以使用域聚合函数。构建一个进行求和的查询对象,然后使用 DLookup 提取特定值。或者直接在源表上使用 DSum()。

如果只是执行一个将过滤求和查询连接到所有用户名数据集的查询,则可以避免所有这些代码。

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

如何使用 DAO.Recordset 通过不可更新查询来更新表 的相关文章

  • 将文件创建日期添加到列表中

    我一直在尝试编辑一些代码 该代码提供所有子文件夹中所有文件的列表 同时还为我提供在下一列中创建的日期 但我不确定如何进行 这是我正在使用的代码 它可以很好地获取文件路径 但不能获取文件 DateCreateds Sub startIt Di
  • 对象“_Worksheet”的方法“复制”失败

    我第一次遇到这个错误 对象 Worksheet 的方法 复制 失败 我听说这是一个很常见的错误 但我无法找到解决方案 当我搜索时 我发现了很多关于 对象的 范围 失败 错误 此错误是由工作站的内存限制引起的还是与软件相关的错误 有人有办法解
  • 当 COUNT(*) 为 NULL 时,GROUP BY 返回 0

    这是我原来的查询 SELECT CAST IndexedDate as varchar COUNT AS Logins FROM Table WHERE EventType Login AND IndexedDate gt DATEADD
  • EXCEL 索引通过多个条件和多个匹配类型进行匹配?

    所以我确信我只是语法错误 但情况是这样的 我的 Sheet2 有 3 列 point name x y 我有 Sheet3 其中包含 5 列的区域列表 area name x start x end y start y end 我试图将每个
  • 如何在Oracle中获取每周数据

    我制作了一个矩阵报告 其中需要根据选择参数动态显示列 我有一个日期选择参数 如果我在选择参数上选择日期为 03 01 2010 2010 年 3 月 1 日 那么它应该显示为 3 月 1 日 3 月 7 日 这取决于你追求什么 如果您在接下
  • SQL LIKE 实际上是如何工作的

    例如 当我有这样的字符串时 ABBBCSLAK JDK ASAAAAFJKDSKJFSDF 当我像这样使用 SQL 时 SELECT FROM table WHERE column LIKE JDK 当服务器访问 JDK 时到底会发生什么
  • 根据多列删除重复记录

    在我们的系统中 我们每小时从外部数据库进行导入 由于导入脚本中存在错误 现在存在一些重复记录 如果任何记录具有相同的内容 则视为重复 legacy id and company 我可以运行什么代码来查找并删除这些重复项 我正在玩这个 Pro
  • 选择或复制三个不相邻的单元格 3

    如何使用复制 3 个不相邻的单元格ActiveCell Row Range A ActiveCell Row C ActiveCell Row E ActiveCell Row Copy Update 欲了解更多信息 请遵循 https y
  • VBA:或操作员不执行[重复]

    这个问题在这里已经有答案了 我试图在 VBA 中使用 OR 运算符 但编译时出现错误 我已经在线检查了语法 并且我确信我使用正确 例如 如果我做这样的事情 If CStr Worksheets MINUTES Cells x 2 A1 2
  • 剥离 OLE 标头信息 (MS Access / SQL Server)

    我有一个 C 应用程序需要支持二进制数据库内容 图像等 当使用 MS Access 或 MS SQL Server 时 此数据被包装在 OLE 对象内 如何去除此 OLE 标头信息 请注意 我不能只查找特定标签的开头 因为内容可以是 png
  • 在不打开文件的情况下操作/复制 .CSV 数据?

    我正在尝试优化一些代码 这些代码使用存储在 CSV 文件中的一些测试数据进行一些分析并将其数据复制到 Excel 工作表中 此代码通常一次运行数百个测试 每个测试大约需要 4 5 秒 因此有时可能需要几个小时才能完成 我查阅了一些优化技术
  • Python - 将列表作为参数传递给 SQL,以及更多变量

    我试图在 python 3 6 中将未知数量的参数传递给 SQL Server 这是我使用 pypyodbc 的代码 cursor cnxn cursor theargs 1033286869 1053474957 1063654630 1
  • MySQL 选择 table01 中不存在于 table02 的行[重复]

    这个问题在这里已经有答案了 我有两个表 table03 有 10 行 table01 有 21 行 现在我想从 table03 中获取 table01 中不存在的行 到目前为止我编写了这个查询 但它显示了 table03 的所有行 即使有些
  • LINQ 中的日期差异逻辑

    我尝试从两个不同的数据库表访问数据 然后使用 C 中的 LINQ 将它们连接到两个字段上 我相信我有一个逻辑合理的整体工作方法 我遇到的部分问题是 我在连接两个表之前过滤了它们的数据 因为这些表的数据太多 会导致崩溃 主要问题是 对于其中一
  • SQL仅选择列上具有最大值的行[重复]

    想要改进这篇文章吗 提供此问题的详细答案 包括引用和解释为什么你的答案是正确的 不够详细的答案可能会被编辑或删除 这个问题在这里已经有答案了 我有这个文件表 这里是简化版本 id rev content 1 1 2 1 1 2 1 3 如何
  • 在 Excel VBA 中选择工作表范围

    我正在尝试在 Excel 宏中选择一系列工作表 以便可以打印它们 我想打印一个范围 即 Sheet2 Sheetx 其中 x 是一个变量 我尝试记录一个宏来执行我想要的操作 但它使用工作表名称而不是工作表引用 当然也不支持变量 在此示例中
  • 导出数据库的 CREATE 脚本

    假设我已经在 pgAdmin 中创建了一个数据库 但我想导出一个 CREATE sql 文件 我将如何生成转储 以下是如何使用 pgAdmin 创建一个架构脚本 该脚本可以与 PostgreSql 数据库架构比较工具 例如apgdiff h
  • UNION SELECT - 循环?还是单个查询?

    如果我使用 UNION 从数据库中进行多个 SELECT 是否被视为一个查询 或多个查询 SELECT column name s FROM table1 UNION SELECT column name s FROM table2 这是否
  • 依靠条件连接大表的速度很慢

    当表很小时 这个查询有合理的时间 我试图找出瓶颈是什么 但我不知道如何分析EXPLAIN结果 SELECT COUNT FROM performance analyses INNER JOIN total sales ON total sa
  • NHibernate 排序(SQL 作为第二个选项)

    我正在使用 NHibernate 作为我的 ORM 并且正在尝试对一些数据进行排序 数据需要分页检索 我的请求表中的两列是 UrgencyID 和 CreateDate UrgencyID 是包含静态数据的 Urgency 表的 FK 1

随机推荐

  • 使用 Graph API 获取所有 Facebook 好友

    我尝试获取 me friends 返回的 JSON 包含的朋友比我的 Facebook 页面显示的少 3 个 事实证明 对于这 3 个 GET id 返回 false 而不是有效的 JSON 对象 尽管我没有看到它们有什么特别之处 只是它们
  • Mongodb find查询返回空数组

    我试图通过代码 id 获取产品 但结果是空数组 我的控制器 export const getProductByPLU async req res gt const searchPLU req query try const product
  • 自动滚动jetpack compose中后面的项目

    我有一个3 Column In 1st Column的组件是2nd and 3rd Column In 2nd Column里面有很多组件 最后3rd Column我有一些项目 但我停留在屏幕底部 我已经在这个的帮助下完成了answer 在
  • 与 PhP 一起使用的 AMP 表单

    我正在尝试使用 AMP 设置带有联系表单的页面 该表单只有 4 个字段 Name Email 我们能帮你什么吗 电话号码 然后我希望将该信息发送到我的电子邮件地址 这是我在 HTML 中的信息 h4 How can we help h4
  • scala - 泛型中的任何与下划线

    Scala 中以下泛型定义有何不同 class Foo T lt List and class Bar T lt List Any 我的直觉告诉我它们大致相同 但后者更明确 我发现前者可以编译但后者不能编译的情况 但无法指出确切的差异 Th
  • Ruby 中日期时间和时间的区别

    有什么区别DateTime and TimeRuby 中的类以及哪些因素会导致我选择其中之一 较新版本的 Ruby 2 0 在这两个类之间并没有真正的显着差异 由于历史原因 某些库会使用其中之一 但不一定需要关注新代码 选择一个以保持一致性
  • as3函数指针

    private function myFunction numIn Number trace numIn numIn var plan Object theFunctionName myFunction now use the functi
  • 如何更改小程序的权限和卡历史字节?

    我已经认为更改历史字节仅限于预个性化步 但是 我发现了一个名为设置ATRHistBytes今天在 GlobalPlatform API 中 这是它的描述 GlobalPlatform 2 2 第 172 页 设置ATRHistBytes p
  • 更改游戏对象枢轴点

    Unity 对象未在中心旋转 直到一个小时才好 我不相信我改变了代码或任何东西 我也尝试过弄乱左上角的枢轴 中心按钮 但没有任何帮助 游戏对象没有在中间旋转 旋转器代码 using UnityEngine public class Rota
  • #ifndef 在 c 文件中?

    是否可以放 ifndef在c文件的顶部 基本上我需要检查运行程序时是否声明了某个预处理器常量 我的程序将相应地改变 我需要检查是否 D DESCENDING ORDER 1作为参数添加 无论给出什么值 我的主 c 文件顶部有以下代码 ifn
  • 无型号类别的改装 2

    我想问一下Retrofit 2 0 一直以来 我只知道使用 GSON Converter 进行 Retrofit 并获取对象 但我不知道如何使用这样的API获取数据https hacker news firebaseio com v0 to
  • 为什么 Ruby 仅有时释放内存?

    根据我生成字符串的方式 Ruby 是否会将内存释放给操作系统 第一个测试代码将占用约235MB size 2 22 string a1234567890abcdefghijklmnopqrstuvwxyz size puts Sleepin
  • 错误:已经有一个与此命令关联的打开的 DataReader,必须先将其关闭

    我正在使用 sql 连接来访问数据库中的不同表 但是 代码返回以下错误 Error 已经有一个与此命令关联的打开的 DataReader 必须先将其关闭 MyContext conn new MyContext protected void
  • 如何列出J中动词的代码

    在控制台中 输入不带参数的单个动词将打印其内容 tolower 3 0 x I 26 gt n 65 i 26 a i t y y x n 97 i 26 a x t 这对于开发来说很好 但在执行过程中无法利用 有没有办法动态地做到这一点
  • 为什么 Haskell 没有比 Eq 更强大的替代方案?

    之所以Set不是给定函子here 似乎可以归结为这样一个事实 a b f a f b是可能的 那么 为什么 Haskell 没有 Eq 的标准替代品 比如 class Eq a gt StrongEq a where a gt a gt B
  • 我可以使用数组或其他可变数量的参数来初始化 C# 属性吗?

    是否可以创建一个可以使用可变数量的参数进行初始化的属性 例如 MyCustomAttribute new int 3 4 5 this doesn t work public MyClass 属性将采用一个数组 不过 如果您控制该属性 您也
  • 启动应用程序并将其发送到第二个显示器

    在 VB 2008 中 我使用类 process 来启动带有一些参数的外部应用程序 有谁知道如何以编程方式将其发送到第二台显示器 另外 有什么方法可以知道有多少显示器被激活 Thanks 您可以在不同的屏幕上找到您的表单 form Loca
  • 尝试从 Android 应用程序将文件上传到 xampp 服务器时出现文件未找到异常

    在我的 Android 应用程序中 我尝试通过搜索手机存储来附加文件 然后尝试将其上传到服务器 我能够搜索文件并附加它们 在将其上传到服务器时我收到文件未找到异常 请帮助我解决这个问题 请让我知道我错过了什么 如果有更好的方法请告诉我 Fi
  • 如何在列顶部显示值 Google Chart API

    我想在柱形图的顶部显示值 就像这张图片中一样 但我想向他们展示如何使用新的 Google Chart API 这是网站和它的源代码
  • 如何使用 DAO.Recordset 通过不可更新查询来更新表

    我有一张相当小的桌子tblFunding有20条记录 我想更新它的字段Payment使用不可更新查询的结果 即 SELECT UserName Sum Payment As Payment FROM tblFundingMain WHERE