首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Access >

怎么在Access里生成导出多个Excel文件,请大家帮帮忙

2012-03-14 
如何在Access里生成导出多个Excel文件,请大家帮帮忙表1部门姓名业务量1业务量2业务量3部门A小张3233560972

如何在Access里生成导出多个Excel文件,请大家帮帮忙
表1
部门姓名业务量1业务量2业务量3
部门A小张3233560972264
部门B小李934826341650
部门A小王1531435862604
部门C小吴1041623932174
部门A小赵1042332211247
部门D小钱76462081616
部门A小孙3175361281407
部门B小田165053805672

如何按部门查询后,生成部门A.xls,B.xls等等,
我用select   表1.部门,*   into   [Excel   8.0;database=d:\部门A.xls].sheets1
from   表1
where   (((表1.部门)= "部门A "));
这样每次只能产生一个xls,如何才能产生多个Excel表。请大家指点一二,感激不尽。
最好产生的excel表中,分别以姓名为表名,而不仅仅是都导出到sheets1里。

[解决办法]


Public Sub ExportToExcel()

Dim strSQL As String

Dim Cnn As New ADODB.Connection
Dim Rst As New ADODB.Recordset

Dim strPathAndFullName As String

Set Cnn = CurrentProject.Connection

'先删除可能已经存在的同名xls文件
strSQL = "select 部门 from 表1 group by 部门 "
Rst.Open strSQL, Cnn, adOpenKeyset, adLockOptimistic
If Not Rst.EOF Then
Rst.MoveFirst
Do While Not Rst.EOF

strPathAndFullName = "D:\ " & Rst!部门 & ".xls "

If Dir(strPathAndFullName) <> " " Then
Kill strPathAndFullName
End If

Rst.MoveNext
Loop

End If

Set Rst = Nothing

'开始生成xls文件,相同部门的生成在一个xls中,不同的姓名生成在不同的sheet中
strSQL = "select 部门,姓名 from 表1 group by 部门,姓名 "
Rst.Open strSQL, Cnn, adOpenKeyset, adLockOptimistic
If Not Rst.EOF Then
Rst.MoveFirst
Do While Not Rst.EOF

strSQL = "select 部门,* into [Excel 8.0;database=d:\ " & Rst!部门 & ".xls]. " & Rst!姓名 & " " _
& " from 表1 " _
& " where 部门= ' " & Rst!部门 & " ' and 姓名= ' " & Rst!姓名 & " ' "
Cnn.Execute strSQL


Rst.MoveNext
Loop

End If

End Sub

[解决办法]
OR
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset( "select 部门,姓名 from tt6 group by 部门,姓名 ")
Do While Not rs.EOF
qw = "select 部门,* into [Excel 8.0;database=d:\TEMP\ " & rs( "部门 ") & ".xls]. " & rs( "姓名 ") & " from tt6 where 部门= ' " & rs( "部门 ") & " ' and 姓名= ' " & rs( "姓名 ") & " ' "
CurrentDb.Execute qw
rs.MoveNext
Loop

热点排行