多重条件如何才能实现复合查询:如:有7种可选条件,要根据任一个或多个或任意几个组合条件来查询,应如何解决?总不会把每一种可能作为查询条件的组合查询代码都编一次吧----:(
此问题急急急,在线等,谢谢

解决方案 »

  1.   

    dim strtiaojian as string
    dim db as adodb.connection
    dim rs as adodb.recordsetprivate Sub searchdata1()
      strtiaojian = ""  
      Set db = New Connection
      db.CursorLocation = adUseClient
      db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=data.mdb;Persist Security Info=False;"  
      Set RS = New Recordset
      Call tiaojian
      strsql = "select ID,编号,姓名,性别,出生日期,家庭地址 from table1 where " & strtiaojian
      If strtiaojian = "" Then
        strsql = Left(strsql, Len(strsql) - 7)
      End If  
      RS.Open strsql, db, adOpenDymanic, adLockBatchOptimistic
      Set main.DataGrid1.DataSource = RSend sub
    private Sub tiaojian()    If main.xingming.Text <> "" Then
            strtiaojian = strtiaojian & "姓名='" & main.xingming.Text & "' and "
        End If
        If main.xingbie.Text <> "" Then
            strtiaojian = strtiaojian & "性别='" & main.xingbie.Text & "' and "
        End If
    ''''////////其他条件可以自己加
        If Len(strtiaojian) > 0 Then        
            strtiaojian = Left(strtiaojian, Len(strtiaojian) - 5)        
        End If
    End Sub
      

  2.   

    private function prvWhereSQL as string
      dim strResult as string
      if check1.value then
        if trim(strResult)="" then
           strResult=" (姓名='" & txtXingMing.text & "')"
        else
           strResult=strResult & " AND (姓名='" & txtXingMing.text & "')"
        end if
      end if
    '其它条件类似
      if trim(strResult)="" then
         prvWhereSQL=" "
      else
         prvWhereSQL=" WHERE " & strResult
      end if
    end function
      

  3.   

    注意上面代码里生成SQL语句函数中的空格.