在程序中用多个combol组件选择查询条件。请问如何用语句实现查询。

解决方案 »

  1.   

    我编的一个程序中的组合查询:
    你看看,可能对你有用。
    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