我有一个主窗体,其中包含几个带有子窗体的选项卡控件。在第一个选项卡或子窗体上,我有一个"复选框 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
谢谢大家的帮助! :)