我有一个 SQL 语法问题,我已经苦苦挣扎了好几天。
我创建了一个名为 MS Access 2010 的表单IP Country Form
,我希望将其插入到一个名为Country
Country 的 TextBox 中,该文本框是从以下查询获得的,该查询查询一个名为的表,该表IPLocation
包含根据 IP 编号的国家和字段:
IPNS IPNE CY2(2 letter Country Code) CY3(3 Letter country Code) Country (full Country Name)
表行如下所示:
IPNS | IPNE | CY2 | CY3 | COUNTRY
19791872 | 19922943 | TH | THA | THAILAND
该表单根据 IP 地址计算 IP 编号并将其放置在名为 的文本框中IPNumber
,然后我在 SQL 查询中使用该文本框来获取与其对应的国家/地区。
我目前的查询是:
SELECT IPLocation.IPNS, IPLocation.IPNE, IPLocation.CY2, IPLocationCY3, IP.Location.Country
FROM IPLocation
WHERE (((IPLocation.IPNS)<" & [Forms]![IP Country Form]![IPNumber])
And ((IPLocation.IPNE) > " & [Forms]![IP Country Form]![IPNumber]))
IPNS、IPNE 和 IPNumber 一样是数字
本质上,该查询旨在查找 IPNumber 位于 IPNS 和 IPNE 之间的国家。
任何帮助将非常感激。
我使用的测试查询:
Set rst = dbs.OpenRecordset("
SELECT IPLocation.IPNS, IPLocation.IPNE, IPLocation.CY2, IPLocation.CY3,
IPLocation.Country
FROM IPLocation
WHERE (((IPLocation.IPNS)>19791871)
AND ((IPLocation.IPNE)<19922944))
")
工作正常并返回正确的国家