在查询子窗体 Access VBA 中更新之前编辑记录
Posted
技术标签:
【中文标题】在查询子窗体 Access VBA 中更新之前编辑记录【英文标题】:Edit record before update in query subform Access VBA 【发布时间】:2015-07-14 02:01:00 【问题描述】:这是我所拥有的:
两张表:
tblA
:Index
,Date_Time
,User_Name
,Event
,Product_Serial_Number
tblB
:tblA_Index
,Date_Time
,User_Name
,Event_Tag
Event_Tag
字段用于对事件的不同特征进行分类,例如您在 YouTube 视频中看到的特征,因此是多对一关系。
我有一个显示tblA
信息的主窗体,例如User_Name
和index
。我有一个子表单,其数据表视图中仅显示 Event_Tag
字段,其控制源是仅通过从 tblA
获取的索引进行的查询过滤。
我知道在查询中您可以通过在底部输入空白记录来添加记录(如果已启用)。我希望能够为tblA
中的特定索引输入新的Event_Tag
记录。我想知道是否可以在更新之前以编程方式编辑插入到表中的记录?
例如,我在子表单底部输入空白记录 Defective Motor
,然后使用 vba 代码从计算机中获取 date_time
,从控件中的控件获取 index
/User_Name
mainform 并添加完成记录,然后插入到tblB
。
我希望这是一个足够好的例子来展示我正在尝试做的事情。 如果有人能指导我如何解决这个问题,或者有更好的方法,我很感激反馈。
谢谢
【问题讨论】:
为什么两个表中都有用户名? tableA 和 B 无论如何都链接了 好问题,我应该澄清更多。我通过 environ(username) 方法窃取了使用表单的人的姓名。在 tblA 中创建记录的人可能与在 tblB 中创建记录的人不同。为简单起见,我从最初的描述中删除了它,因为我对通过子表单插入之前完成记录的底层方法更感兴趣。 【参考方案1】:对子表单使用“onBeforeUpdate”事件。在那个事件中
txt_date.value = now()
txt_username.value = your string
等等
【讨论】:
以上是关于在查询子窗体 Access VBA 中更新之前编辑记录的主要内容,如果未能解决你的问题,请参考以下文章
Access VBA:在连续子窗体中编辑 RecordSet
SetParent 装载的窗体 会保留在进程中 如果程序运行中出错,包括更新,查询.... 出错, 该如何卸载窗体