MS Access 表格;仅当值为 0 时才锁定控件,而当值为空时则不锁定

问题描述 投票:0回答:1

当子窗体的总和为0时,我需要锁定主窗体和子窗体上的所有控件。主窗体上保存该值的未绑定控件被命名为

sumBalance
,控件源拾取子窗体的总和形式
=Nz([frm_0_accs_fin_trans_journ_subf]![JournalTotal],"")

我在主窗体上的当前事件中制作了两个替代VBA代码:

If IsNull(Me!sumBalance) Then
        Me!fin_trans_id.Locked = False
        Me!fin_trans_tstamp.Locked = False
        Me!fin_trans_description.Locked = False
        Me!frm_0_accs_fin_trans_journ_subf.Locked = False
    ElseIf Me!sumBalance < 0 Then
        Me!fin_trans_id.Locked = False
        Me!fin_trans_tstamp.Locked = False
        Me!fin_trans_description.Locked = False
        Me!frm_0_accs_fin_trans_journ_subf.Locked = False
    ElseIf Me!sumBalance > 0 Then
        Me!fin_trans_id.Locked = False
        Me!fin_trans_tstamp.Locked = False
        Me!fin_trans_description.Locked = False
        Me!frm_0_accs_fin_trans_journ_subf.Locked = False
    ElseIf Me!sumBalance = 0 Then
        Me!fin_trans_id.Locked = True
        Me!fin_trans_tstamp.Locked = True
        Me!fin_trans_description.Locked = True
        Me!frm_0_accs_fin_trans_journ_subf.Locked = True
End If
If Me!sumBalance = 0 Then
        Me!fin_trans_id.Locked = True
        Me!fin_trans_tstamp.Locked = True
        Me!fin_trans_description.Locked = True
        Me!frm_0_accs_fin_trans_journ_subf.Locked = True
    Else
        Me!fin_trans_id.Locked = False
        Me!fin_trans_tstamp.Locked = False
        Me!fin_trans_description.Locked = False
        Me!frm_0_accs_fin_trans_journ_subf.Locked = False
End If

我预计这两个 VBA 代码都会导致主窗体控件和子窗体在除控件

sumBalance
= 0 之外的所有其他条件下都会解锁。

但是当子表单中没有记录而导致

sumBalance
字段为空时,表单也会被锁定,无法创建新记录。

我错过了什么?

vba forms ms-access locked
1个回答
0
投票

无法检查不存在的记录,所以先统计一下记录:


Dim Locked As Boolean

If Me!NameOfYourSubformCONTROL.Form.RecordsetClone.RecordCount > 0 then
    Locked = (Nz(Me!sumBalance.Value, 0) = 0)
End If

Me!fin_trans_id.Locked = Locked
Me!fin_trans_tstamp.Locked = Locked
Me!fin_trans_description.Locked = Locked
Me!frm_0_accs_fin_trans_journ_subf.Locked = Locked
© www.soinside.com 2019 - 2024. All rights reserved.