+ -
当前位置:首页 → 问答吧 → 各位老师!牛人!帮忙看看!加句代码!执行日期排序!

各位老师!牛人!帮忙看看!加句代码!执行日期排序!

时间:2011-08-12

来源:互联网

Sub Macro1()
    Dim cnn As Object, SQL$, s$
    SQL = "select * from [数据总表$a3:AI" & Sheets("数据总表").Cells(Rows.Count, 1).End(xlUp).Row & "]"
    If Len([D12]) Then s = s & " and f2='" & [D12] & "'"
    If Len([A11]) Then s = s & " and f1>=#" & [A11] & "#"
    If Len([A13]) Then s = s & " and f1<=#" & [A13] & "#"
    If Len(s) Then SQL = SQL & " where " & Mid(s, 6) '如果都为空则全部显示
    Set cnn = CreateObject("ADODB.Connection")
    cnn.Open "provider=Microsoft.ACE.OLEDB.12.0;extended properties='excel 12.0;hdr=no';data source=" & ThisWorkbook.FullName
    ActiveSheet.UsedRange.Offset(15).ClearContents
    [a16].CopyFromRecordset cnn.Execute(SQL)
    cnn.Close
    Set cnn = Nothing
    文本转数字

End Sub

Sub 文本转数字()
s = Range("A1:A" & Range("A" & Cells.Rows.Count).End(3).Row)
With ActiveSheet.UsedRange
  .NumberFormatLocal = "G/通用格式"
  .Value = .Value
End With
Range("A1:A" & Range("A" & Cells.Rows.Count).End(3).Row) = s
End Sub


各位老师帮忙看看!加个条件在上面的语句执行完了在进行排序!~按日期排序!A列是短日期。

作者: lichaoshen   发布时间: 2011-08-12

If Len(s) Then SQL = SQL & " where " & Mid(s, 6) & " order by f1 desc" Else SQL = SQL & " order by f1 desc" '如果是升序desc换成asc或省略

作者: zhaogang1960   发布时间: 2011-08-12

运行出错误啊!或者是我弄错地方了!放在if下面运行下面调试没错误!但正式放到表里在执行下面语句就出错!

作者: lichaoshen   发布时间: 2011-08-12

引用:
原帖由 lichaoshen 于 2011-8-12 11:48 发表
运行出错误啊!或者是我弄错地方了!放在if下面运行下面调试没错误!但正式放到表里在执行下面语句就出错!
只是在原来的SQL语句后面加个排序子句,如果原SQL语句没有问题是不会出错的
请上传附件分析一下

作者: zhaogang1960   发布时间: 2011-08-12