我编的一个程序中的组合查询: 你看看,可能对你有用。 Private Sub Command1_Click() Dim SQLstr As String, tempsqlstr As String, msgstring As String Dim i As Integer
For i = 0 To 2 Call Check1_Click(i) Next i SQLstr = ""
If (Check1(0).Value = vbChecked) And Combo1(0).List(Combo1(0).ListIndex) <> Trim("模糊等于") Then SQLstr = "xm" & Trim(Combo1(0).Text) & "'" & Trim(Text1(0).Text) & "'" Else If (Check1(0).Value = vbChecked) And Combo1(0).List(Combo1(0).ListIndex) = Trim("模糊等于") Then SQLstr = "xm like '%" & Trim(Text1(0).Text) & "%'" Else SQLstr = "" End If End If
tempsqlstr = "jszh" & Trim(Combo1(1).Text) & "'" & Trim(Text1(1).Text) & "'" If Check1(1).Value = vbChecked Then If Trim(SQLstr) = "" Then SQLstr = tempsqlstr Else SQLstr = SQLstr & " And " & tempsqlstr End If End If
If Check1(2).Value = vbChecked Then If Trim(SQLstr) = "" Then SQLstr = tempsqlstr Else SQLstr = SQLstr & " And " & tempsqlstr End If End If
tempsqlstr = "czy" & Trim(Combo2.Text) & "'" & Trim(Combo3.Text) & "'" If Check2.Value = vbChecked Then If Trim(SQLstr) = "" Then SQLstr = tempsqlstr Else SQLstr = SQLstr & " And " & tempsqlstr End If End If
If Trim(SQLstr) = "" Then MsgBox "你没有设置查询条件,请重新设置查询条件!!!", vbOKOnly + vbExclamation, "提示" Exit Sub End If
On Error GoTo queryerror
Set rss = New ADODB.Recordset If Option1(0).Value = True Then SQLstr = "select * from readerinfo where " & SQLstr Set rss = ExecuteSQL(SQLstr, msgstring) Set DataGrid1(0).DataSource = rss DataGrid1(0).Refresh Else If Option1(1).Value = True Then SQLstr = "select * from delreaderinfo where " & SQLstr Set rss = ExecuteSQL(SQLstr, msgstring) Set DataGrid1(1).DataSource = rss DataGrid1(1).Refresh End If End If If rss.BOF And rss.EOF Then MsgBox "数据库中查无此记录!!!", vbOKOnly + vbInformation, "信息" Exit Sub Else rss.MoveLast rss.MoveFirst MsgBox "本次操作共查询到" & rss.RecordCount & "条记录!!!", vbOKOnly + vbInformation, "信息" End If
Exit Sub
queryerror: MsgBox "查询条件不能为空!!!", vbOKOnly + vbCritical, "错误" Exit Sub
你看看,可能对你有用。
Private Sub Command1_Click()
Dim SQLstr As String, tempsqlstr As String, msgstring As String
Dim i As Integer
For i = 0 To 2
Call Check1_Click(i)
Next i
SQLstr = ""
If (Check1(0).Value = vbChecked) And Combo1(0).List(Combo1(0).ListIndex) <> Trim("模糊等于") Then
SQLstr = "xm" & Trim(Combo1(0).Text) & "'" & Trim(Text1(0).Text) & "'"
Else
If (Check1(0).Value = vbChecked) And Combo1(0).List(Combo1(0).ListIndex) = Trim("模糊等于") Then
SQLstr = "xm like '%" & Trim(Text1(0).Text) & "%'"
Else
SQLstr = ""
End If
End If
tempsqlstr = "jszh" & Trim(Combo1(1).Text) & "'" & Trim(Text1(1).Text) & "'" If Check1(1).Value = vbChecked Then
If Trim(SQLstr) = "" Then
SQLstr = tempsqlstr
Else
SQLstr = SQLstr & " And " & tempsqlstr
End If
End If
tempsqlstr = "bzrq" & Trim(Combo1(2).Text) & "'" & Trim(Text1(2).Text) & "'"
If Check1(2).Value = vbChecked Then
If Trim(SQLstr) = "" Then
SQLstr = tempsqlstr
Else
SQLstr = SQLstr & " And " & tempsqlstr
End If
End If
tempsqlstr = "czy" & Trim(Combo2.Text) & "'" & Trim(Combo3.Text) & "'"
If Check2.Value = vbChecked Then
If Trim(SQLstr) = "" Then
SQLstr = tempsqlstr
Else
SQLstr = SQLstr & " And " & tempsqlstr
End If
End If
If Trim(SQLstr) = "" Then
MsgBox "你没有设置查询条件,请重新设置查询条件!!!", vbOKOnly + vbExclamation, "提示"
Exit Sub
End If
On Error GoTo queryerror
Set rss = New ADODB.Recordset
If Option1(0).Value = True Then
SQLstr = "select * from readerinfo where " & SQLstr
Set rss = ExecuteSQL(SQLstr, msgstring)
Set DataGrid1(0).DataSource = rss
DataGrid1(0).Refresh
Else
If Option1(1).Value = True Then
SQLstr = "select * from delreaderinfo where " & SQLstr
Set rss = ExecuteSQL(SQLstr, msgstring)
Set DataGrid1(1).DataSource = rss
DataGrid1(1).Refresh
End If
End If
If rss.BOF And rss.EOF Then
MsgBox "数据库中查无此记录!!!", vbOKOnly + vbInformation, "信息"
Exit Sub
Else
rss.MoveLast
rss.MoveFirst
MsgBox "本次操作共查询到" & rss.RecordCount & "条记录!!!", vbOKOnly + vbInformation, "信息"
End If
Exit Sub
queryerror:
MsgBox "查询条件不能为空!!!", vbOKOnly + vbCritical, "错误"
Exit Sub
End Sub