如何借助VBA让文本框显示两张表的条目数量差值
实现方案
方案1:无需VBA,直接用文本框控件源公式(新手推荐)
打开你的窗体设计视图,选中要显示差值的文本框,在「属性表」的「数据」选项卡下,找到「控件来源」字段,直接输入以下公式:=DCount("*","A") - DCount("*","B")
保存窗体后即可直接显示差值,窗体加载、刷新时都会自动更新数值,不需要额外写脚本。
注:DCount是Access内置的聚合函数,第一个参数是要统计的字段(填*代表统计所有记录),第二个参数是表名,直接对应你的A、B表名即可。
方案2:VBA实现方案(适合需要自定义触发时机的场景)
你之前用「更新前」事件没生效是因为这个事件只有在文本框内容被修改前才会触发,不符合你的需求,应该用窗体的加载/刷新事件来赋值:
- 打开窗体设计视图,选中窗体空白处,在属性表的「事件」选项卡找到「加载」事件,点击后面的「...」选择「代码生成器」进入VBA编辑界面
- 在自动生成的Form_Load函数里输入以下代码:
Private Sub Form_Load() Dim countA As Long, countB As Long countA = DCount("*", "A") countB = DCount("*", "B") ' 这里的Text0替换成你实际的文本框控件名称 Me!Text0.Value = countA - countB End Sub
- 如果需要每次刷新窗体都更新数值,可以同样在「刷新」事件里添加同样的赋值代码。
- 保存窗体后重新打开即可生效。
内容的提问来源于stack exchange,提问作者WaterDrop
相关产品推荐
相关产品推荐

