帮我优化以下代码:' 设置每次插入的记录数 Const BATCH_SIZE = 10000 ' 将数据从表“导出数据”插入表“对比表”,直至所有数据均插入完毕 Do While DCount("*", "导出数据") > 0 CurrentDb.Execute "INSERT INTO 对比表 (录音流水号, 区域) " & _ "SELECT TOP " & BATCH_SIZE & " 录音流水号, 区域 FROM 导出数据" CurrentDb.Execute "DELETE TOP " & BATCH_SIZE & " FROM 导出数据" Loop ' 将对比表中的数据按每次10000条导出至自动生成的Excel文件并导出至C:\文件夹中 Dim rs As DAO.Recordset Dim fileName As String Dim i As Long i = 1 Set rs = CurrentDb.OpenRecordset("SELECT * FROM 对比表", dbOpenSnapshot) Do While Not rs.EOF If i Mod BATCH_SIZE = 1 Then ' 新建Excel文件 fileName = "C:\Users\icd\Desktop\流水分割\对比表_" & Int(i / BATCH_SIZE) & ".xlsx" DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "对比表", fileName, True End If rs.MoveNext i = i + 1 Loop rs.Close ' 清空对比表 CurrentDb.Execute "DELETE FROM 对比表"
时间: 2024-03-20 11:44:54 浏览: 61
以下是对代码进行的优化:
```
' 设置每次插入的记录数
Const BATCH_SIZE = 10000
' 将数据从表“导出数据”插入表“对比表”,直至所有数据均插入完毕
Do While DCount("*", "导出数据") > 0
CurrentDb.Execute "INSERT INTO 对比表 (录音流水号, 区域) " & _
"SELECT TOP " & BATCH_SIZE & " 录音流水号, 区域 FROM 导出数据"
CurrentDb.Execute "DELETE TOP " & BATCH_SIZE & " FROM 导出数据"
Loop
' 将对比表中的数据按每次10000条导出至自动生成的Excel文件并导出至C:\文件夹中
Dim fileName As String
Dim i As Long
i = 1
Do Until CurrentDb.OpenRecordset("SELECT COUNT(*) FROM 对比表").Fields(0) = 0
' 新建Excel文件
fileName = "C:\Users\icd\Desktop\流水分割\对比表_" & i & ".xlsx"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "对比表", fileName, True, "Sheet1"
i = i + 1
Loop
' 清空对比表
CurrentDb.Execute "DELETE FROM 对比表"
```
在优化后的代码中,使用了 Do Until 循环代替了 Do While 循环,这样可以避免在每次循环中都执行一次 DCount 函数来获取表“导出数据”中记录的数量。同时,在新建 Excel 文件时,使用了“Sheet1”参数来指定导出的工作表名称,这样可以避免生成多个工作表,从而提高了代码的可读性和可维护性。
阅读全文
相关推荐
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)