→ This article refers to SQL Blob Viewer, which has now been renamed to SQL Image Viewer. The techniques described in this blog is still applicable, as the functionality of the product remains the same. Only the name has changed.
Using OLE Object column types, there are 3 ways you can store images and files in a Microsoft Access database, or in a database (e.g. SQL Server) used by a Microsoft Access front-end.
Embedding involves creating the image/file directly using the associated OLE Server application. For example, if I chose to embed a bitmap image, Access will open Paint for me to create my bitmap image, and save that image into that field.
- insert from a file
If you already have the image/file you want to store in your database, you can insert the file into your Access database directly using the ‘Create from File’ option. Access then copies the file into the field.
- link to a file
Similar to the above, but this time, the image/file is not stored in the database. Access just creates a link to the external file, much like a hyperlink in your browser.
If you store your images/files using the first 2 methods, then Microsoft Access adds additional data to your image/file, so that it knows which application to use to open that particular image/file. This means that if you extracted the data from your database, it will appear different from your original file.
For example, let’s insert an image into an OLE Object field. The image file is 18.7 Kb in size.
Once inserted into the Access database, the size has increased to 19.192 Kb.
The increase is due to the additional data added by Access. If you now extract the data as is from the database, it cannot be opened by Paint because of the additional data. The PNG data is preceded by OLE headers.
This is a common issue faced by Microsoft Access users – when they want to extract images and files from OLE Object fields to their original format, there isn’t a way they can do this easily. Every image/file has been modified by Access. You have to open each image/file in Access, then save the item to disk manually.
This is the reason we created Access OLE Export. In just 4 simple steps, Access OLE Export will extract and export your embedded images and files to disk, stripping out the additional data added by Access. This means that the exported images and files can be opened ‘normally’, using the appropriate application.
If you require more control over what is exported, SQL Blob Viewer is another option. SQL Blob Viewer allows you to inspect your data before exporting them, but requires that you be able to write SQL commands.
There may be situations where both products are unable to identify embedded images correctly. This may be because the registered OLE Server for that content type is not yet supported. In these cases, send us (at firstname.lastname@example.org) a sample of the embedded data, and we will add support for that OLE server type.