【问题标题】:Checking and Unchecking Checkboxes in Access在 Access 中选中和取消选中复选框
【发布时间】:2019-07-27 15:39:13
【问题描述】:

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

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

卢兹

【问题讨论】:

  • 嗨辛迪。在工作中,我的一项任务是对一些员工在评估和处理申请时所犯的错误进行数据输入。例如,一个常见的错误是“文件验证”,它掩盖了一堆细节(不完整的申请、过期的文件、难以辨认的文件、申请和证据之间的差异等)。由于员工可能会涉及多个这些细节,我希望将所有细节都放在一个文本框中(无需输入所有这些细节)。另外,我希望细节是统一的。 =)

标签: vba ms-access checkbox


【解决方案1】:

您不需要为每个复选框设置事件。只需创建一个过程,该过程根据复选框状态创建全文并将此文本放入文本框。要在每次单击复选框后调用此函数,请将所有复选框的 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

【讨论】:

  • 嗨,谢尔盖,感谢您的帮助。我尝试使用您提供的代码,但是当我按 Enter 继续编写代码时,第一行“Private Function MyFunctionToUpdate Textbox()”变成了红色。我不确定我是否必须将该行中的任何内容替换为指向我希望显示信息的文本框的内容,或者在该行中添加一些内容。我真的迷失在这个编码部分,我的理由是我以前从未去过。再次感谢您的所有帮助。
  • 函数名不能包含空格。我看到你在文本框之前插入了一个空格。对于函数使用较短的名称,我将其命名为示例。并且这个功能应该添加到表单的模块中,而不是标准的。
  • 是的,更简单的名字:Private Function UpdateComment().
猜你喜欢
  • 1970-01-01
  • 2018-04-27
  • 2021-03-31
  • 2015-08-02
  • 2014-05-04
  • 2017-08-27
  • 2013-01-19
相关资源
最近更新 更多