
请教一个access数据库纪录检索的sql语句
我有个村庄地名表,名为3Village,下面有village_code(主键)、village两个字段,分别存储地名编号和地名,另有些其他字段。village_code由...
我有个村庄地名表,名为3Village,下面有village_code(主键)、village两个字段,分别存储地名编号和地名,另有些其他字段。village_code由市县代码加村附加码组成,如北京市代码为100,则北京市内的地名纪录为10001,10002等等。我现在获得了市县的编码,通过对话框获得村庄名称,要从表里检索匹配的纪录,代码如下:
sql = "select * from 3Village where village_code like '" & cc & "*' and village = '" & Combo44.Value & "'"
Set db = CurrentDb
Set rs2 = db.OpenRecordset(sql, 2)
aa = rs2.RecordCount
问题是在一个运行状态中假设cc=100,Combo44.Value=李家村,检索结果乱得很,和3Village这个表的索引设置关系很大:
1、如果village_code设了索引,village没有索引,则不管sql语句中“and village = '" & Combo44.Value & "'”所做的限制,检索出全部的village_code以100开头的纪录;
2、如果两个都有索引,则不管“village_code like '" & cc & "*'”,级不管这个李家村是北京的还是山东的,把表中名字为“李家村”的全部检索出来。
3、如果两个都没有索引,则不管北京有多少个李家村,都只能检索出北京的第一个李家村。
我是初学者,看了两天不知道问题出在哪里,快要崩溃了。是sql语句的错误还是检索方式不对啊?高手快帮忙啊!
用的是access数据库,直接在access的窗体里操作的。
多谢vrhero的回答。似乎在access里表示任意字符的通配符是“*”,我用“%”试了一下,就检索不出任何结果了。
确实有关系的啊,我只改变数据表的索引设置而不改变代码,它的检索结果就是会变!!!
晕死了! 展开
sql = "select * from 3Village where village_code like '" & cc & "*' and village = '" & Combo44.Value & "'"
Set db = CurrentDb
Set rs2 = db.OpenRecordset(sql, 2)
aa = rs2.RecordCount
问题是在一个运行状态中假设cc=100,Combo44.Value=李家村,检索结果乱得很,和3Village这个表的索引设置关系很大:
1、如果village_code设了索引,village没有索引,则不管sql语句中“and village = '" & Combo44.Value & "'”所做的限制,检索出全部的village_code以100开头的纪录;
2、如果两个都有索引,则不管“village_code like '" & cc & "*'”,级不管这个李家村是北京的还是山东的,把表中名字为“李家村”的全部检索出来。
3、如果两个都没有索引,则不管北京有多少个李家村,都只能检索出北京的第一个李家村。
我是初学者,看了两天不知道问题出在哪里,快要崩溃了。是sql语句的错误还是检索方式不对啊?高手快帮忙啊!
用的是access数据库,直接在access的窗体里操作的。
多谢vrhero的回答。似乎在access里表示任意字符的通配符是“*”,我用“%”试了一下,就检索不出任何结果了。
确实有关系的啊,我只改变数据表的索引设置而不改变代码,它的检索结果就是会变!!!
晕死了! 展开
1个回答
展开全部
sql = "select * from 3Village where village_code like '" & cc & "%' and village = '" & Combo44.Value & "'"
补充:
是 *,我搞错了。但这个语句应该和索引没有关系才对,索引只是加快查询速度不会影响查询结果的
我刚才用Access 2003建了个样例测试了一下,不存在你说的问题啊,不管两列有没有索引结果都是正确的
补充:
是 *,我搞错了。但这个语句应该和索引没有关系才对,索引只是加快查询速度不会影响查询结果的
我刚才用Access 2003建了个样例测试了一下,不存在你说的问题啊,不管两列有没有索引结果都是正确的

2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询