SQL语句中如何包含全部
在一个查询窗体中包含3个COMBOBOX控件,分别是小区(COMBOBOX1)、楼号(COMBOBOX2)、单元(COMBOBOX3),sql=" select * from 用户信息表 where 小区=' " & COMBOBOX1.text & "',楼号='" & COMBOBOX2.text & "',单元='" & COMBOBOX3.text & "'"
如何查询
(1) 1号小区中 2单元的用户
(2) 1号小区中 所有单元的用户
分别对应以下2语SQL语句
(1)sql=" select * from 用户信息表 where 小区=' " & COMBOBOX1.text & "',楼号='" & COMBOBOX2.text & "',单元='" & COMBOBOX3.text & "'"
注:此时COMBOBOX1 选择的是1号小区 COMBOBOX3 选择的是2号单元
(2) (1)sql=" select * from 用户信息表 where 小区=' " & COMBOBOX1.text & "',楼号='" & COMBOBOX2.text & "' "
注:此时COMBOBOX1 选择的是1号小区 COMBOBOX3 选择的是 "全部"
(2)中只能将SQL语句中的 ,单元='" & COMBOBOX3.text & "'" 部分去掉。
如果 小区 、楼号 、单元 均分(1)具体内容 (2)全部 这两项的话,那要包含所有情况,那要写8条SQL语句,有什么办法能解决这个问题。
谢谢大家。
[解决办法]
(1)sql=" select * from 用户信息表 where 小区='" & COMBOBOX1.text & "' and 楼号='" & COMBOBOX2.text & "' and 单元='" & COMBOBOX3.text & "'"
[解决办法]
dim str小区 as string
dim str楼号 as string
dim str单元 as string
if trim(combobox1.text)="全部" then
str小区=""
else
str小区=" and 小区='"& trim(combobox1.text) &"'"
end if
if trim(combobox2.text)="全部" then
str楼号=""
else
str楼号=" and 楼号='"& trim(combobox2.text) &"'"
end if
if trim(combobox3.text)="全部" then
str单元=""
else
str单元=" and 单元='"& trim(combobox3.text) &"'"
end if
sql=" select * from 用户信息表 where 1=1 " & str小区 & str楼号 & str单元
[解决办法]
SQL是可以多次拼装的
Dim sql As String
Dim bHaveCondition As Boolean
sql = " select * from 用户信息表 "
If LenB(COMBOBOX1.Text) Then
sql = sql & "where 小区='" & COMBOBOX1.Text & "'"
bHaveCondition = True
End If
If LenB(COMBOBOX2.Text) Then
sql = sql & IIf(bHaveCondition, ",", "where ") & "楼号='" & COMBOBOX2.Text & "'"
bHaveCondition = True
End If
If LenB(COMBOBOX3.Text) Then
sql = sql & IIf(bHaveCondition, ",", "where ") & "单元='" & COMBOBOX3.Text & "'"
bHaveCondition = True
End If
Dim sql As String
sql = "SELECT * FROM 用户信息表"
If COMBOBOX1.Text > "" And COMBOBOX1.Text <> "全部" Then
sql = sql & " WHERE 小区='" & COMBOBOX1.Text & "'"
If COMBOBOX2.Text > "" And COMBOBOX2.Text <> "全部" Then
sql = sql & " AND 楼号='" & COMBOBOX2.Text & "'"
If COMBOBOX3.Text > "" And COMBOBOX3.Text <> "全部" Then
sql = sql & " AND 单元='" & COMBOBOX3.Text & "'"
End If
End If
End If