【发布时间】:2015-08-11 13:08:27
【问题描述】:
这是对这篇文章的后续问题:Access VBA recordset string comparison not working with wildcard 但我没有代表回答/评论它以在内部询问它。我特别好奇的是这行代码:
If ![ACOD] = "*_X" Then '"$ICP_X" works
Debug.Print ![ACOD] 'For testing
'.Delete
End If
我想知道这是否可以修改,以便在单击按钮时,它会查看字段名称为 *_New 的表单中的所有字段(希望捕获名称以 @987654327 结尾的所有字段@),如果不是 Null,则确认用户想要进行字段中指示的更改。我在想类似这样的事情:
If Not isNull(*_New.value) Then
If Msgbox ("Do you want to make these changes?",vbOKCancel, "Confirm Changes") = 1 Then
'### Do something with the record ###
End If
End If
编辑
截至发布上述信息时,我没有安装 Microsoft VBScript 正则表达式参考,目前我有 5.5 版(它是最新版本)。安装(引用?)并查看来自该站点MS Access with VBA Regex 的信息后,我想知道这样做是否更好:
Dim re As RegExp
Set re = New RegExp
re.IgnoreCase = True
re.Global = True
re.Pattern = "*_New"
If ##Not sure on syntax to match all fields## Then
Msgbox(##Same stuff as above MsgBox##)
End If
编辑 2
这是我正在处理的表单的示例案例。右侧的每个字段的名称都以_New 结尾。我要做的是单击按钮,检查并查看右侧的哪些字段已填写,并询问用户是否要确认对记录的更改。
【问题讨论】:
-
您将这个问题作为一个新问题提出是正确的 - 在 StackOverflow 上,所有问题都可以单独进行搜索,而不是隐藏在另一个问题中。链接到该相关问题是开始它的好方法!
-
所有字段是什么意思?只是文本框或任何类型的控件?
-
顺便说一句:上一个问题与SQL有关,它与在表单/对象中搜索控件完全不同。
-
上一个问题在 SQL 中得到了回答和处理,是的,但最初是针对 VBA 提出的(据我所知)。
-
那看起来怎么样?我不想在他们自己的 if 语句中检查每个单独的字段。
标签: ms-access vba wildcard ms-access-2013