根据以前的表单条件打开时对表单进行排序

时间:2019-02-27 21:39:15

标签: vba ms-access access-vba

我有一个搜索表单,该表单运行查询并在搜索表单中填充一个子表单。查询并填充子表单后,您可以单击特定的记录ID,以打开随后的特定表单,并过滤到先前在子表单中单击的记录KEY(“ ID”)。

当“ ID”键字段为数字类型格式时,此代码非常有用:

DoCmd.OpenForm "FormToOpen", , , "ID = " & Me.ID, acFormEdit, acWindowNormal

但是,在查询构建子表单时,它不会考虑前导零,即,如果记录ID为“ 0123456”,并且用户输入“ 0123456”,则查询不会返回任何结果。如果输入“ 123456”,它将返回记录。

所以我切换到ShortText数据类型,查询效果很好!您可以输入“ 0123456”或“ 123456”并返回记录...问题是打开的后续表单代码随后会以短文本类型中断。

这是我的查询条件:

Like "*" & [Forms]![FORMNAME]![txtID] & "*"

我相信我可以更改表单打开代码,以便它可以识别文本类型而不是数字类型,例如:

 ID = " & "Me.ID"

或者,更改查询条件会更好吗? TYIA!

更新 如果它是文本数据类型,则效果很好:DoCmd.OpenForm“ SecondFormName”,,,“ FieldName ='”&Me.ControlName&“'”'(注意,这是双引号,单引号和双引号结尾)我在这里找到了它:baldyweb.com/wherecondition.htm –

0 个答案:

没有答案