【问题标题】:Downloading HTML Table into MS Access将 HTML 表格下载到 MS Access
【发布时间】:2015-08-23 05:43:28
【问题描述】:

我正在尝试将表从以下链接导入我的数据库: 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 是多余的顺便说一句)你应该编辑并显示错误发生的位置
  • @AlexK。我的下载没有问题 - 当我尝试将我的数据库链接到下载的 HTML 时,我收到错误
  • 与此相关:link
  • @Gustav 我也问过这个问题;它们是分开的,因为错误不同。

标签: php html vba ms-access


【解决方案1】:

我尝试以这种方式下载 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-19
    • 1970-01-01
    • 2014-04-08
    • 1970-01-01
    • 1970-01-01
    • 2019-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多