君语贤
时光静好,与君语;细水流年,与君同;繁华落尽,与君老...

实用小技巧>Access>正文

批量读取文件夹中的TXT文件到Access数据库

2023-06-25 17:39 君语贤Access批量读取数据库

使用access的VBA能力,批量读取文件夹中的TXT文件,将TXT的文件名读取写入到access的“文章”表的“标题”字段,将TXT的文件内容读取写入到access的“文章”表的“正文”字段,其中TXT的默认编码为UTF-8,操作步骤:

1、新建一个Access数据库文件,文件中创建“文章”表,设置“标题”、“正文”两个字段

批量读取文件夹中的TXT文件到Access数据库

2、打开“数据库工具”》"Visual Basic"

批量读取文件夹中的TXT文件到Access数据库

3、创建模块,并输入以下代码

批量读取文件夹中的TXT文件到Access数据库

Sub ImportTxtFilesToAccess()
    Dim strPath As String
    Dim strFile As String
    Dim strContent As String
    Dim objFSO As Object
    Dim objFolder As Object
    Dim objFile As Object
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim objStream As Object
    
    '设置文件夹路径
    strPath = "C:\TextFiles\"
    
    '创建文件系统对象
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    
    '获取文件夹对象
    Set objFolder = objFSO.GetFolder(strPath)
    
    '获取Access数据库对象
    Set db = CurrentDb()
    
    '获取文章表的记录集
    Set rs = db.OpenRecordset("文章", dbOpenTable)
    
    '遍历文件夹内的所有TXT文件
    For Each objFile In objFolder.Files
        If Right(objFile.Name, 3) = "txt" Then '检查文件后缀是否为TXT
            strFile = objFile.Name
            strContent = ""
            '读取文件内容
            Set objStream = CreateObject("ADODB.Stream")
            objStream.Charset = "UTF-8"
            objStream.Open
            objStream.LoadFromFile objFile.Path
            strContent = objStream.ReadText(-1) '指定编码方式为UTF-8
            objStream.Close
            
            rs.AddNew '新增一条记录
            rs!标题 = strFile '将文件名写入文章表的“标题”字段
            rs!正文 = strContent '将文件内容写入文章表的“正文”字段
            rs.Update '提交记录
        End If
    Next objFile
    
    '关闭记录集
    rs.Close
    Set rs = Nothing
    
    '关闭数据库对象
    db.Close
    Set db = Nothing
    
    '清空对象变量
    Set objFile = Nothing
    Set objFolder = Nothing
    Set objFSO = Nothing
    
    MsgBox "导入完成。"
End Sub

其中文件夹路径改为实际的路径即可。

4、运行创建好的VBA脚本

批量读取文件夹中的TXT文件到Access数据库

5、执行结果图

批量读取文件夹中的TXT文件到Access数据库

本文链接:https://www.weguiding.com/access/833.html