首先,一些背景。我有一个带有模块的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)吗?
答案 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表。