多条件查询

chenlujing99 2012-02-22 01:47:36
vb中 怎么把下面的查询 变成一个查询 或者用for 语句 也行 只要并到一起就行


sql = "select * from A线表_temp where 姓名 like'" & List2.List(0) & "'"
sql = "select * from A线表_temp where 姓名 like'" & List2.List(1) & "'"
sql = "select * from A线表_temp where 姓名 like'%" & List2.List(2) & "%'"
sql = "select * from A线表_temp where 姓名 like'%" & List2.List(3) & "%'"
sql = "select * from A线表_temp where 姓名 like'%" & List2.List(4) & "%'"
sql = "select * from A线表_temp where 姓名 like'%" & List2.List(5) & "%'"
sql = "select * from A线表_temp where 姓名 like'%" & List2.List(6) & "%'"
sql = "select * from A线表_temp where 姓名 like'%" & List2.List(7) & "%'"
sql = "select * from A线表_temp where 姓名 like'%" & List2.List(8) & "%'"
...全文
112 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenlujing99 2012-02-24
  • 打赏
  • 举报
回复
还是不对啊 我换了种方法解决了 就是麻烦了点 谢谢大家
chenlujing99 2012-02-23
  • 打赏
  • 举报
回复
不行 还是红色的
dabuyingyeyaoda 2012-02-23
  • 打赏
  • 举报
回复
那个是vb.net的用法,你vb6分开吧

dim i as integer = 0

for i to 8
...
next
chenlujing99 2012-02-23
  • 打赏
  • 举报
回复
还是不行 FOR 这条语句是红色的
Dim i As Integer
Dim ltmX As ListItem
Dim rs As New ADODB.Recordset
Dim sql As String

for i as integer = 0 to 8
If i = 0 Then
sql = "select * from A线表_temp where 姓名 like'" & List2.List(i) & "'"
Else
sql = "select * from A线表_temp where or 姓名 like'" & List2.List(i) & "'"
End If
Next

rs.Open sql, cn, adOpenStatic, adLockOptimistic
huayy 2012-02-23
  • 打赏
  • 举报
回复
sql = "select * from A线表_temp where 姓名 like '" & List2.List(0) & "' or 姓名 like '" & List2.List(1) & "' or 姓名 like '" & List2.List(2) & "' or 姓名 like '" & List2.List(3) & "' "

不过你的like ,似乎应该要加百分号。不然就相当于=了.
dabuyingyeyaoda 2012-02-22
  • 打赏
  • 举报
回复
仅供参考


dim sql = "select * from A线表_temp where "

for i as integer = 0 to 8
if i = 0 then
sql = sql & "姓名 like'" & List2.List(i) & "'"
else
sql = sql & " or 姓名 like'" & List2.List(i) & "'"
end if
next

chenlujing99 2012-02-22
  • 打赏
  • 举报
回复
Private Sub Command8_Click()
Dim i As Integer
Dim ltmX As ListItem
Dim rs As New ADODB.Recordset
Dim sql As String

For i = 0 To List2.ListCount - 1
sql="select * from A线表_temp where 姓名 like '&{0}&' ",List2.List(i)
Next
rs.Open sql, cn, adOpenStatic, adLockOptimistic
End Sub


好像不对啊 在帮我看看吧
ruanwei1987 2012-02-22
  • 打赏
  • 举报
回复
。。。。。。。。。。。。LZ加油看好你,这个不难
stringBuilder sql = new stringBuilder ();
sql.Append(string.Format("select * from A线表_temp where 姓名 like '&{0}&' ",List2.List(i)));
sql.Append("\n")


放到你循环里面,最后执行 sql
chenlujing99 2012-02-22
  • 打赏
  • 举报
回复
比如 list(0)= 小明 list(1)=小红 list(2)=小黄
然后查询 人员表 里面 的小明 小红 小黄 然后查询显示出他们的数据
chenlujing99 2012-02-22
  • 打赏
  • 举报
回复
我不会写啊 谁能帮我写下吗
艾米01 2012-02-22
  • 打赏
  • 举报
回复
lz不是说用for的么,循环一下就好了的。
bdmh 2012-02-22
  • 打赏
  • 举报
回复
把List2.List(0)拿出来放到循环里,最后拼出来多个like,或者写个存储过程

16,721

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧