在查询条件中添加/减去两个字段

时间:2014-10-18 01:48:52

标签: ms-access-2010

我有一个包含Suburbs及其地理编码的表。

我有一个查询从表单返回所选的郊区,以及+0.5和-0.5长和纬度内的所有其他郊区。

查询中的条件,分别为Long和Lat字段;

  

在[Forms]之间![frmFindMeetingLocations]![Long] -0.5和   [表格]![frmFindMeetingLocations]![龙] 0.5

     

在[Forms]之间![frmFindMeetingLocations]![Lat] -0.5和   [表格]![frmFindMeetingLocations]![纬度] 0.5

这完美无缺。我一直试图做的是改变' 0.5'从静态值到对表单上的组合框的引用(给出0.01,0.05,0.5等选项)。我已经尝试了以下和括号等各种其他组合,但它似乎没有用。

  

之间   [表格] [frmFindMeetingLocations] [纬度] - ![表格] [frmFindMeetingLocations] [cmbSubDistance]!   和   [表格]![frmFindMeetingLocations]![纬度] + [表格]![frmFindMeetingLocations]![cmbSubDistance]

我在表单上放了一个文本框并将其引用到组合中,它似乎很好地获取了值。所以它似乎与我添加和减去两个引用的方式有关吗?

另一方面,我显然使用一种非常简单的方法来寻找附近的郊区。我知道虽然距离的纬度保持相当稳定,但长期变化 - 这只适用于维多利亚澳大利亚,所以这样做有什么不利之处吗?

1 个答案:

答案 0 :(得分:0)

修正了它!这一切都归结为用Val函数包含第二个语句(指的是距离 - ' 0.5')。我不完全确定为什么会这样,但确实如此。

所以现在我的SQL看起来像;

SELECT tblStatePostCodeLongLat.Suburb, tblStatePostCodeLongLat.StateCode, tblStatePostCodeLongLat.Long, tblStatePostCodeLongLat.Lat, tblStatePostCodeLongLat.Accuracy
FROM tblStatePostCodeLongLat
WHERE (((tblStatePostCodeLongLat.StateCode)="VIC") AND ((tblStatePostCodeLongLat.Long) Between ([Forms]![frmFindMeetingLocations]![Long]-Val([Forms]![frmFindMeetingLocations]![txtNearSubDistance])) And ([Forms]![frmFindMeetingLocations]![Long]+Val([forms]![frmFindMeetingLocations]![txtNearSubDistance]))) AND ((tblStatePostCodeLongLat.Lat) Between ([Forms]![frmFindMeetingLocations]![Lat]-Val([forms]![frmFindMeetingLocations]![txtNearSubDistance])) And ([Forms]![frmFindMeetingLocations]![Lat]+Val([forms]![frmFindMeetingLocations]![txtNearSubDistance]))))
ORDER BY tblStatePostCodeLongLat.Suburb;

感谢上帝 - 我开始了!希望解决方案可以帮助某人。

干杯

红色