通过文本框中的值作为条件查询表单

时间:2016-10-17 15:35:23

标签: sql ms-access

情况:关于生物标本的元数据收集在Access表中。
标本来自人类患者,患者数据收集在一个单独的表格中。
为了限制我们闲置的私人健康信息量,患者数据库必须仅在我们实际时更新新患者从他们那里收到样品。

为了让数据输入工作人员知道他们何时需要更新患者表,我希望样本数据输入表单中的一个按钮将输入的患者id值作为标准传递给查询。

查询现在看起来像这样:

SELECT Patients.[Patient id]
FROM Patients
WHERE (((Patients.[Patient id])=[Forms]![Specimen entry]![patient id]));

但它永远不会有结果,即使我从我知道的对应于患者表中患者的记录中运行它。
我该如何解决这个问题?

关于如何称呼这种情况以便我可以更好地搜索它的建议也将受到赞赏。我是Access新手。

1 个答案:

答案 0 :(得分:0)

查询看起来是正确的,但要确保WHERE子句将数字与数字或字符串与字符串(不是数字到字符串)进行比较。还要确认表单和文本框名称是否正确。使用您的查询的快速测试为我工作。

根据您计划提供信息的方式,您还可以在VBA中动态创建查询,然后将信息传递给表单。

对于搜索,我建议使用访问,动态,查询和vba的某种组合。

替代选项

如果您只想查看表中是否存在单个患者,使用dlookup功能可能更简单:

softwarename4, x, ac, gd, d

这将检查患者是否存在(返回一个数字)还是不存在(返回NULL)。

https://support.office.com/en-us/article/DLookup-Function-8896cb03-e31f-45d1-86db-bed10dca5937