Access交流中心

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

使用SQL命令将access表导出为EXCEL表,文件夹被锁定,求关闭代码

gaoyunpeng  发表于:2016-12-08 09:09:25  
复制


一直比较习惯用SQL命令,在网上找到一贴使用SQL命令导出EXCEL代码来使用

http://www.accessoft.com/article-show.asp?id=7034


Select * INTO [EXCEL 12.0 XML;DATABASE=E:\temp\text.xlsx].sheet1 FROM Sheet2

导出时可以顺利使用,但想对【temp】文件夹删掉操作时,发提示文件夹被占用,无法删除。后来发现关闭ACCESS后,才可以删除【temp】文件夹。


调用的过程如下

------------------------------------------------------------------------------------------------------------------------------------------------

Sub ExportExcel_xlsx(strFileName As String, strSQL As String)
Dim strSQL0 As String
Dim strFilePath As String
Dim strFullFileName As String
Dim strFullFileName1 As String

DoCmd.SetWarnings False

On Error GoTo Err_ExportToExcel

'获得保存信息
With Application.FileDialog(msoFileDialogSaveAs)
    .InitialFileName = strFileName
    If Not .Show Then Exit Sub
    strFileName = .SelectedItems(1)
End With
   
    strFilePath = Left(strFileName, InStrRev(strFileName, "\"))                     '获得路径
    strFullFileName = Mid(strFileName, InStrRev(strFileName, "\") + 1)              '获得文件名(含扩展名)
    'strFullFileName1 = Left(strFullFileName, InStrRev(strFullFileName, ".") - 1)   '获得文件名
   
'如果EXCEL文件已存在,则先删除
    If Dir(strFileName) <> "" Then Kill strFileName

'建立(保存)文件
    strSQL0 = "Select * INTO [EXCEL 12.0 XML;DATABASE="
    strSQL0 = strSQL0 & strFilePath
    strSQL0 = strSQL0 & strFullFileName
    strSQL0 = strSQL0 & "].Sheet1 FROM (" & strSQL
    strSQL0 = strSQL0 & ") AS A"
   
    DoCmd.RunSQL strSQL0

'打开确认
    If MsgBox("Export Success,Open it?", vbYesNo + vbInformation) = vbNo Then
        Exit Sub
    Else
'打开EXCEL文件
        Shell "Excel.exe " & Chr(34) & strFilePath & strFullFileName & Chr(34), 3
    End If

   
'错误跳出
Exit_ExportToExcel:
    On Error Resume Next
    DoCmd.Hourglass False
    Exit Sub
Err_ExportToExcel:
    If Err = 70 Then
        MsgBox "Can't Export '" & strFileName & "', The file may be opened or without permission. ", vbCritical
    Else
        MsgBox Err.Number & " " & Err.Description, vbCritical
    End If
    Resume Exit_ExportToExcel
    Exit Sub

End Sub

-------------------------------------------------------------------------------------------------------------------------------------------------

求高手指点一二,其他的导出方法也用过,但感觉还是这个比较顺手。

 

Top
gaoyunpeng 发表于:2016-12-08 10:10:28

常试了几套EXCEL输出的方法,但发现好像都存在同样的问题。

关闭ACCESS后,就可以删除输出文件的所在文件夹。



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