Yikes, that code post is yucky. I took a shot at indenting it for anyone who cares. It may not be 100% correct:
Code:
'Download (picture) file from a URL of a hyperlink field to a' (temporary) folder, and return the full path to the downloaded file.
'This can be used as the control source for a bound picture control. If no Folder is specified, the user's IE cache folder is used.
'Typical usage in the RecordSource for a form or report where Id is the unique ID and Url is the hyperlink field holding the URL to
'the picture file to be displayed: - to a cached file where parameter Id is not used:
'Select *, UrlContent(0, [Url]) As Path From SomeTable;
' - or, where Id is used to create the local file name:
' Select *, UrlContent([Id], [Url], "d:\somefolder") As Path From SomeTable;
' Then, set ControlSource of the bound picture control to:
' Path 2017-05-28. Gustav Brock, Cactus Data ApS, CPH.
Public Function UrlContent(ByVal Id As Long, ByVal Url As String, Optional ByVal Folder As String) As Variant
Const NoError As Long = 0
Const Dot As String = "."
Const BackSlash As String = "\"
Dim Address As String, Ext As String, Path As String, Result As String
'Strip leading and trailing octothorpes from URL string.
Address = HyperlinkPart(Url, acAddress)
'If Address is a zero-length string, Url was not wrapped in octothorpes.
If Address = "" Then ' Use Url as is.
Address = Url
End If
If Folder = "" Then
' Import to IE cache.
Result = DownloadCacheFile(Address)
Else
If Right(Folder, 1) <> BackSlash Then
' Append a backslash.
Folder = Folder & BackSlash
End If
'Retrieve extension of file name.
Ext = StrReverse(Split(StrReverse(Address), Dot)(0))
' Build full path for downloaded file.
Path = Folder & CStr(Id) & Dot & Ext
If DownloadFile(Address, Path) = NoError Then
Result = Path
End If
End If
UrlContent = Result
End Function