Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 基于报表中文本框的条件的OpenForm?_Ms Access_Vba - Fatal编程技术网

Ms access 基于报表中文本框的条件的OpenForm?

Ms access 基于报表中文本框的条件的OpenForm?,ms-access,vba,Ms Access,Vba,在我的报告中(在MS Access中),我试图打开一个表单,并在打开时转到特定的记录。我想创建一个记录,其中查询中的orthForm等于正在单击的orthForm文本框。我有: DoCmd.OpenForm "FwordFullQuery", , , "orthForm = " & (Me.orthForm) 但它只要求一个参数,它的值等于我想传递的参数值,这让人恼火!该参数的命名与“我的文本框”中的文本类似 我遗漏了什么?您需要包装传入的参数”: DoCmd.OpenForm "Fw

在我的报告中(在MS Access中),我试图打开一个表单,并在打开时转到特定的记录。我想创建一个记录,其中查询中的orthForm等于正在单击的orthForm文本框。我有:

DoCmd.OpenForm "FwordFullQuery", , , "orthForm = " & (Me.orthForm)
但它只要求一个参数,它的值等于我想传递的参数值,这让人恼火!该参数的命名与“我的文本框”中的文本类似


我遗漏了什么?

您需要包装传入的参数

DoCmd.OpenForm "FwordFullQuery", , , "orthForm = '" & (Me.orthForm) & "'"
否则你的最后陈述会像

SELECT bla FROM table WHERE orthForm = myText
逻辑上,access将尝试解析
myText
,因为它认为它是一个字段名、参数或其他东西,而事实并非如此。将其包装在
中将导致

SELECT bla FROM table WHERE orthForm = 'myText' 

哪个访问只能作为有效的SQL语句执行。

表中/a字段的确切名称是
ortform
?如果不是,access将要求您为其输入一个值,因为它无法将其作为SQL语句的一部分进行解析。访问究竟要求什么?对于
orthForm
Me.orthForm
?它是报告中平滑显示的文本框的名称(虽然现在重命名为orthFormBox),而orthForm是它显示的值(以及返回表单时的值),它应该读
DoCmd.OpenForm“FwordFullQuery”、“theFieldInYourTable=“&(Me.thetexfieldinyourform)
-你确定是这样吗?就是这样,是的。然后,当单击时,会弹出一个提示,询问参数,此框中的文本是我要传递的参数的值……但有一个限制条件,即orthForm不能包含任何单引号。顺便说一句,括号是完全没有必要的。