以下代码对我不起作用:
DoCmd.OpenForm "frm8SerialsByModel", acFormDS,,"[Serial Number] like '" & Me.txtserialap & "' or like '*" & Me.txtserialap & "' or like '" & Me.txtserialap & "*' or like '*" & Me.txtserialap & "*'"
无论以下哪种方法在查询条件中都完美无缺:
Like [Forms]![frm8Serials]![txtserialap] Or
Like "*" & [Forms]![frm8Serials]![txtserialap] Or
Like [Forms]![frm8Serials]![txtserialap] & "*" Or
Like "*" & [Forms]![frm8Serials]![txtserialap] & "*"
所以我知道之前很可能会问过这个问题,所以我想请你推荐一篇文章,在编写包含不同类型数据的字符串标准时正确解释标点符号?
提前谢谢。
答案 0 :(得分:1)
您需要将DoCmd.OpenForm中的 WhereCondition 参数视为SQL中的任何WHERE
子句。因此,需要为每个条件重复您的字段序列号。首先LIKE
是多余的,因为它不使用通配符,因此可以替换为等式=
:
strfilter = "[Serial Number] = '" Me.txtserialap & "'" & _
" OR [Serial Number] LIKE '*" & Me.txtserialap & "'" & _
" OR [Serial Number] LIKE '" & Me.txtserialap & "*'" & _
" OR [Serial Number] LIKE '*" & Me.txtserialap & "*'"
DoCmd.OpenForm "frm8SerialsByModel", acFormDS, ,strfilter
答案 1 :(得分:0)
谢谢你,Wayne G. Dunn。所以你建议我不需要比较它3次,以下就足够了我的目的并且它有效: DoCmd.OpenForm“frm8SerialsByModel”,acFormDS,“[序列号]如'”& Me.txtserialap& “'”
但是,如果您建议任何资源来阅读VBA中的复杂标准,我将非常感激。非常感谢。