vba - 如果“更新前/更新后”的 VBA 处于活动状态,则 Access 女士会在更新或插入数据输入开始后将我锁定在行上
问题描述
我在使用 MS Access 时遇到问题,如果我更改行中的任何值,它会将我锁定在行内。所以它只会让我在我击中逃跑时脱身,失去我所有的变化。奇怪的是,这种行为只有在该表单的 VBA 正文中有“更新后/插入后”触发器时才会发生。
下面是更新触发器之后/之前的 VBA 代码示例:
Option Compare Database
Option Explicit
Private Sub Form_AfterUpdate()
If Form_update2.ComboItemization.Value = "LENS" Then
Me.hpa_ccode_rule.Value = Me.hpa_inv_desc.Value
End If
End Sub
Private Sub Form_BeforeUpdate(Cancel As Integer)
Me.hpa_hcpc_desc.Value = Me.hpa_inv_desc.Value
Me.hpa_proc_code.Value = Me.hpa_plan.Value
Me.hpa_hcpc_code.Value = Me.hpa_itemize_cat.Value
Me.hpa_non_disc.Value = "D"
Me.hpa_inv_box.Value = "N"
If Left(Form_update2.Txt_Price_Type, 1) = "A" Then
Me.hpa_dtl_aod.Value = "A"
Me.hpa_rlp.Value = "P"
Me.hpa_itm_aod.Value = Null
ElseIf Left(Form_update2.Txt_Price_Type, 1) = "P" Then
Me.hpa_dtl_aod.Value = Null
Me.hpa_rlp.Value = "J"
Me.hpa_itm_aod.Value = "P"
ElseIf Left(Form_update2.Txt_Price_Type, 1) = "M" Then
Me.hpa_dtl_aod.Value = Null
Me.hpa_rlp.Value = "P"
Me.hpa_itm_aod.Value = "M"
End If
End Sub
真的谢谢
解决方案
幸运的是,在尝试了更多之后,我得到了导致错误的原因。但我不知道如何解释。
- ="Null" 语句需要转换为 =""
- “If Form_update2.ComboItemization.Value = LENS”需要替换为“If Trim(Me.hpa_itemize_cat) = LENS”。
- 最后,需要将“更新后”块移动到“更新前”。
下面是最终代码:
Private Sub Form_BeforeUpdate(Cancel As Integer)
Me.hpa_hcpc_desc.Value = Me.hpa_inv_desc.Value
Me.hpa_proc_code.Value = Me.hpa_plan.Value
Me.hpa_hcpc_code.Value = Me.hpa_itemize_cat.Value
Me.hpa_non_disc.Value = "D"
Me.hpa_inv_box.Value = "N"
If Left(Form_update2.Txt_Price_Type, 1) = "A" Then
Me.hpa_dtl_aod.Value = "A"
Me.hpa_rlp.Value = "P"
Me.hpa_itm_aod.Value = ""
ElseIf Left(Form_update2.Txt_Price_Type, 1) = "P" Then
Me.hpa_dtl_aod.Value = ""
Me.hpa_rlp.Value = "J"
Me.hpa_itm_aod.Value = "P"
ElseIf Left(Form_update2.Txt_Price_Type, 1) = "M" Then
Me.hpa_dtl_aod.Value = ""
Me.hpa_rlp.Value = "P"
Me.hpa_itm_aod.Value = "M"
End If
If Trim(Me.hpa_itemize_cat) = "LENS" Then
Me.hpa_ccode_rule.Value = Left(Me.hpa_inv_desc.Text, 15)
End If
End Sub
我希望有人能给出比我最好的答案,因为我认为我的答案并不完整。一旦它错过了对上述第 1 点和第 3 点的解释。
推荐阅读
- tensorflow - 如何在 Tensorflow 字符串张量上执行字符串查找和替换?
- python - 使用 format() 函数调用类中的变量
- r - 用于取消合并行条目的正则表达式
- react-virtualized - 反应虚拟化表更改选定的行颜色
- xml - XML 中的 if-else 语句
- php - 从外部文件调用刀片中的变量
- r - R使用分配函数时将函数输出保存到对象
- python - 在模型对象列表上使用替换方法
- python - 将字典中的键与字符串匹配
- asp.net-core-mvc - .net core ef保存相关数据报错SqlException: Cannot insert explicit value for identity column in table