- Sub try()
- Dim conn As Object, sql As String, arr, sr As String
- Set conn = CreateObject("adodb.connection")
- arr = Sheets("处理明细查询").Range("b2:i3")
- If arr(2, 1) And arr(2, 2) Then sr = Replace(arr(1, 1), "(从)", "") & " >=#" & arr(2, 1) & "# And " & Replace(arr(1, 2), "(到)", "") & " <=#" & arr(2, 2) & "# or "
- If arr(2, 1) And arr(2, 2) = "" Then sr = sr & Replace(arr(1, 1), "(从)", "") & " >=#" & arr(2, 1) & "# or "
- If arr(2, 2) And arr(2, 1) = "" Then sr = sr & Replace(arr(1, 2), "(到)", "") & " <=#" & arr(2, 2) & "# or "
- If Len(arr(2, 3)) Then sr = sr & arr(1, 3) & " = '" & arr(2, 3) & "' or "
- If Len(arr(2, 4)) Then sr = sr & arr(1, 4) & " = '" & arr(2, 4) & "' or "
- If Len(arr(2, 5)) Then sr = sr & arr(1, 5) & " = '" & arr(2, 5) & "' or "
- If Len(arr(2, 6)) Then sr = sr & arr(1, 6) & " = '" & arr(2, 6) & "' or "
- If arr(2, 7) And arr(2, 8) Then sr = sr & Replace(arr(1, 7), "(从)", "") & " >=#" & arr(2, 7) & "# And " & Replace(arr(1, 8), "(到)", "") & " <=#" & arr(2, 8) & "#"
- If arr(2, 7) And arr(2, 8) = "" Then sr = sr & Replace(arr(1, 7), "(从)", "") & " >=#" & arr(2, 7) & "# or "
- If arr(2, 8) And arr(2, 7) = "" Then sr = sr & Replace(arr(1, 8), "(到)", "") & " <=#" & arr(2, 8) & "#"
- If InStr(sr, "or") Then sr = Replace(sr, " or ", "")
- If sr = "" Then
- MsgBox "请输入查询明细"
- Exit Sub
- End If
- sql = "select * from 处理页 where " & sr
- conn.Open "provider=Microsoft.jet.OLEDB.4.0;data source=" & ThisWorkbook.Path & "\订单登记表.mdb"
- Sheets("处理明细查询").UsedRange.Offset(7, 0).ClearContents
- Sheets("处理明细查询").Range("a8").CopyFromRecordset conn.Execute(sql)
- conn.Close
- Set conn = Nothing
- End Sub
复制代码
我也就学了sql几天,简单试了一下可以用,试试吧,你这个做得我迷迷糊糊 |