选中一个复选框时选中所有复选框的复选框

时间:2019-08-23 19:57:28

标签: vba ms-access controls userform

我正在构建一个用户窗体,该窗体在“ TOPrint”字段上具有一个复选框条目,当选中一个复选框时,它也会同时选中所有其他复选框。是否有防止这种情况发生的方法?我在“点击时”事件中有代码

尽管我不希望所有复选框仅在选中一个复选框时自动进行检查,但是代码也完全按照我的要求工作。有什么建议吗?

Private Sub ToPrint_Click()

        ' Selecting CheckBox on ToPrint
          If ToPrint = True Then
          User52 = fOSUserName()
          Requested_ON = Date
          End If

        'Unselecting CheckBox on ToPrint
         If ToPrint = False Then
         ToPrint = False
         User52 = Null
         Requested_ON = Null
         End If
End Sub

这段代码定义了我的函数fOSUserName()

  Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _
       "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

         Function fOSUserName() As String
       ' Returns the network login name
      Dim lngLen As Long, lngX As Long
      Dim strUserName As String
      strUserName = String$(254, 0)
      lngLen = 255
      lngX = apiGetUserName(strUserName, lngLen)
      If (lngX > 0) Then
      fOSUserName = Left$(strUserName, lngLen - 1)
    Else
      fOSUserName = vbNullString
    End If
 End Function

1 个答案:

答案 0 :(得分:0)

显然,此复选框是未绑定的。在这种情况下,您描述的行为是UNBOUND控件的性质,因为只有一个控件-每个实例将显示相同的值,除非ControlSource是具有动态项的计算。

我认为您使用复选框是因为表格位于数据表视图中。不要使用UNBOUND复选框,而使用格式化为看起来像超链接的UNBOUND文本框。文本框属性:
ControlSource ="Print"
DisplayAsHyperlink Always

如果表单处于“单视图”或“连续视图”,请使用命令按钮。

然后,您不必担心选中/取消选中复选框。