在ACCESS的VBA中如何实现将表"导出数据"以每10000行导出至C:\Users\icd\Desktop\流水分割文件夹中?
时间: 2023-07-21 11:31:45 浏览: 46
可以使用以下VBA代码实现将表"导出数据"以每10000行导出至C:\Users\icd\Desktop\流水分割文件夹中:
```vb
Sub ExportTable()
Dim tbl As DAO.TableDef
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim fld As DAO.Field
Dim i As Long, j As Long
Dim k As Long, n As Long
Dim strFilePath As String
'设置导出文件夹路径
strFilePath = "C:\Users\icd\Desktop\流水分割文件夹\"
'打开当前数据库
Set db = CurrentDb()
'设置要导出的表
Set tbl = db.TableDefs("导出数据")
'打开表的记录集
Set rs = tbl.OpenRecordset()
'获取表的字段数
j = tbl.Fields.Count
'获取表的记录总数
n = rs.RecordCount
'按每10000行分割导出
For i = 1 To n Step 10000
'设置导出文件名
strFileName = "导出数据" & Format(i, "00000") & ".csv"
'创建导出文件
Open strFilePath & strFileName For Output As #1
'写入表的字段名
For Each fld In tbl.Fields
Print #1, fld.Name;
If fld.OrdinalPosition < j Then
Print #1, ",";
Else
Print #1, ""
End If
Next fld
'写入表的记录
rs.MoveFirst
rs.Move i - 1
For k = 1 To 10000
If Not rs.EOF Then
For Each fld In tbl.Fields
Print #1, fld.Value;
If fld.OrdinalPosition < j Then
Print #1, ",";
Else
Print #1, ""
End If
Next fld
rs.MoveNext
Else
Exit For
End If
Next k
'关闭导出文件
Close #1
Next i
'关闭表的记录集
rs.Close
'释放对象
Set rs = Nothing
Set tbl = Nothing
Set db = Nothing
MsgBox "导出完成!"
End Sub
```
在这段代码中,首先通过`CurrentDb()`方法打开当前数据库,然后通过`TableDefs("导出数据")`方法获取要导出的表对象。接着,通过`OpenRecordset()`方法打开表的记录集,通过`RecordCount`属性获取表的记录总数,通过`Fields`属性获取表的字段数。
然后,使用`Step 10000`循环按每10000行分割导出。在循环中,首先设置导出文件名,然后通过`Open`语句创建导出文件,通过`Print`语句写入表的字段名和记录。
最后,关闭表的记录集,释放对象,弹出导出完成的提示框。