【发布时间】:2021-11-27 04:25:48
【问题描述】:
我是 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
| SampleID | AnimalID | SampleReceived | Location | CollectionDate |
|---|---|---|---|---|
| 1 | 1 | 18/08/2021 | Tassie | 10/08/2021 |
| 7 | 1 | 15/09/2021 | Berlin | 25/09/2021 |
| 13 | 12 | 25/09/2021 | Sydney | 4/09/2021 |
| 14 | 12 | 24/09/2021 | New York | 1/09/2021 |
个人T
| AnimalID | SpeciesName | Microchip | Name |
|---|---|---|---|
| 1 | Parrot | 1234 | Hugo |
| 12 | Koala | 853 | Sherlock |
【问题讨论】:
-
我不使用动态参数化查询。我更喜欢 VBA 来构建过滤条件并应用于表单或报告。但是,我测试并无法复制动态查询的问题。编辑问题以将示例数据显示为文本表。
-
我输入了一些示例数据。数据来自两个表,表通过 AnimalID 字段连接
-
搜索功能都不起作用 ...这是什么意思?请具体说明实际发生的情况。按钮单击时出现零结果?通过取出每个
WHERE条件来尝试调试,看看哪个是有问题的。 -
您是否在表格中构建了查找字段?您将日期显示为国际结构。评论allenbrowne.com/ser-36.html
-
@KG12,如果所有搜索框都填写了值(即没有一个为空),查询是否有效。我有一个工作理论。使用足够宽的日期范围进行测试。我假设这些日期文本框被格式化为日期(不是文本)并与您的 dd/mm/yyyy 格式的 CPU 区域对齐。
标签: sql date ms-access between