在 MSAccess (2007) 表单上的简单查找操作对话框中,我希望在出现查找和替换框时将“字段的任何部分”设置为默认值。
实际默认值为“整个字段”。我想我可以用下面的行来改变它:
DoCmd.FindRecord " ", acAnywhere, , , , , False
但这没有任何区别。其余代码工作正常(与命令按钮相关)。但上面那行无论是否存在都没有任何作用。请帮忙。我有以下代码:
Private Sub AppNAppFind_Click()
On Error GoTo AppNAppFind_Click_Err
On Error Resume Next
Err.Clear
DoCmd.FindRecord " ", acAnywhere, , , , , False
DoCmd.RunCommand acCmdFind
If (MacroError <> 0) Then
Beep
MsgBox MacroError.Description, vbOKOnly, ""
End If
AppNAppFind_Click_Exit:
Exit Sub
AppNAppFind_Click_Err:
MsgBox Error$
Resume AppNAppFind_Click_Exit
我使用的是 Access 2007。
以下代码适用于 Access 2010。
Private Sub myFind_Click()
DoCmd.GoToControl "=[Screen].[PreviousControl].[Name]"
DoCmd.FindRecord " ", acAnywhere, False, acSearchAll, False, acCurrent, False
DoCmd.RunCommand acCmdFind
End Sub
我验证了本机上“查找”的 Access 默认值是“整个字段”,但是当我单击按钮时,“查找”对话框为“匹配”选择了“字段的任何部分”。
我不确定这是否是 Access 2007 中的选项,但在 Access 2016 中,您可以转到
File > Options > Client Settings
并查找 Default find/replace behaviour
并将其从 Fast search
更改为 General search
,它将设置默认值找到要查找的设置:Current document
并在 Any Part of Field
中匹配。
此设置适用于客户端,将在您打开的任何访问数据库中有效,并且是持久的。
下面的VBA代码很简单并且运行良好。创建一个按钮并向其添加代码,以便您可以转到该字段,打开“查找/替换”对话框并将其设置为搜索当前字段和字段的任何部分。
私有子MyButton_Click() '将此用于子表单: '表单!MainForm!SubformControl.SetFocus '表单!MainForm!SubformControl.Form!MyControl.SetFocus
'将此用于标准表格: Me.MyControl.SetFocus '将焦点移动到搜索控制
SendKeys "^f", False '打开查找/替换对话框 SendKeys "%l{UP}", False '搜索当前字段 SendKeys "%ha", False '字段的任何部分
结束子