如何结合使用vbKeyShift和vbKeyTab

时间:2019-04-08 16:37:47

标签: vba access-vba

我在subForms上有两个mainFormsubForm1包含ComboBox1,并且我插入了以下代码,因此,如果我按Tab键,它将setFocussubForm2

Private Sub ComboBox1_KeyDown(KeyCode as Integer, Shift as Integer)
     Select Case KeyCode
             Case  = vbKeyTab
              KeyCode = 0
              Me.parent.subForm2.SetFocus
     End Select
End Sub

工作正常。但是,当我按Shift + Tab时,仍会得到与上述代码相同的行为。在没有上述代码的情况下,当我按Shift + Tab时,focus将自动设置为control中的上一个subForm1,并且不会移动到subForm2。有人可以帮我在上面的代码中如何使用Shift + Tab的组合,以便它不会将焦点移到subForm2上,而是保持默认行为?

1 个答案:

答案 0 :(得分:0)

最后,我解决了逻辑。我必须首先检查是否按下了Shift,所以在代码之前加入了NOT条件。现在,我的代码仅在未按下Shift时有效,否则将保留默认的Access行为。

Private Sub ComboBox1_KeyDown(KeyCode as Integer, Shift as Integer)
     If NOT (Shift AND acShiftMask)>0 then

        Select Case KeyCode
             Case  = vbKeyTab
              KeyCode = 0
              Me.parent.subForm2.SetFocus
        End Select

      End if
End Sub