ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1245|回复: 2

[求助] 如何将access导出成TXT

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-5-13 18:36 | 显示全部楼层 |阅读模式
请问如何将access中选中的几列导出成TXT中的几列?谢谢!

TA的精华主题

TA的得分主题

发表于 2013-5-14 13:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
'=====================================================
'函数名称: SQLExportToTxt
'功能描述: 根据SQL语句导出数据到记事本
'输入参数: strSQL     必选的。select选择性SQL语句
'                 FileName  可选。导出的记事本文件名
'                 Separator 可选。分隔符,可以是“,”、“|”、“;”、空格、制表符
'返回参数: 无
'使用示例: SQLExportToTxt "select * from 表名称/查询名称","导出数据.txt",","
'作      者: 金宇
'创建日期: 2012-8-19
'=====================================================
Public Function SQLExportToTxt(ByVal strSQL As String, ByVal FileName As String, ByVal Separator As Variant)
On Error GoTo Err_ExportToTxt
     Dim intI            As Integer
     Dim intMsgResult    As VbMsgBoxResult
     Dim rstCount        As Long
     Dim rst                  As Adodb.Recordset
     Dim FileNumber    As Integer
     Dim sText              As String
     Dim I As Long

    rstCount = CurrentProject.Connection.Execute("select count(*) from (" & strSQL & ") as temp_A")(0).Value  '取总的记录数
    If rstCount = 0 Then
         MsgBox ("没有数据可导出!"), vbExclamation, "提示"
         Exit Function
     End If

    If Trim$(FileName) = "" Then FileName = "导出的数据.txt"
     If Not FileName Like "*.txt" Then
         FileName = FileName & ".txt"
     End If
     
     If Not (FileName Like "[A-z]:\*" or FileName Like "\\*") Then
         With Application.FileDialog(2)
             .InitialFileName = FileName
             .AllowMultiSelect = False
             If .Show Then
                 FileName = .SelectedItems(1)
             Else
                 Exit Function
             End If
         End With
     End If
     
     '如果txt文件已存在,则先删除
    If Dir(FileName) <> "" Then Kill FileName
     Set rst = New Adodb.Recordset
     rst.Open strSQL, CurrentProject.Connection, 1, 1
     FileNumber = FreeFile                   ' Get unused file number
     Open FileName For Append As #FileNumber    ' Connect to the file

    Do While Not rst.EOF
         sText = ""
         For intI = 0 To rst.Fields.Count - 1
             sText = sText & rst.Fields(intI) & Separator
         Next
         sText = Left(sText, Len(sText) - 1)
         Print #FileNumber, sText                ' Append our string
     rst.MoveNext
     Loop
     rst.Close
     Close #FileNumber                       ' Close the file

    intMsgResult = MsgBox("数据已导出,是否打开并查看?", vbQuestion + vbYesNo)
     If intMsgResult = vbYes Then ShellEx (FileName)    '打开文件
   
Exit_ExportToTxt:
     On Error Resume Next
     DoCmd.Hourglass False
     Exit Function

Err_ExportToTxt:
     If Err = 70 Then
         MsgBox "无法删除文件 '" & FileName & "',可能该文件已被打开或没有权限。", vbCritical
     Else
         MsgBox Err.Source & " #" & Err & vbCrLf & vbCrLf & Err.Description, vbCritical
     End If
     Resume Exit_ExportToTxt
End Function

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-5-14 16:49 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-31 05:09 , Processed in 1.018294 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表