Office中国论坛/Access中国论坛

标题: 请教:如何用ACCESS计算出两个经纬度的距离 [打印本页]

作者: 替身    时间: 2018-12-17 18:07
标题: 请教:如何用ACCESS计算出两个经纬度的距离
例如在access查询表粒可以直接显示距离。
Excel 可以直接用公式,ACCESS 如何算出?
EXCEL函数和ACCESS函数也不一样,请教请教
[attach]63144[/attach]



作者: roych    时间: 2018-12-18 11:32
不就是欧氏距离么?sqrt((x1-x2)^2+(y1-y2)^2)。Access一样可以用类似的公式算
作者: cgsilicone    时间: 2018-12-18 16:05
Excel的东西Access可以变通使用的。
具体到使用Excel函数,函数名前加上“CreateObject("excel.Application").WorksheetFunction.”就OK。
要在SQL中使用,需要VBA中建函数,函数中再使用Excel函数。为了效率,请引用excel,然后new一个全局excel对象,就不需要每次CreateObject了。
作者: cgsilicone    时间: 2018-12-18 16:10
Excel中有直接两个经纬度算距离的函数吗?希望能分享。谢谢!
作者: 替身    时间: 2018-12-26 17:28
cgsilicone 发表于 2018-12-18 16:05
Excel的东西Access可以变通使用的。
具体到使用Excel函数,函数名前加上“CreateObject("excel.Applicatio ...

麻烦回复一个ACCESS文件,建立查询关系,谢谢!
作者: cgsilicone    时间: 2018-12-29 12:54
替身 发表于 2018-12-26 17:28
麻烦回复一个ACCESS文件,建立查询关系,谢谢!

请看附件!

作者: 替身    时间: 2018-12-29 22:57
本帖最后由 替身 于 2018-12-29 22:59 编辑
cgsilicone 发表于 2018-12-29 12:54
请看附件!

非常感谢你花时间回复,你发的查询清晰明了,就是感觉很卡,一打开程序就死了。
我做了一个公式,但是一旦输入条件,就提示“标准表达式中数据类型不匹配”
请问是怎么回事。
SQL语句如下:

SELECT 规划数据.标准小区名称, gongcan.标准小区名称, 规划数据.经度, 规划数据.纬度, gongcan.经度, gongcan.纬度, DistC([规划数据.经度],[规划数据.纬度],[gongcan.经度],[gongcan.纬度]) AS 距离
FROM gongcan, 规划数据
WHERE (((DistC([规划数据.经度],[规划数据.纬度],[gongcan.经度],[gongcan.纬度]))<1));


DistC是我自己编的经纬度函数,我想筛选小于1公里的条件,他就提示“标准表达式中数据类型不匹配”,我试了很久都不行





欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3