MS-Access 2007 查询 运行-时间错误
MS-Access 2007 query run-time error
我有一个 MS-Query 在 运行 时导致问题错误 # 3071
留言很长,这里开始:
The expression is typed incorrectly, or is too complex to be evaluated.
该查询有很多列和函数,经过反复试验,我将查询中有问题的部分隔离为:
...
And
[Component.Serial])>=Val(([Forms]![frm_RptFilter_Components].[fldAutoSeq]))
And
([Component.Serial])<=Val(([Forms]![frm_RptFilter_Components].[fldAutoSeq2])))
名称:frm_RptFilter_Components 是输入来源表单的正确名称,名称:fldAutoSeq、fldAutoSeq2 是该表单上字段的名称。
表达式 Forms... 正确并用于查询的其他部分。所以拼写不是问题。
数据库中的列是"Serial",它是一个整数。它与表单字段(文本字段)进行比较。
我可以自己执行有问题的部分,如:
SELECT * FROM Component
WHERE ((
[Component.Serial])>=Val(([Forms]![frm_RptFilter_Components].[fldAutoSeq]))
And
([Component.Serial])<=Val(([Forms]![frm_RptFilter_Components].[fldAutoSeq2])))
所以,我很困惑。如果有问题的部分包含语法错误,上面的 SELECT 应该不会起作用。但是,当删除该部分时,原始大查询会出错。
我的猜测是,当查询是来自子表单的 运行 时,字段没有正确传递给查询并且是数字字段,这导致了问题。
你明白我收到这条消息的原因了吗?
试试这个:
And
[Component.Serial]>=[Forms]![frm_RptFilter_Components].[fldAutoSeq]
And
[Component.Serial]<=[Forms]![frm_RptFilter_Components].[fldAutoSeq2]
和指定这两个参数为Long:
[Forms]![frm_RptFilter_Components].[fldAutoSeq]
[Forms]![frm_RptFilter_Components].[fldAutoSeq2]
我有一个 MS-Query 在 运行 时导致问题错误 # 3071 留言很长,这里开始:
The expression is typed incorrectly, or is too complex to be evaluated.
该查询有很多列和函数,经过反复试验,我将查询中有问题的部分隔离为:
...
And
[Component.Serial])>=Val(([Forms]![frm_RptFilter_Components].[fldAutoSeq]))
And
([Component.Serial])<=Val(([Forms]![frm_RptFilter_Components].[fldAutoSeq2])))
名称:frm_RptFilter_Components 是输入来源表单的正确名称,名称:fldAutoSeq、fldAutoSeq2 是该表单上字段的名称。
表达式 Forms... 正确并用于查询的其他部分。所以拼写不是问题。
数据库中的列是"Serial",它是一个整数。它与表单字段(文本字段)进行比较。
我可以自己执行有问题的部分,如:
SELECT * FROM Component
WHERE ((
[Component.Serial])>=Val(([Forms]![frm_RptFilter_Components].[fldAutoSeq]))
And
([Component.Serial])<=Val(([Forms]![frm_RptFilter_Components].[fldAutoSeq2])))
所以,我很困惑。如果有问题的部分包含语法错误,上面的 SELECT 应该不会起作用。但是,当删除该部分时,原始大查询会出错。
我的猜测是,当查询是来自子表单的 运行 时,字段没有正确传递给查询并且是数字字段,这导致了问题。
你明白我收到这条消息的原因了吗?
试试这个:
And
[Component.Serial]>=[Forms]![frm_RptFilter_Components].[fldAutoSeq]
And
[Component.Serial]<=[Forms]![frm_RptFilter_Components].[fldAutoSeq2]
和指定这两个参数为Long:
[Forms]![frm_RptFilter_Components].[fldAutoSeq]
[Forms]![frm_RptFilter_Components].[fldAutoSeq2]