如何在Access SQL中使用反余弦(ACOS)

如何在Access SQL中使用反余弦(ACOS),sql,ms-access,google-maps-api-3,asp-classic,Sql,Ms Access,Google Maps Api 3,Asp Classic,我有一个经典的ASP与Access数据库网站。我正在使用谷歌地图API。现在我想(从数据库中)找到距离给定位置20公里半径范围内的公司 我找到了一个公式(haversine),但似乎我不能使用ACOS()。我得到这个错误: Microsoft JET数据库引擎错误“80040e14” 表达式中未定义的函数“acos” 下面是我的sql: lat = 56.113517 lng = 10.145928 sql = "SELECT companyId, ( 3959 * acos( cos( rad

我有一个经典的ASP与Access数据库网站。我正在使用谷歌地图API。现在我想(从数据库中)找到距离给定位置20公里半径范围内的公司

我找到了一个公式(haversine),但似乎我不能使用
ACOS()
。我得到这个错误:

Microsoft JET数据库引擎错误“80040e14” 表达式中未定义的函数“acos”

下面是我的sql:

lat = 56.113517
lng = 10.145928
sql = "SELECT companyId, ( 3959 * acos( cos( radians(37) ) * cos( radians(  lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM company HAVING distance < 25 ORDER BY distance"
Set rs = Connect.Execute(sql)
lat=56.113517
液化天然气=10.145928
sql=“选择companyId,(3959*acos(cos(弧度(37))*cos(弧度(纬度))*cos(弧度(lng)-弧度(-122))+sin(弧度(37))*sin(弧度(纬度)))作为距离小于25个距离阶数的公司的距离”
设置rs=Connect.Execute(sql)
我搜索了又搜索,但我找不到解决办法。
有人能帮忙吗?

Access SQL确实没有内置的
ACOS()
函数。如果在Access本身中运行查询,则可以在VBA中创建自己的
ACOS()
函数以用于SQL查询,但该选项不适用于针对其他应用程序(如ASP应用程序)的Access数据库的SQL查询


因此,在检索可能符合条件的记录后,需要在ASP中进行精确的距离计算。也就是说,您可以计算以目标位置为中心的40km×40km“正方形”的纬度和经度边界(以排除保证距离过远的记录),然后使用ASP函数(示例代码)计算每个返回记录的实际距离。

见此是我看到的,但是我不知道必须在我的网站上实现它。你能给我一个怎样做的借口吗?