我用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
先谢谢了!
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
先谢谢了!
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