【问题标题】:UrlDownloadToFile in Access 2010 - Sub or Function not DefinedAccess 2010 中的 UrlDownloadToFile - 未定义子或函数
【发布时间】:2014-11-28 22:40:31
【问题描述】:

我正在尝试在 Access 2010 VBA 代码中使用 URLDownloadToFile 函数。当我运行代码时,它告诉我 URLDownloadToFile 没有定义。

我已经读到这个函数在我电脑上的 urlmon.dll 中。我试图单击代码编辑器中的引用按钮并加载它,但它不允许我这样做。

我该如何解决这个问题,以便我可以使用该功能?还是有其他功能可以让我下载文件的 url?

【问题讨论】:

  • 你需要在一个模块中Declare这个函数。

标签: ms-access vba ms-access-2010


【解决方案1】:

您需要声明此 WinAPI 函数才能从代码中的过程调用它。

来自HERE

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(URL As String, LocalFilename As String) As Boolean
Dim lngRetVal As Long
lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
If lngRetVal = 0 Then 
    If Dir(LocalFileName) <> vbNullString Then 
        DownloadFile = True
    End If
End If
End Function

Private Sub Form_Load()
If Not DownloadFile("http://www.ex-designz.net", "c:\\photogallery.asp") Then
    MsgBox "Unable to download the file, or the source URL doesn't exist."
End If
End Sub

【讨论】:

  • 这行得通!谢谢.. 但是,即使 url 不存在,URLDownloadToFile 函数似乎也会报告成功!如果它没有下载任何东西,我怎样才能在那里进行一些检查,或者让它给我一个不成功的结果。
  • 在我看来,如果由于 url 不存在而没有下载任何内容,函数会报告成功。
  • 您必须添加另一个检查以查看目标文件 (LocalFileName) 是否存在。我会快速修改一下,但如果这已经回答了您的问题,请考虑支持或接受它。
  • 当然,还有其他方法可以处理 tihs,首先通过查询 URL 将其传递给函数等。上面基本上是一个 hack——它可以t判断URL是否无效,只尝试判断指定LocalFileName路径下是否存在文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-26
  • 1970-01-01
  • 2019-01-08
  • 1970-01-01
  • 1970-01-01
  • 2011-06-04
相关资源
最近更新 更多