在access中如何用VBA实现将用以下代码查询的数据生成一份名为存量日期的EXECL文件存储至指定位置c:\,如果指定位置已有同名文件则先删除再生成?SELECT 接触清单.呼叫日期 FROM 接触清单 GROUP BY 接触清单.呼叫日期 ORDER BY 接触清单.呼叫日期 DESC
时间: 2024-03-15 11:44:31 浏览: 65
你可以使用以下代码实现该功能:
```
Sub ExportDataToExcel()
Dim strPath As String
Dim strFilename As String
Dim strSQL As String
Dim rs As Object
Dim i As Integer
' 设置导出文件的路径和文件名
strPath = "C:\"
strFilename = "存量日期.xlsx"
' 检查指定路径下是否已有同名文件,有则删除
If Dir(strPath & strFilename) <> "" Then
Kill strPath & strFilename
End If
' 构造查询语句
strSQL = "SELECT 接触清单.呼叫日期 FROM 接触清单 GROUP BY 接触清单.呼叫日期 ORDER BY 接触清单.呼叫日期 DESC"
' 执行查询
Set rs = CreateObject("ADODB.Recordset")
rs.Open strSQL, CurrentProject.Connection, 1, 3
' 创建Excel文件并将查询结果写入文件
Dim objExcel As Object
Dim objWorkbook As Object
Dim objWorksheet As Object
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Add
Set objWorksheet = objWorkbook.Worksheets(1)
' 写入查询结果到Excel文件
For i = 0 To rs.Fields.Count - 1
objWorksheet.Cells(1, i + 1).Value = rs.Fields(i).Name
Next i
objWorksheet.Range("A2").CopyFromRecordset rs
' 保存Excel文件
objWorkbook.SaveAs strPath & strFilename
objWorkbook.Close
' 释放对象
Set objWorksheet = Nothing
Set objWorkbook = Nothing
Set objExcel = Nothing
Set rs = Nothing
End Sub
```
这段代码首先检查指定路径下是否已有同名文件,有则删除。然后构造查询语句,执行查询,并将结果写入Excel文件。最后保存Excel文件并释放对象。你可以将上述代码复制到Access的VBA编辑器中运行。
阅读全文