Displaying OLE Object images in an Access database form

Posted on 2014-02-04
Medium Priority
Last Modified: 2014-02-05
I've been wrangling with this for several days, and now I feel like I'm going in circles.

I have a table in a temporarily inherited Access 2007 database, which contains basic employee details and a PhotoField which stores a photo of each employee as an OLE Object.

As it currently stands the PhotoField is currently populated by 3rd party software used for making ID Badges for the employees.

Now I'm needing to have a bound form in the database, which displays the employee details including the photo.

Unfortunately it is not stored in the standard bitmap format that a bound object frame will happily display on a bound form with the rest of the information, so comes up blank. I've also been unable to get the object into an image control (successful only in linking an external file using the Picture property)

I have written a basic VB.Net application which is using a bound PictureBox control which  recognises and displays the images correctly, so I gather it is stored in an image format not too alien.

Before I go further, I need to say I realise the stupidity of storing these images as OLE Objects when they should be created as files separately and then linked to an image object in the form. That VB.Net application I built is able to export the OLE Objects as jpg's for that very reason.

However, the limited nature of the 3rd Party software which will only store and retrieve the pictures from OLE Objects in that table (for the sake of retrieving data to print the ID Badges), as well as certain politics limiting changing business processes and building a more flexible system, ties my hands somewhat. The common solution provided of exporting those images as files linked to the database aren't applicable unless it can be automated within the database itself (A third application designed for the sake of exporting those images regularly isn't really feasible, especially since when I'm done I will have to hand this back to an overseas office to manage for themselves).

What I guess would be ideal is something equivalent to the .Net PictureBox control that can be found within Access 2007, or added as an ActiveX control, so that it can display the OLE Object visually in an Access Form. Alternatively a means of using the image control to display a non-bitmap image stored within a database table.

Before you throw me a link to Stephen Leban's website, I've already looked through it without much success. I may have missed something on it, so I'm happy to review   relevant code/examples there that you can point me if you have specific details.

Question by:AngusT
LVL 15

Expert Comment

ID: 39834678
As this is an OLE Object, you should user an OLE Object control on your application to show it (no bitmap). Also you will have the 3rd party software installed because OLE Object means an object of this kind of file.

If installing 3rd party on all computers that use your application is a problem, another option is to migrate all the ole objects to images.

Hope it helps.
LVL 19

Expert Comment

ID: 39834728
Hello AngusT,

If you open the table in Datasheet View, what are the values you see under PhotoField? Is it Package or Bitmap Image?


LVL 86
ID: 39835368
What image format is used for the picture (i.e. png, jpg, etc)? Office installs some (but not all) "graphic filters" by default, and if it's not a support image type it won't display. I believe only .bmp and .dib types are supported, unless you've installed other filters.

This is for 2003, but would be relevant for any version of Access:


Also see this regarding specifics on 2007/2010:

Easily Design & Build Your Next Website

Squarespace’s all-in-one platform gives you everything you need to express yourself creatively online, whether it is with a domain, website, or online store. Get started with your free trial today, and when ready, take 10% off your first purchase with offer code 'EXPERTS'.

LVL 59

Accepted Solution

Jim Dettman (Microsoft MVP/ EE MVE) earned 1500 total points
ID: 39835397
<<As it currently stands the PhotoField is currently populated by 3rd party software used for making ID Badges for the employees. >>

Really the problem is your 3rd party software.  It's probably doing something with the image to get around the old OLE bloat problem, which Access now can do on it's own.

 So as Scott said, the first thing is to understand what format the data is saved in, then either using a bound OLE control, or an image control.

 As an aside, you might want to look at:


 which is the control of choice for dealing with images in Access.


Author Comment

ID: 39837831
In the datasheet it says 'Long Binary Data', so essentially stored as a BLOB.

The problem is that I don't know what format the data is, but is something recognised by the generic Picturebox Control in .NET applications, so it probably isn't something non-standard...but something that Access doesn't natively recognise. Unlikely to be a bitmap.

I've been through the documentation of the 3rd party software on the possible format of the image, but it gives no clue. It is really just a user and administration guide. I've emailed the customer support in the USA (we have no support contract) to find out, but as yet had no response.

If it is just making a blob from the image that is chosen then it is feasible that it is a jpg, since that is the source photo format. If I choose a bitmap to import, I might see how that works when I can (public holiday in New Zealand and so I can't remote in from Australia to check for another 24 hours).

Any idea if Access can identify a bitmap in a blob if it isn't explicitly told it is?

Thanks for the link. I'll take a look at the DBPix evaluation and might be able figure something out.

Author Comment

ID: 39837864
Judging by the links above, it seems to confirm my suspicions that Long Binary Data isn't going to be recognised by any of the standard controls in Access as an image.

However, DBPix works perfectly! Used as a bound control, similar to PictureBox, which displays the PhotoField as an image it worked without a hitch.

Now the real work begins to convince someone to pay the $350 for the license (Aussie & NZ office fighting over who's cost centre it is going under, but thats not a technical problem. :)

Thanks everyone.

Author Closing Comment

ID: 39837868
It isn't a solution in itself if you aren't able to, or aren't willing to, pay for the DBPix control, but it does solve the problem of one of the shortcomings of Access.

Featured Post

Get 10% Off Your First Squarespace Website

Ready to showcase your work, publish content or promote your business online? With Squarespace’s award-winning templates and 24/7 customer service, getting started is simple. Head to Squarespace.com and use offer code ‘EXPERTS’ to get 10% off your first purchase.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

This article shows how to get a list of available printers for display in a drop-down list, and then to use the selected printer to print an Access report or a Word document filled with Access data, using different syntax as needed for working with …
Beware when using the ListIndex and the Column() properties of a listbox in Access 2007.  A bug has been identified in the Access 2007 listbox code which can cause the .ListIndex property to return a -1, and the .Columns(#) property to return a NULL…
With Microsoft Access, learn how to start a database in different ways and produce different start-up actions allowing you to use a single database to perform multiple tasks. Specify a start-up form through options: Specify an Autoexec macro: Us…
Have you created a query with information for a calendar? ... and then, abra-cadabra, the calendar is done?! I am going to show you how to make that happen. Visualize your data!  ... really see it To use the code to create a calendar from a q…

621 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question