|
感谢各位老师帮助!谢谢
按日期之间查找数据代码。在其它表里查找时i没有报错,在这个表里同样写法就会报错
请各位老师指点。
Sub 出货日期查询()
Sheets("查询").Range("D1,B1,F1,A3:V800") = "" '判断要删除或者清除的区域
On Error Resume Next '如果出现错误,忽略,然后执行下一行代码。
Application.ScreenUpdating = False '关闭屏幕刷新,成对出现,提高速度
Application.DisplayAlerts = False '关闭提示,,成对出现,避免出现提示框
'--------------------------------------- 参数声明部分 ------------------- ------------------- -------------------
Dim cnn, SQL$ '定义数据库连接和SQL语句
Set cnn = CreateObject("adodb.connection") '创建数据库连接
Set rs = CreateObject("adodb.recordset") '创建一个数据集保存数据
i = Sheets("查询").Range("I1").Value '开始日期
t = Sheets("查询").Range("L1").Value '结束日期
'--------------------------------------- 设置数据库连接 ------------------- ------------------- -------------------
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & ThisWorkbook.FullName
SQL = "select 编号,日期,款号,款式,颜色,单位,XS,S,M,L,XL,2XL,3XL,4XL,5XL,数量,合计,接单价,金额合计 from [成品出货数据库$A1:T8300] where 日期>=#" & i & "#" & "and 日期<=#" & t & "#"
'设置查询字段与查询条件
'--------------------------------------- SQL结果处理 ------------------- ------------------- -------------------
Set rs = cnn.Execute(SQL) '将SQL语句获得的数据传递给数据集
Sheets("查询").Range("A3:U10000").ClearContents '清理保存数据的区域
Sheets("查询").Range("A3").CopyFromRecordset rs '将数据集粘贴到Excel中,左上角为A5,无列名。
cnn.Close '关闭数据库连接
Set cnn = Nothing '将CNN从内存中删除。
'--------------------------------------- ------------------------ ------------------- -------------------
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Application.Calculation = xlSemiautomatic
MsgBox "出货日期查询 完毕! 烦请 按 确 定 键"
End Sub
|
|