我用vb+sql2000编写了一个数据库,但是我在运行的时候,发现不能模糊查询,请高手指教。(代码如下)
Dim dBeginDate As String
    Dim sQSql As String
    
    If chkItem(0).Value = vbChecked Then
        sQSql = " customname = '" & Trim(txtItem(0) & " ") & "'"
    End If
    
    If chkItem(1).Value = vbChecked Then
        If Trim(sQSql & " ") = "" Then
            sQSql = " roomno ='" & Trim(txtItem(1) & " ") & "'"
        Else
            sQSql = sQSql & " and roomno ='" & Trim(txtItem(1) & " ") & "'"
        End If
    End If
先谢谢了!

解决方案 »

  1.   

    所有代码如下:(要求查询顾客姓名,房间编号,入主时间)
    Option Explicit
    '用于传递查询块
    Private Sub chkItem_Click(Index As Integer)
        If Index = 2 Then
            cboYear(0).SetFocus
        Else
            txtItem(Index).SetFocus
        End If
    End SubPrivate Sub cmdExit_Click()
        Me.Hide
    End SubPrivate Sub cmdOK_Click()    Dim dBeginDate As String
        Dim sQSql As String
        
        If chkItem(0).Value = vbChecked Then
            sQSql = " customname = '" & Trim(txtItem(0) & " ") & "'"
        End If
        
        If chkItem(1).Value = vbChecked Then
            If Trim(sQSql & " ") = "" Then
                sQSql = " roomno ='" & Trim(txtItem(1) & " ") & "'"
            Else
                sQSql = sQSql & " and roomno ='" & Trim(txtItem(1) & " ") & "'"
            End If
        End If
        
        If chkItem(2).Value = vbChecked Then
            dBeginDate = Format(CDate(cboYear(0) & "-" & cboMonth(0) & "-" & cboDay), "yyyy-mm-dd")
            
            
            If Trim(sQSql & " ") = "" Then
                sQSql = " indate ='" & dBeginDate & "'"
            Else
                sQSql = sQSql & " and indate ='" & dBeginDate & "'"
            End If
            
        
        End If
        
        If Trim(sQSql) = "" Then
            MsgBox "请设置查询条件!", vbOKOnly + vbExclamation, "警告"
            Exit Sub
        Else
            If flagBedit Then
                Unload frmCheckout
            End If
            frmCheckout.txtSQL = "select * from bookin where ammount <> '0' and " & sQSql
            frmCheckout.Show
        End If
        Me.Hide
     End SubPrivate Sub Form_Load()
        
        
        
        
        Dim i As Integer
        Dim j As Integer
        Dim sSql As String
        Dim txtSQL As String
        Dim MsgText As String
        Dim mrc As ADODB.Recordset
        
      
        txtSQL = "select distinct datepart(yy,indate) from bookin where ammount <> '0'"
        Set mrc = ExecuteSQL(txtSQL, MsgText)
        If mrc.EOF = False Then
            With mrc
                Do While Not .EOF
                    cboYear(0).AddItem .Fields(0)
                    .MoveNext
                Loop
            End With
            
            cboYear(0).ListIndex = 0
            
            For j = 1 To 12
                cboMonth(0).AddItem j
            Next j
            cboMonth(0).Text = Month(Now())
            
            For j = 1 To 31
                cboDay.AddItem j
            Next j
            cboDay.Text = Day(Now())
            
        Else
            cmdOk.Enabled = False
        End If
        mrc.CloseEnd SubPrivate Sub lblitem_Click(Index As Integer)
        chkItem(Index).Value = vbChecked
        
    End SubPrivate Sub txtItem_GotFocus(Index As Integer)
       
        txtItem(Index).SelStart = 0
        txtItem(Index).SelLength = Len(txtItem(Index))
    End Sub