我是 Access DB 初學者。我有一個帶有 SearchForm 的資料庫,用戶可以在其中輸入搜索條件,單擊“搜索”按鈕并使用過濾后的結果填充子表單。
該查詢具有基于用戶在搜索表單中的欄位中輸入的內容的簡單查詢
Like "*" & [Forms]![SampleSearchF]![txtMicrochip] & "*" 效果很好,但我的日期過濾器沒有產生任何結果:
Between [Forms]![SampleSearchF]![DateReceivFrom] And [Forms]![SampleSearchF]![DateReceivTo]
日期搜索所基于的表欄位是資料型別:日期/時間,格式:短日期搜索表單欄位是格式短日期子表單欄位也是短日期
SearchButton 是一個重新查詢宏
當我在查詢中有這個查詢條件時,所有搜索功能都不起作用。我可以尋求解決問題的任何建議?任何幫助表示贊賞。
這是我用于搜索查詢的 SQL 代碼,
FROM IndividualsT INNER JOIN SamplesT ON IndividualsT.AnimalID = SamplesT.AnimalID
WHERE (((IndividualsT.SpeciesName) Like "*" & [Forms]![SampleSearchF]![txtSpeciesName] & "*") AND
((IndividualsT.Microchip) Like "*" & [Forms]![SampleSearchF]![txtMicrochip] & "*") AND
((IndividualsT.Name) Like "*" & [Forms]![SampleSearchF]![txtName] & "*") AND
((SamplesT.Location) Like "*" & [Forms]![SampleSearchF]![txtLocation] & "*") AND
((SamplesT.SampleReceived) Between [Forms]![SampleSearchF]![DateReceivFrom] And [Forms]![SampleSearchF]![DateReceivTo]));
樣品T
| 樣品編號 | 動物ID | 收到樣品 | 地點 | 采集日期 |
|---|---|---|---|---|
| 1 | 1 | 18/08/2021 | 塔西 | 10/08/2021 |
| 7 | 1 | 15/09/2021 | 柏林 | 25/09/2021 |
| 13 | 12 | 25/09/2021 | 悉尼 | 4/09/2021 |
| 14 | 12 | 24/09/2021 | 紐約 | 1/09/2021 |
個人T
| 動物ID | 物種名稱 | 微芯片 | 姓名 |
|---|---|---|---|
| 1 | 鸚鵡 | 1234 | 雨果 |
| 12 | 考拉 | 853 | 夏洛克 |

uj5u.com熱心網友回復:
始終指定引數的資料型別:
Parameters
[Forms]![SampleSearchF]![txtSpeciesName] Text ( 255 ),
[Forms]![SampleSearchF]![txtMicrochip] Text ( 255 ),
[Forms]![SampleSearchF]![txtName] Text ( 255 ),
[Forms]![SampleSearchF]![txtLocation] Text ( 255 ),
[Forms]![SampleSearchF]![DateReceivFrom] DateTime,
[Forms]![SampleSearchF]![DateReceivTo] DateTime;
Select *
From YourTable
Where ...
uj5u.com熱心網友回復:
很可能,您的問題是WHERE表單欄位為空時的邏輯。當為空時,LIKE運算式回傳 as**表示任何內容,因此不會過濾掉任何行。但是,空日期與BETWEEN子句沖突。NZ如果表單欄位為空,請考慮使用回傳列本身:
(
SamplesT.SampleReceived
BETWEEN NZ([Forms]![SampleSearchF]![DateReceivFrom], SamplesT.SampleReceived)
AND NZ([Forms]![SampleSearchF]![DateReceivTo], SamplesT.SampleReceived)
);
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/316232.html
上一篇:安靜地壓縮Access檔案
