|
楼主 |
发表于 2012-5-18 17:32
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
本帖最后由 xm2012 于 2012-5-18 17:39 编辑
zhaogang1960 发表于 2012-5-18 16:08
谢谢老师,一次一次的指导,真的很感谢您。
有个问题想再麻烦一下老师您!
我用您写的代码增加了1个工作表查询,我想让SHEET4中的( J 列 )不被筛选过来。
不知道我这样修改对不对,请老师指正!
Sub Macro1()
Dim cnn As Object, SQL$, s$, t$
If [c2] <> "" Then s = s & " and 日期>=#" & [c2] & "#" '如果c2不为空,写第一个条件,如:s=" and 日期>=#2012-1-1#"
If [c3] <> "" Then s = s & " and 日期<=#" & [c3] & "#" '如果c3不为空,写第二个条件,如:s=" and 日期>=#2012-1-1# and 日期<=#2012-1-2#"
If [e2] <> "" Then s = s & " and 内容一='" & [e2] & "'" '如果e2不为空,写第三个条件,s=" and 日期>=#2012-1-1# and 日期<=#2012-1-2# and 内容一='类B'"
If s <> "" Then t = " where " & Mid(s, 5) '如果s不等于空,t=where 日期>=#2012-1-1# and 日期<=#2012-1-2# and 内容一='类B'"
Set cnn = CreateObject("ADODB.Connection") '创建连接对象
cnn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName '连接数据库
SQL = "select 编号,日期,经手人,内容一,内容二,内容三,数值一,数值二,内容四,内容五,内容六,内容七 from [Sheet2$B4:N]" & t & " union all select 编号,日期,经手人,内容一,内容二,内容三,数值一,数值二,内容四,内容五,内容六,内容七 from [Sheet3$B4:N]" & t & " union all select 编号,日期,经手人,内容一,内容二,内容三,数值一,数值二,内容四,内容五,内容六,内容七 from [Sheet4$B4:N]" & t 'SQL语句,如果t为空,则全部显示
Range("A1").CurrentRegion.Offset(4).ClearContents '清除原数据
Range("b5").CopyFromRecordset cnn.Execute(SQL) '复制查询结果
cnn.Close '关闭连接
Set cnn = Nothing '释放内存
End Sub
按时间段查询俩表数据SQL (2).rar
(22.69 KB, 下载次数: 90)
|
|