vb中我是用adodc控件连接sql数据库如何用sql语句实现查询功能?

在一个列中,我要查询带有字符串1的记录并将其添加到combo1控件中,还有在同一记录中要查询两个字符串字符串1和字符串2,并且他们们的距离为90为条件查询,代码怎么写?

adodc控件内含一个记录集对象,可以用来操作数据。
你可以直接用这个属性修改数据:
adodc1.recordsource=你的SQL查询语句
然后刷新数据:
adodc1.refresh
或者
adodc1.requery
并用adodc1.recordset来访问获取的数据追问

求代码

追答

你的描述不明确,只能写个大概(假设adodc和combo是非绑定的,数据库连接已经完成):

为了代码的简洁,定义一个记录集对象引用
dim rs as ADO.Recordset

adodc1.recordsource = “select F1,F2 from T1 where F1='” & Text1.Text & "'"

adodc1.requery

set rs = adodc1.recordset

combo1.clear
do while not rs.EOF
combo1.additem rs(0)
rs.movenext
loop

“在同一记录中要查询两个字符串字符串1和字符串2,并且他们们的距离为90为条件”描述模糊,咩看懂。

追问

比如“书山有路勤为径”这句话“书”与“径”的距离为5,我要同时查询“书”与“径”使它们的距离限制在90范围内

追答

假设:要查找的字段为F1,匹配的字符串为S1,S2,完整的条件是这样的:
查找F1包含S1和S2,并且S1,S2在F1里的位置差小于90的所有记录?
这个条件有点怪异,你是不是转换下思路,比如数据库的设计思路?

这种查找比较复杂,要用查询过程,不过你也可以先设置部分条件,然后用VB代码来过滤数据:
‘获取字段F1包含S1和S2的所有记录
adodc1.recordsource = “select F1,F2 from T1 where F1 Like '*” & S1 & "*' and F1 like '*” & S1 & "*'
adodc1.requery
set rs = adodc1.recordset

’查找位置差
do until rs.eof

if Instr(1,rs("F1"),S2)-Instr(1,rs("F1"),S1) < 90 then ...
rs.movenext
loop

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-04-21
1.使用 使用 instr([列名称],"字符串")>0 判断有‘字符串1’的行
2.使用 instr([列名称],"字符串")函数判断字符串起始位置
两个字符串的函数值差再减去len(字符串1)为90就是了
相似回答