我有一个包含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]
我在表单上放了一个文本框并将其引用到组合中,它似乎很好地获取了值。所以它似乎与我添加和减去两个引用的方式有关吗?
另一方面,我显然使用一种非常简单的方法来寻找附近的郊区。我知道虽然距离的纬度保持相当稳定,但长期变化 - 这只适用于维多利亚澳大利亚,所以这样做有什么不利之处吗?
答案 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;
感谢上帝 - 我开始了!希望解决方案可以帮助某人。
干杯
红色