按文本框中的Enter键并在VBA中执行按钮功能

Eri*_*cPb 5 ms-access vba ms-access-2010

我在Access 2010中使用VBA代码在我的数据库中有一个登录表单.我希望能够按EntertxtboxPassword,并自动执行btnLogin_Click事件.我试过这个:

Private Sub txtboxPassword_KeyDown(KeyCode As Integer, Shift As Integer)
 If KeyCode = 13 Then
    btnLogin_Click
 End If
End Sub
Run Code Online (Sandbox Code Playgroud)

我得到的是一个自制的错误,说密码不正确.如果我调试我看到实际上txtPasswordnull,但我只是在其中键入文本!

但是,如果我用鼠标单击"登录"按钮,它将完美无缺.为什么vba表现得那样?我该怎么做才能让它发挥作用?

注意我也试过:

  • KeyPress:在我按下Enter焦点后btnLogin(也许因为Tab键顺序就是这样),但btnLogin_Click事件没有被执行.
  • KeyUp:与KeyPress相同.

Oli*_*bes 10

Access中的按钮具有一个名为Default(在"其他"属性页面上)的属性.如果将其设置为"是",则表单会在您按下时自动调用它Enter.无需密钥事件处理.

还有一个Cancel属性.如果为按钮将其设置为"是",则表单会在用户键入Esc-key 时自动激活它."取消"按钮非常实用.