UrlDownloadToFile в Access 2010 — подпрограмма или функция не определена

Я пытаюсь использовать функцию URLDownloadToFile в коде Access 2010 VBA. Когда я запускаю код, он говорит мне, что URLDownloadToFile не определен.

Я читал, что эта функция находится в urlmon.dll, который ДЕЙСТВИТЕЛЬНО есть на моем компьютере. Я попытался нажать кнопку ссылок в редакторе кода и загрузить его, но он не позволил мне этого сделать.

Как я могу исправить это, чтобы я мог использовать функцию? Или есть другая функция, которая позволит мне загрузить URL-адрес в файл?


person danjfoley    schedule 03.10.2014    source источник
comment
Вам понадобится Declare эту функцию в модуле.   -  person David Zemens    schedule 04.10.2014


Ответы (1)


Вам нужно будет объявить эту функцию WinAPI, чтобы вызывать ее из процедур в вашем коде.

Из ЗДЕСЬ

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
person David Zemens    schedule 03.10.2014
comment
Это работает! Спасибо .. Однако кажется, что функция URLDownloadToFile сообщит об успехе, даже если URL-адрес не существует! Как я могу поставить там какую-то проверку или заставить ее дать мне неуспешный результат, если она ничего не загрузила. - person danjfoley; 04.10.2014
comment
Мне кажется обратным то, что функция сообщит об успехе, если ничего не загрузит, потому что URL-адрес не существует. - person danjfoley; 04.10.2014
comment
Вам придется добавить еще одну проверку, чтобы увидеть, существует ли целевой файл (LocalFileName). Я сделаю быстрый пересмотр, но если это ответило на ваш вопрос, пожалуйста, рассмотрите вопрос о том, чтобы проголосовать за него или принять его. - person David Zemens; 04.10.2014
comment
Конечно, есть и другие способы обработки tihs, во-первых, путем запроса URL-адреса перед передачей его функции и т. д. Вышеупомянутый в основном хак - он не может определить, является ли URL-адрес недействительным, он только пытается определить, существует ли файл по указанному LocalFileName пути. - person David Zemens; 04.10.2014