将HTML表格下载到MS Access

4
我想将以下链接中的表格导入到我的数据库中: http://www.abif.cl/tasas.php?tipo=5 我尝试通过使用VBA将页面下载为HTML文件并保存到目录中,然后创建一个链接表来完成此操作。
当我在Chrome中手动下载时,使用“另存为”下的“下载完整网页”选项时,这个方法可以完美地运行。
但是,当我使用VBA下载网页时,尝试链接表时会出现“保留错误(-5016)”的错误提示。
澄清:该错误不会在我尝试将页面下载为HTML时发生;而是在我尝试将表格链接到已下载的HTML时发生(如果HTML是通过浏览器手动下载的,则不会出现此错误)。
以下是我用于下载HTML的VBA代码:
Option Compare Database

Option Explicit

Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" ( _
    ByVal pCaller As Long, _
    ByVal szURL As String, _
    ByVal szFileName As String, _
    ByVal dwReserved As Long, _
    ByVal lpfnCB As Long) _
    As Long

Public Function DownloadFile( _
    ByVal strURL As String, _
    ByVal strLocalFilename As String) _
    As Long

    Dim lngRetVal As Long

    lngRetVal = URLDownloadToFile(0, strURL & vbNullChar, strLocalFilename & vbNullChar, 0, 0)

    DownloadFile = lngRetVal

End Function

请告诉我是否还有其他需要提供的信息!也许有一种方法可以在VBA中下载“完整网页”吗?
谢谢!

下载功能正常(顺便说一句,& vbnullchar 是多余的),您应该编辑并显示错误发生的位置。 - Alex K.
@AlexK。我下载没有遇到任何问题 - 当我尝试将我的数据库链接到下载的HTML时,出现了错误。 - ar1994
与此相关:链接 - Gustav
@Gustav 我也问过那个问题;它们是分开的,因为错误不同。 - ar1994
1个回答

0

我尝试以这种方式下载HTML,结果它奏效了。这绝不是一种优雅的解决方案,我仍然乐意听取任何建议,以了解为什么我会遇到错误/如何修复它。谢谢。

Public Function SaveHTML(strURL As String, strOutFile As String)

Dim IE As Object
Dim i As Long
Dim FF As Integer


Set IE = CreateObject("Internetexplorer.Application")
IE.Visible = False
IE.Navigate strURL
Do
Loop While IE.Busy

'Creates a file as specified
' this will overwrite an existing file if already exists
CreateObject("Scripting.FileSystemObject").CreateTextFile strOutFile

FF = FreeFile
Open strOutFile For Output As #FF

With IE.Document.Body
    Print #FF, .OuterHtml & .InnerHtml
End With

Close #FF

IE.Quit
'Set IE = Nothing

End Function

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接