Ms access 更改记录时,Mouseup事件触发两次
我有一个前端和一个主窗体frmHub,其中包含一个子窗体,它是一个连续窗体frmData。通过按住shift键并单击控件,用户可以在frmData上的文本框控件(txtType)中的值之间循环。(只有3个可能的值。) 它运行正常,但有时Mouseup事件运行两次,我不知道为什么。我必须使用鼠标而不是单击来拾取shift键 你知道我如何解决这个问题,或者对下一步有什么建议吗?谷歌搜索显示jquery和c的点击率很高,但Access的点击率却很低,这让我觉得我只是做了一些愚蠢的事情,但我还是不知道该怎么做 好的,当我输入这个时,我看到了一个模式:如果我按住shift键并单击同一条记录,它只会触发一次。如果我通过单击更改记录,它将触发两次。这里发生了什么,或者,我能做些什么 这是我的鼠标密码。(Debug_Step()函数只是将指定的文本和当前日期时间写入一个表中,我使用它在开发过程中查找瓶颈。)Ms access 更改记录时,Mouseup事件触发两次,ms-access,vba,Ms Access,Vba,我有一个前端和一个主窗体frmHub,其中包含一个子窗体,它是一个连续窗体frmData。通过按住shift键并单击控件,用户可以在frmData上的文本框控件(txtType)中的值之间循环。(只有3个可能的值。) 它运行正常,但有时Mouseup事件运行两次,我不知道为什么。我必须使用鼠标而不是单击来拾取shift键 你知道我如何解决这个问题,或者对下一步有什么建议吗?谷歌搜索显示jquery和c的点击率很高,但Access的点击率却很低,这让我觉得我只是做了一些愚蠢的事情,但我还是不知道该
编辑:我在Access 2010上;frmData使用链接的sql server表作为其记录源;frmHub使用传递查询 这里没有主题,但我喜欢您的
调试步骤
系统。我无法在Access 2010中复制此步骤。您使用哪个版本?解决方法可能是:捕获MouseDown
事件中的Shift
信息,将其存储在模块变量中。然后使用存储的班次状态将代码移动到单击事件。我使用的是Access 2010。我会试试的,谢谢@andreThank,Gary:)如果有人觉得代码有用,我很乐意发布或发布代码。
Private Sub txtType_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim Marker As Long
Marker = Debug_Step("Start txtType_MouseUp")
Dim CurrentType As String
Dim NewType As String
If Shift = 1 Then
CurrentType = Nz(Me.sType, "OFF")
Select Case Button
Case 1 'Left click demotes
Select Case CurrentType
Case "PBS"
NewType = "PER"
Case "PER"
NewType = "OFF"
Case "OFF"
NewType = "PBS"
Case Else
Exit Sub
End Select
Case 2 'Right click promotes
Select Case CurrentType
Case "PBS"
NewType = "OFF"
Case "PER"
NewType = "PBS"
Case "OFF"
NewType = "PER"
Case Else
Exit Sub
End Select
End Select
Call Apply_sType(Me.ident, NewType)
End If
Call Debug_Step("End txtType_MouseUp", Marker)
End Sub