【发布时间】:2018-05-23 22:15:34
【问题描述】:
我有一个带有 10 多个文本控件的 Access 数据库。我想要一些代码来处理 CTRL + A KeyPress 事件。通常,在 Access 中按 CTRL + A 时,会选择 所有 记录。我的最终目标是让 CTRL + A 只选择该控件的文本(就像在浏览器的 URL 栏中按 CTRL + A ,它只选择那个文本),这样我就可以只删除那个控件的文本。我检查了this article,因为我想要可以处理任何文本框的东西(处理每个文本框的 KeyPress = 60+ 行代码)。有什么方法可以让我拥有一个 for-next 循环?
Function HandleKeyPress(frm As Form, KeyAscii As Integer, ByVal e As KeyPressEventArgs) 'should it be a function or a sub?
For Each ctl In Me.Controls
If KeyAscii = 1 Then 'I think this is CTRL + A?
e.Handled = True 'Stop this keypress from doing anything in access
focused_text_box.SelStart = 0
focused_text_box.SelLength = Len(focused_text_box.Text)
End If
Next
End Function
除此之外,我怎样才能将文本框的名称传递给这个子/函数?
注意:如果您还没有注意到,我仍然是 VBA/Access 的菜鸟。
【问题讨论】:
-
您是否将此代码放入 VBA 模块中?您是否运行了调试>编译?它在 KeyPressEventArgs 上出错。这似乎是一个 VB.net 类,Access VBA 无法识别它,除非有我需要激活的参考库。
-
如果你想要的就是选择控件内容以便你可以删除它,然后直接删除而不选择
control.text = "" -
我知道这很可能会导致错误,我只是不确定 VBA 中的等价物是什么。回想起来,我应该只是查一下,我很抱歉。
标签: ms-access vba ms-access-2016