有三个数据库表A、B、C,三个Combobox控件a,b,c,一个查询按钮cmd,Datagrid控件
      
         2个Combobox控件a,b分别对应数据库表A,B,1个Combobox控件里的选项是“A类,B类,C类,D类”
           
              数据库表C里包括了数据库表A,B和“A类,B类,C类,D类”
                 
                  当我选择其中一个Combobox控件时,按查询按钮,在Datagrid表里显示出所选中的Combo的所有数据,
                    
                      当选择其中二个Combobox控件时,按查询按钮,在Datagrid表里显示出所选中的2个Combobox的所有数据
           
                            一样,当3个时,显示3个的所有数据。
             
大概代码该怎么写~~~~~~~      

解决方案 »

  1.   

    if 选择其中一个Combobox控件 then
       sql="..."
    elseif 选择其中二个Combobox控件then
      sql="..."
    else
      sql=".."
    endset rs=cn.execute(sql)
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) 
    http://feiyun0112.cnblogs.com/
      

  2.   

      楼上那位前辈能说得在详细点么?  本人不才,才学VB没多久。       说清楚点就是数据库表C里包括了数据库表A,B和“A类,B类,C类,D类”的某个字段
      

  3.   

            If gldw <> "全部" Then
                s = s & " and 单位id = " & dw.ItemData(gldw.ListIndex)
            End If
            If zh <> "" Then
                s = s & " AND (证号='" & zh & " ')"
            End If
            If Combo4 <> "全部" Then s = s & " AND (性质='" & Combo4 & "') "大概就是上面的格式,我下面用的是MSFLEXGRID。
                    If snp.RecordCount >= 200 Then
                        Msg = "与指定条件相匹配的档案建立太多(超过200个)" + Chr$(13)
                        Msg = Msg & "请给出较之更为严格的筛选条件"
                        snp.Close
                   Else
                        Screen.MousePointer = 11
                        InitGrid grd
                        FillGrid grd, snp
                        snp.Close
                        Screen.MousePointer = 0
                        Exit Sub
                    End If
    Private Sub FillGrid(g As MSFlexGrid, s As ADODB.Recordset)
        If s.RecordCount <= 0 Then
            InitGrid g: Exit Sub
        End If
        Dim i As Integer
        s.MoveLast: i = 1
        g.Rows = s.RecordCount + 1
        s.MoveFirst
        Do While Not s.EOF
            g.Row = i
            g.Col = 0
            g.Text = ""
            g.Col = 1
            If IsNull(s("id")) Then g.Text = "" Else g.Text = s("id")
            g.Col = 2
            If IsNull(s("证号")) Then g.Text = "" Else g.Text = s("证号")
            g.Col = 3
            pict.Cls
            If Not IsNull(s("背景色")) Then g.CellBackColor = s("背景色")
            If Not IsNull(s("前景色")) Then g.CellForeColor = s("前景色")
            If Not IsNull(s("车牌号")) Then g.Text = s("车牌号")
            g.Col = 4
            If IsNull(s("类型")) Then g.Text = "" Else g.Text = s("类型")
            s.MoveNext: i = i + 1
        Loop
        g.FixedRows = 1: g.FixedCols = 1
        g.FixedAlignment(0) = 2
        g.FixedAlignment(1) = 2
        g.FixedAlignment(2) = 2
        g.FixedAlignment(3) = 2
        g.FixedAlignment(4) = 2
        Exit Sub
    End SubPrivate Sub InitGrid(g As MSFlexGrid)
        g.FixedRows = 0: g.Rows = 1
        g.FixedCols = 0: g.Cols = 5
        g.ColAlignment(0) = 2
        g.ColAlignment(1) = 1
        g.ColAlignment(2) = 2
        g.ColAlignment(3) = 2
        g.ColAlignment(4) = 1
        g.Row = 0
        g.Col = 0: g.Text = ""
        g.ColWidth(0) = pict.TextWidth("")
        g.Col = 1: g.Text = "编号"
        g.ColWidth(1) = 1
        g.Col = 2: g.Text = "证号"
        g.ColWidth(2) = pict.TextWidth(g.Text) * 1.5
        g.Col = 3: g.Text = "照号"
        g.ColWidth(3) = pict.TextWidth(g.Text & "     ")
        g.Col = 4: g.Text = "类型"
        g.ColWidth(4) = pict.TextWidth(g.Text)
        Exit Sub
    End Sub