在access中怎么实现用VBA将A表的数据以每10000行导出一份execl表?
时间: 2024-03-13 18:44:11 浏览: 145
Execl导入导出_导入导出_execl_winform_
你可以使用以下的 VBA 代码将 Access 表中的数据以每10000行导出一份 Excel 表:
```
Private Sub ExportData()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strSQL As String
Dim strFileName As String
Dim i As Long
'设置导出文件路径和文件名
strFileName = "C:\Users\icd\Desktop\流水分割"
Set db = CurrentDb()
strSQL = "SELECT A.* FROM A"
Set rs = db.OpenRecordset(strSQL, dbOpenSnapshot)
'每10000条记录导出到一个新的文件
Do While Not rs.EOF
If i Mod 10000 = 0 Then
If i <> 0 Then
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "ExportData", strFileName & Format(i, "000000") & ".xlsx", True
End If
rs.Close
Set rs = db.OpenRecordset(strSQL, dbOpenSnapshot)
End If
i = i + 1
rs.MoveNext
Loop
'导出最后一份文件
If i Mod 10000 <> 0 Then
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "ExportData", strFileName & Format(i, "000000") & ".xlsx", True
End If
rs.Close
Set rs = Nothing
Set db
End Sub
```
在此代码中,我们首先定义了一个变量 `strSQL`,用于存储查询 A 表的 SQL 语句。然后使用 `OpenRecordset` 方法打开 A 表的记录集,并使用 `MoveNext` 方法遍历记录集中的每一条记录。当遍历的记录数达到 10000 的倍数时,我们使用 `TransferSpreadsheet` 方法将这部分记录导出到一个新的 Excel 表中。最后,我们再次使用 `TransferSpreadsheet` 方法将剩余的记录导出到另一个 Excel 表中。
请注意,在使用此代码之前,你需要将代码中的表名、导出文件路径和文件名修改为你自己的表名、导出路径和文件名。
阅读全文