vba - 在文本框中按回车并在 VBA 中执行按钮功能

标签 vba ms-access ms-access-2010

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

Private Sub txtboxPassword_KeyDown(KeyCode As Integer, Shift As Integer)
 If KeyCode = 13 Then
    btnLogin_Click
 End If
End Sub

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

但是,如果我用鼠标单击“登录”按钮,它就完美无缺。为什么 vba 会这样?我该怎么做才能让它发挥作用?

注意 我也试过:
  • KeyPress:按 Enter 后,焦点转到 btnLogin (可能也是因为 Tab 键顺序是这样的),但是 btnLogin_Click事件未执行。
  • KeyUp:与 KeyPress 相同。
  • 最佳答案

    Access 中的按钮有一个名为 Default 的属性。 (在其他属性页面上)。如果您将其设置为 Yes当您按 Enter 时,表单会自动调用按钮单击事件处理程序。不需要额外的键事件处理。

    还有一个Cancel属性(property)。如果您将其设置为 Yes对于按钮,表单会在用户键入 Esc 键时自动激活它。对于取消按钮非常实用。

    关于vba - 在文本框中按回车并在 VBA 中执行按钮功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22792836/

    相关文章:

    ms-access - 导航到下一条记录时触发事件

    arrays - 在 MATLAB 中将 3D 数组写入 Excel

    vba - 使用 VBA 重新创建带有 VBA 事件的 ActiveX 控件

    security - 从 VBA (MS Access) 解密 PGP 加密文件的最简单方法

    sql - 在 SQL 语句中使用 VBA 数组

    c# - MS Access 数据库更新不更新使用 c#

    ms-access - Access VBA 能否区分在组合框中键入内容和从下拉列表中选择之间的区别?

    vba - Application.Worksheetfunction.Max 不返回数组中的最大数

    Excel VBA - 类模块逻辑

    ms-access - 如何获取组合框中未绑定(bind)列的值?