1

我有以下代码:

Dim IDfiltr As Long
IDfiltr = Forms!KONTROLA!ID_OS
DoCmd.OpenForm "OSOBA", acNormal, "", "", , acNormal
Forms!OSOBA.FilterOn = False
DoCmd.ApplyFilter "", "[Forms]![OSOBA]![ID_OS] Like " & IDfiltr

在最后一行,我试图将 VBA 变量 IDfiltr 替换为 的表达式DoCmd.ApplyFilter,但它不起作用。我也在尝试这个:

DoCmd.ApplyFilter "", "[Forms]![OSOBA]![ID_OS] Like IDfiltr"

但它也不起作用。如何将 VB 变量 IDfiltr 替换为表达式?

4

1 回答 1

1

LIKE 命令适用于字符串。您还需要对此进行编码,以便告诉 LIKE 命令您要匹配字符串的哪一部分。例如,假设您想将 Long 变量匹配到字符串的开头:

DoCmd.ApplyFilter "", "[Forms]![OSOBA]![ID_OS] Like '" & CStr(IDfiltr) & "*'"

因此,如果字段 [ID_OS] 是一个字符串,这将匹配 IDfiltr 是字段 [ID_OS] 开头的所有记录。

虽然我的回答在技术上是正确的,但我感觉你真的打算做其他事情。[ID_OS] 可能是 Integer 或 Long,你真的想要一些其他的结果。

于 2013-05-15T22:39:50.577 回答