从新创建的文本文件(从URL)导入MS访问

时间:2014-06-19 15:39:15

标签: ms-access access-vba

首先,一些背景。我有一个带有模块的Excel电子表格,该模块使用网站上的一段javascript从网站生成的文本文件中导入数据。

Set Datasheet = Worksheets("Datasheet")
...    
Set qtQtrResults = Datasheet.QueryTables _
   .Add(Connection:=URL, Destination:=Datasheet.Cells(1, 1))
   With qtQtrResults
        .WebFormatting = xlNone
        .WebSelectionType = xlSpecifiedTables
        .WebTables = "1,2"
        .Refresh

网址转到" site.com/download.jsp?登录= abc& search = 123"在浏览器中访问时,会创建一个文本文件,下载到浏览器的默认下载目录。

我的问题是我需要在Access中复制此功能,将此文本文件中的数据导入现有表。

任何人都可以提供解决方案(除了使用excel)吗?

1 个答案:

答案 0 :(得分:0)

我刚刚测试了以下内容,它在Access 2010中对我有用:

Option Compare Database
Option Explicit

Sub DownloadCsvFromWeb()
    Dim httpReq As Object, stm As Object

    Set stm = CreateObject("ADODB.Stream")
    stm.Type = 2  ' adTypeText
    stm.Open

    Set httpReq = CreateObject("MSXML2.ServerXMLHTTP")
    httpReq.Open _
            "GET", _
            "http://www.example.com/downloads/gord/test.csv", _
            False
    httpReq.Send

    stm.WriteText httpReq.responseText
    stm.SaveToFile _
            "C:\Users\Gord\Desktop\test.csv", _
            2  ' adSaveCreateOverWrite

    stm.Close
    Set stm = Nothing
    Set httpReq = Nothing
End Sub

将文件保存到磁盘(在我的桌面上,在本例中)。然后,代码可以继续使用DoCmd.TransferText将数据导入Access表。