我在MS Access中有一个带有多个复选框的表单,我想用它来填写一个文本框。如果未选中其中一个复选框,则我希望从文本框中删除其值而不删除其他值。我是在VBA中使用Access和编码的新手(过去3周一直在阅读电子书),尽管我尝试在线进行研究,但我很难找到正确的代码。
这是我到目前为止所拥有的:
Private Sub cb_click()
If Me.cb1 = True Then
Me.txtComentarios.Value = "INACTIVO;"
Else
Me.txtComentarios.Value = Null
End If
End Sub
Private Sub cb2_Click()
If Me.cb2 = -1 Then
Me.[txtComentarios] = [txtComentarios] & "DISCREPANCIA"
Else
Me.[txtComentarios] = ""
End If
Exit Sub
End Sub
我也希望复选框以显示复选框的顺序填充文本框。
例如。
cb1; cb2; cb3
如果cb2未被选中并且其值被删除,我应该有“ cb1; cb3”,但是如果我重新检查cb2,我应该又得到“ cb1; cb2; cb3”。
我只是希望有人可以帮助我。在此先谢谢您。
Luz
答案 0 :(得分:2)
您不需要每个复选框都具有事件。只需创建一个过程,该过程将根据复选框状态创建全文,并将此文本放入文本框。要在每次单击复选框后调用此函数,请将所有复选框的After Update
属性设置为=MyFunctionToUpdateTextbox
而不是[Event Procedure]
Private Function MyFunctionToUpdateTextbox()
Dim strText As String
If Me.cb1 = True Then
strText = strText & "INACTIVO;"
End If
If Me.cb2 = True Then
strText = strText & "DISCREPANCIA;"
End If
If Me.cb3 = True Then
strText = strText & "Text for cb3"
End If
Me.txtComentarios = strText
End Function