在Access中检查和取消选中复选框

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

我在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

此外,我希望复选框以相同的顺序填充文本框,显示chechboxes。

防爆。

CB1; CB2; CB3

如果,cb2取消选中并且其值被删除,我应该有“cb1; cb3”,但如果我重新检查cb2,我应该再次获得“cb1; cb2; cb3”。

我希望有人可以指导我。提前谢谢你。

vba ms-access checkbox
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.