I have an Image Control, where the Control Source is set to the database image name column, which works fine for JPEG files with a .jpg file extension, but not working for JPEG files with a .jpeg extension. If I rename the JPEG files from .jpeg to .jpg and at the same time change the extension in the database filename from .jpeg to .jpg it works like a charm. This is not durable in a production environment, so I would really appreciate it if anyone has a workaround for this problem. I am running MS Access 2019 on a Windows 10 platform.
CodePudding user response:
My solution: A bash file and a crontab job running every 10 minutes. The bash file copies, transfer and rename the extensions of new files. I made an extra column in my query called "new_bill_Url_location", and stripped the "jpeg" extension and added a "jpg' extension, files with a jpg extension are left as they are. The code for the query column is:
new_bill_Url_location: IIf(Right([bill_Url_location],4)="jpeg", Left(bill_Url_location, Len(bill_Url_location) - 4) & "jpg",[bill_Url_location])
CodePudding user response:
You may be able to use the simple technique demonstrated in my project
This is the core function and the typical usage (in-line comments):
' 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
Dim Ext As String
Dim Path As String
Dim 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