vba 复选框,如果子窗体中的其他条件,则访问



我有一个主窗体,其中包含几个带有子窗体的选项卡控件。在第一个选项卡或子窗体上,我有一个"复选框 1",它应该是:

  • 选中"文本框 1"是否不为空
  • 如果"文本框 1"为空,则取消选中

代码直接放入"子表单 1"的类对象中,这就是为什么我认为我可以使用 Me .

这是我的代码,但我总是收到错误消息:(

Private Sub Ctltextbox_1_AfterUpdate()
    If Len(Ctltextbox_1.Value) = 0 Then
        Me.checkbox_1.Value = 0
    Else
        Me.checkbox_1.Value = -1
    End If
End Sub

这样我就得到了

运行时错误"2448":无法为此对象赋值。

在尝试将-1分配给Me.checkbox_1.Value的行上。

试试这个。它正在为我工作。我把它移到了Ctltextbox_1_Change动作。这将在函数更改时调用该函数,并在框中没有任何内容时捕获。我还将您的值更改为 True 和 False。

请尝试这个并让我知道。

Private Sub Ctltextbox_1_Change()
    If Len(frmSub.Ctltextbox_1.Value) = 0 Then
        frmSub.CheckBox_1.Value = False
    Else
        frmSub.CheckBox_1.Value = True
    End If
End Sub

您也可以在一行中解决此问题,如下所述。

Private Sub Ctltextbox_1_Change()
    frmSub.CheckBox_1.Value = IIf((Len(frmSub.Ctltextbox_1.Value) = 0), False, True)
End Sub

好的,简单的答案是:您不能将表达式 Len((= 0 用于非数值字段!所以我的子窗体工作代码现在是:

Private Sub Textbox1_AfterUpdate()
If IsNull(Textbox1.Value) = False Then
    Me.checkbox1.Value = True
Else
    Me.checkbox1.Value = False
End If

End Sub

谢谢大家的帮助! :)

最新更新