0
我有一個MS-查詢,導致在運行時錯誤#問題3071 的消息很長,這裏是開始時:MS-Access 2007中查詢運行時錯誤
的表達式類型不正確或太複雜而無法評估。
查詢有許多欄目和功能,並與一些試驗和錯誤我已經分離查詢的問題的部分是:
...
And
[Component.Serial])>=Val(([Forms]![frm_RptFilter_Components].[fldAutoSeq]))
And
([Component.Serial])<=Val(([Forms]![frm_RptFilter_Components].[fldAutoSeq2])))
名稱:frm_RptFilter_Components是形式的正確名稱其中輸入來自名稱:fldAutoSeq,fldAutoSeq2是該窗體上的字段的名稱。
表達式...正確,並在查詢的其他部分使用。所以拼寫不是問題。
數據庫中的列是「Serial」,它是一個整數。它正在與一個表單域(文本域)進行比較。
我可以通過自己作爲執行問題的一部分:
SELECT * FROM Component
WHERE ((
[Component.Serial])>=Val(([Forms]![frm_RptFilter_Components].[fldAutoSeq]))
And
([Component.Serial])<=Val(([Forms]![frm_RptFilter_Components].[fldAutoSeq2])))
所以,我很困惑。如果有問題的部分包含語法錯誤,則上面的SELECT應該不起作用。但是,刪除該部分時,原來的大查詢會出錯。
我的猜測是,當從子窗體運行查詢時,這些字段沒有正確傳遞給查詢並且是數字字段,這會導致問題。
你看到我收到消息的原因嗎?
很聰明。有效!我對MS-Access沒有深入的瞭解,但對我來說並不明顯! – NoChance
這是一個古老的把戲。它的工作原理是縮小表單字段輸入的可能選項。 – Gustav