views:

1723

answers:

5

I've got an MS-Access app (1/10th MS-Acccess, 9/10ths MS-SQL) that needs to display photographs of some assets along with their specifications. Currently the images are stored in an MS-Access table as an OLE Object (and copy-n-pasted into the field by the users).

For various reasons, I would like to do is store the original .jpgs in a folder on the network drive, and reference them from the application portion. I have considered moving into MS-SQL's image data type (and its replacement varbinary), but I think my user population will more easily grasp the concept of the network folder.

How can I get MS Access to display the contents of a .jpg?

A: 

The easiest way is probably to plop an Internet Explorer onto one of your forms. Check out this site: http://www.acky.net/tutorials/vb/wbrowser/

Since you can reference that object in Access, you will only need to point the webbrowser control to the path of the .jpg (NavigateTo() if I remember correctly).

EDIT: The above link was just googled and picked from the results (first one that opened quickly). I do not think it is a very good tutorial, it just has all the pointers you need... Check out msdn etc. if you need more information!

Daren Thomas
+4  A: 

Another option is to put an image control on your form. There is a property of that control (Picture) that is simply the path to the image. Here is a short example in VBA of how you might use it.

txtPhoto would be a text box bound to the database field with the path to the image imgPicture is the image control The example is a click event for a button that would advance to the next record.

Private Sub cmdNextClick()
    DoCmd.GoToRecord , , acNext
    txtPhoto.SetFocus
    imgPicture.Picture = txtPhoto.Text
    Exit Sub
End Sub
WaterBoy
+2  A: 

I found that this article by Microsoft with full VBA worked very well for me.

How to display images from a folder in a form, a report, or a data access page

Remou
+2  A: 

Have you looked at Stephen Lebans' solutions? Here's one:

Image Class Module for Access

Check out the list of other great code along the left-hand side of that web page. You may find something that fully matches what you need.

David-W-Fenton
A: 

You can try an ActiveX control called AccessImagine, makes adding images to database more convenient - you can load from file, scan, paste from buffer or drag-n-drop. You can crop image right inside the database and resample it automatically. It handles external image storage automatically if you need it.