设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1862|回复: 4
打印 上一主题 下一主题

[宏/菜单/工具栏] 用VBA导入Txt文件,第一个文件正常,第二个开始错误?

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2010-12-18 13:24:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我编写了一段VBA,将Txt文件批量导入Access,当数据量小的时候正常。但是当数据量一大,如下图:


代码运行到第二个文件导入就会出现如下错误提示。不知道为何


奇怪的是Access数据库关闭重新打开,并导入刚才出错文件,又能正常导入,但是到第二个文件又是上述错误。

本人代码如下:
Private Sub 导入()
    Dim FileCount%, sPath$
    Dim ArrTempName
    Dim ArrFile
    With Application.FileDialog(msoFileDialogOpen)
        .Filters.Add "文本文件", "*.txt", 1
        If .Show = -1 Then
            t = Timer
            FileCount = .SelectedItems.Count
            sPath = .InitialFileName
            If FileCount < 2 Then
                MsgBox "至少选择两个以上文件"
                Exit Sub
            End If
            ReDim ArrFile(1 To FileCount)
            ReDim ArrTempName(1 To FileCount)
            For i = 1 To FileCount
                ArrFile(i) = .SelectedItems(i)
                ArrFile(i) = Mid(ArrFile(i), InStrRev(ArrFile(i), "\") + 1)
                Mid(ArrFile(i), Len(ArrFile(i)) - 3, 1) = "#"
                ArrTempName(i) = Left(ArrFile(i), Len(ArrFile(i)) - 4)
                ArrTempName(i) = Replace(ArrTempName(i), "-", "")
            Next i
        Else
            MsgBox "未选择任何文件"
            Exit Sub
        End If
    End With
    With CurrentDb
        For i = 1 To FileCount

            On Error Resume Next
            .Execute "Drop Table " & ArrTempName(i)
            On Error GoTo 0
            '新建表
            .Execute "Create Table " & ArrTempName(i) & " (F1 INTEGER)"
            '导入数据
            .Execute "insert into " & ArrTempName(i) & "(F1) select F1 from [Text;HDR=NO;DATABASE=" & sPath & "].[" & ArrFile(i) & "]"
        Next i
    End With
    MsgBox Timer - t
End Sub
请高手指点

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
 楼主| 发表于 2010-12-18 13:26:50 | 只看该作者
在2003和2010中都出现这样的问题。

点击这里给我发消息

3#
发表于 2010-12-18 14:40:56 | 只看该作者
代码看不出有什么问题
4#
发表于 2010-12-18 15:42:37 | 只看该作者
取消On Error 的代码,看那里出错

点击这里给我发消息

5#
 楼主| 发表于 2010-12-20 08:18:20 | 只看该作者
.Execute "insert into " & ArrTempName(i) & "(F1) select F1 from [Text;HDR=NO;DATABASE=" & sPath & "].[" & ArrFile(i) & "]"

就是这一句出错。在导入第二个文本时就会出错。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-6-8 17:40 , Processed in 0.100313 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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