2014-10-18 62 views
0

我有一个包含Suburbs及其地理代码的表。在查询标准中添加/减去两个字段

我有一个查询,从+0.5到-0.5长和纬度范围内的所有其他郊区从一个窗体返回选定的郊区。

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

[窗体]![frmFindMeetingLocations]![龙] -0.5 [窗体]![frmFindMeetingLocations]![龙] +0.5

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

这很好用。我一直在试图做的是将'0.5'从静态值改为对窗体上组合框的引用(给出0.01,0.05,0.5等的选项)。我已经尝试了下面和各种其他组合的括号等,但它似乎并没有工作。 !

之间 [表格] [frmFindMeetingLocations] [纬度] - [表格] [frmFindMeetingLocations] [cmbSubDistance] 而 [表格] [frmFindMeetingLocations] [纬度] + [窗体]!!!!! [frmFindMeetingLocations]![cmbSubDistance]

我把一个文本框的形式和它引用到组合,似乎拿起价值的罚款。所以它似乎是我加入和减去两个引用的方式?

另一方面,我显然使用了一种非常简单的方法找到附近的郊区。我知道,虽然距离的纬度保持不变,但长时间变化 - 这只是维多利亚澳大利亚,所以这样做有什么缺点吗?

回答

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; 

感谢上帝,因为 - 我正在变得糟糕!希望解决方案能帮助某人。

干杯