Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

如何将一个数据库,根据某一项,分别生成多个文件!

lyh  发表于:2009-10-14 13:45:11  
复制

123文件是一个总的数据库
042200290001和119304030002文件是根据123文件的内的“登记批次”来生成的。相同的“登记批次”生成一个文件,并以其对应的“登记批次”为文件名。
我想请教的问题就是:如何将一个很大的数库文件(类似于123文件),一次性根据“登记批次”来生成多个数据文件.

请查看附件

 

Top
lyh 发表于:2009-10-14 13:46:20
点燃一支烟 发表于:2009-10-14 16:06:10
点击下载此附件  解压后将“导出表”文件夹放在与数据库的同目录下

点燃一支烟 发表于:2009-10-14 16:50:15

你自己去完善,把程序写简练一点,呵呵



点燃一支烟 发表于:2009-10-14 17:09:29
Private Sub 命令2_Click()
Dim i As Integer
i = 0
Dim strSQL As String
Dim rst1 As DAO.Recordset
strSQL = "SELECT [123].登记批次 FROM 123 GROUP BY [123].登记批次"
Set rst1 = CurrentDb.OpenRecordset(strSQL)
If rst1.EOF Or rst1.BOF Then Exit Sub
Do Until rst1.EOF
CurrentDb.Execute "SELECT [123].* INTO " & rst1("登记批次") & " FROM 123 WHERE ((([123].登记批次)='" & rst1("登记批次") & "'))"
Dim wk1 As Workspace
Dim stDocName As String
Dim stOutputFile As String
stDocName = rst1("登记批次")
i = i + 1
stOutputFile = CurrentProject.Path & "\导出表\" & rst1("登记批次") & ".xls"
DoCmd.OutputTo acOutputTable, stDocName, acFormatXLS, stOutputFile, False
CurrentDb.Execute "drop table " & rst1("登记批次") & ""
rst1.MoveNext
Loop
rst1.Close
Set rst1 = Nothing
MsgBox "导出表成功!" & Chr(13) & "共导出" & i & "个表到:" & CurrentProject.Path & "\导出表\" & "文件夹"
End Sub
这样简练些

点燃一支烟 发表于:2009-10-14 17:11:44
Private Sub 命令2_Click()
Dim i As Integer
i = 0
Dim strSQL As String
Dim rst1 As DAO.Recordset
strSQL = "SELECT [123].登记批次 FROM 123 GROUP BY [123].登记批次"
Set rst1 = CurrentDb.OpenRecordset(strSQL)
If rst1.EOF Or rst1.BOF Then Exit Sub
Do Until rst1.EOF
CurrentDb.Execute "SELECT [123].* INTO " & rst1("登记批次") & " FROM 123 WHERE ((([123].登记批次)='" & rst1("登记批次") & "'))"
Dim wk1 As Workspace
Dim stDocName As String
Dim stOutputFile As String
stDocName = rst1("登记批次")
i = i + 1
stOutputFile = CurrentProject.Path & "\导出表\" & rst1("登记批次") & ".xls"
DoCmd.OutputTo acOutputTable, stDocName, acFormatXLS, stOutputFile, False
CurrentDb.Execute "drop table " & rst1("登记批次") & ""
rst1.MoveNext
Loop
rst1.Close
Set rst1 = Nothing
MsgBox "导出表成功!" & Chr(13) & "共导出" & i & "个表到:" & CurrentProject.Path & "\导出表\" & "文件夹"
End Sub
红色的删除

点燃一支烟 发表于:2009-10-14 17:14:24
Private Sub 命令2_Click()
Dim stDocName As String
Dim stOutputFile As String
Dim i As Integer
Dim strSQL As String
Dim rst1 As DAO.Recordset
strSQL = "SELECT [123].登记批次 FROM 123 GROUP BY [123].登记批次"
Set rst1 = CurrentDb.OpenRecordset(strSQL)
If rst1.EOF Or rst1.BOF Then Exit Sub
i = 0
Do Until rst1.EOF
CurrentDb.Execute "SELECT [123].* INTO " & rst1("登记批次") & " FROM 123 WHERE ((([123].登记批次)='" & rst1("登记批次") & "'))"
stDocName = rst1("登记批次")
i = i + 1
stOutputFile = CurrentProject.Path & "\导出表\" & rst1("登记批次") & ".xls"
DoCmd.OutputTo acOutputTable, stDocName, acFormatXLS, stOutputFile, False
CurrentDb.Execute "drop table " & rst1("登记批次") & ""
rst1.MoveNext
Loop
rst1.Close
Set rst1 = Nothing
MsgBox "导出表成功!" & Chr(13) & "共导出" & i & "个表到:" & CurrentProject.Path & "\导出表\" & "文件夹"
End Sub


总记录:6篇  页次:1/1 9 1 :