更改记录时,Mouseup事件会触发两次

时间:2016-08-05 09:50:47

标签: vba ms-access access-vba

我的前端有一个主窗体frmHub,包含一个连续形式的子窗体frmData。用户可以通过按住Shift键单击控件,在frmData上的文本框控件(txtType)中的值之间进行循环。 (只有3个可能的值。)

这一切都运行正常,但有时候Mouseup事件运行两次,我无法弄清楚原因。我必须使用mouseup而不是点击,才能拿起shift键。

知道如何解决这个问题,或者建议采取后续步骤?谷歌搜索已经显示了很多针对jquery和c#的点击,但没有针对Access的点击,这让我觉得我刚刚做了些傻事,但我仍然坚持要去哪里。

好的,在输入这​​个时我看到了一个模式:如果我按住Shift键点击相同的记录,它只会触发一次。如果我用点击更改记录,则会触发两次。这里发生了什么,或者,我能做些什么呢?

这是我的鼠标代码。 (Debug_Step()函数只是将指定的文本和当前日期时间写入表中,我在开发时使用它来捕获瓶颈。)

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

编辑:我在Access 2010上; frmData使用链接的sql server表作为其记录源; frmHub使用passthrough查询。

0 个答案:

没有答案