我正在构建一个用户窗体,该窗体在“ 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
答案 0 :(得分:0)
显然,此复选框是未绑定的。在这种情况下,您描述的行为是UNBOUND控件的性质,因为只有一个控件-每个实例将显示相同的值,除非ControlSource是具有动态项的计算。
我认为您使用复选框是因为表格位于数据表视图中。不要使用UNBOUND复选框,而使用格式化为看起来像超链接的UNBOUND文本框。文本框属性:
ControlSource ="Print"
DisplayAsHyperlink Always
如果表单处于“单视图”或“连续视图”,请使用命令按钮。
然后,您不必担心选中/取消选中复选框。