0
我正在使用巨大的Access(.mdb)數據庫,因爲我的運氣不好,我無法更改任何表設計,只能創建查詢,以及...數據庫查詢,從可空字段獲取值時遇到一些問題
具有這種表(部分):
Table1
Id Autonumber
Name Text(50) Not Null
Prod Text(8) Null
其中PROD字段是格式爲 「DDMMYYYY」 的日期,而不是必需的。
有了這樣的價值觀:
PARAMETERS [@basedate] Date;
SELECT
Table1.Id,
Table1.Name
FROM
Table1
WHERE
((Table1.Prod) Is Not Null) AND
(GetDate(Table1.Prod) >= [@basedate])
ORDER BY
Table1.Id;
* GetDate()
是VBA模塊函數返回一個日期:
Id Name Prod
------------------------
1 KX_W 06061988
2 AXR (null)
3 ELR 03021957
然後我想這個查詢,以根據最新獲得的記錄值(日/月/年)來自字符串參數。
當執行查詢時,我得到這個消息: 「這種表達是輸入錯誤,或者是太複雜,無法評估......」
表約50K,記錄大小,但我很確定這不是原因,這個數據庫還有其他疑問,10倍更復雜,運行速度非常快!
我試過一塊這個表在Prod字段上沒有空值並且工作正常,但是當我嘗試使用整個表時,消息彈出;我錯過了什麼?
您是否使用此GetDate()函數運行其他查詢,如果是,它們是否正常工作? –
@OverMind確定有很多查詢使用它,但是這是**只有一個**向它發送空值,即使使用'((Table1.Prod)不是空)'條件。 – Shin
你試過我的解決方案嗎? –