是不是按各个字段的值进行查询搜索?
如果是就发给你看一下我的吧:
怎么没看到我插入的图片呢?
下面是我的代码,要根据你的情况修改哈。
Private Sub dcOK_Click()
Dim sSql As String
Dim i As Integer
Dim j As Integer
Dim s1 As String
Dim s2 As String
Dim s3 As String
Dim s4 As String
Dim s5 As String
Dim s6 As String
Dim s7 As String
Dim s8 As String
Dim sRet As String
Dim sRC As String
Dim RS As ADODB.Recordset
s6 = frmClient.lblTableName.Caption
If sMingXi_DiDa = "" Then
Else
s6 = sMingXi_DiDa
' If InStr(1, sMingXi_DiDa, "ZHULIN") <> 0 Then
' s6 = "ZHULIN_SHENQING_MINGXI_G"
' Else
' s6 = "WEIXIU_CHELIANG_MINGXI"
' End If
End If
s5 = ""
j = 0
For i = 0 To Me.Check1.UBound
If Me.Check1(i).Value = 1 Then
s1 = Me.Check1(i).Caption
s2 = Me.Combo1(i).Text
s3 = Me.Combo2(i).Text
s4 = Me.Combo3(i).Text
s7 = Me.Combo4(i).Text
If j <> 0 Then
If s7 = "与" Then
s7 = " and "
Else
s7 = " or "
End If
Else
s7 = ""
End If
j = j + 1
'这里还有问题,有待改进!!!!!!
If s1 = "" Or s2 = "" Or s3 = "" Then '只要一个为空则不计算
Else
If (s2 = "介于" Or s2 = "不介于") And s4 = "" Then ''不计算
ElseIf s2 = "介于" And s4 <> "" Then 'BETWEEN
s5 = s5 & s7
s5 = s5 & s1 & " between '" & s3 & "' and '" & s4 & "'" ' & s7
ElseIf s2 = "不介于" And s4 <> "" Then 'BETWEEN
s5 = s5 & s7
s5 = s5 & s1 & " not between '" & s3 & "' and '" & s4 & "'" ' & s7
ElseIf s2 = "近似" Then
s5 = s5 & s7
s5 = s5 & s1 & " like '%" & s3 & "%'" ' & s7
ElseIf s2 = "不近似" Then
s5 = s5 & s7
s5 = s5 & s1 & " not like '%" & s3 & "%'" ' & s7
Else 'If s2 <> "介于" And s2 <> "不介于" Then
s5 = s5 & s7
s5 = s5 & s1 & s2 & "'" & s3 & "'" ' & s7
End If
End If
End If
Next i
If s5 = "" Then
sSql = "select * from " & s6
Else
's5 = Left(s5, Len(s5) - Len(" and "))
sSql = "select * from " & s6 & " where " & s5
End If
Set RS = DoTSQL(sSql, sOK)
If sOK = "FALSE" Then
GoTo ERR1
Else
s8 = frmClient.DiDaSG1.CellGetValue(0, 1)
sRet = ShowDataDida(RS, frmClient.DiDaSG1, s8, sRC, "")
frmClient.StatusBar1.Panels("JLQK").Text = "记录:" & sRC ' frmClient.DiDaSG1.RowGetCount - 2
'Call frmClient.dcCommand_Click(5)
End If
Set RS = Nothing
Exit Sub
ERR1:
End Sub