You can use 'OLE Embedding' ('Insert Object' command, or Bound OLE Frame), but this is the cause of a wide
range of common problems, especially with JPEG. There can be a storage overhead of anything up to 200
*times* the original file size, so you can hit the Access size limit with just a few hundred pictures,
not to mention the huge performance hit. There are also configuration issues – all users need to maintain
an identical setup of graphics applications and file registrations, and if a user installs some new graphics
application the database can stop working (as far as the pictures are concerned, anyway). In fact, installing
Office 2003 will remove the necessary 'OLE Server' application that is used to display JPEG and certain
other formats. Also, the data is stored in a proprietary fashion, so it cannot be used in other applications
or front-ends or extracted back to a JPEG file without quality loss (and loss of metadata, if present).
The 'OLE Linking' option suffers most of the same problems, including the huge overhead.
If you need to store the image in a table field then you should use 'raw-binary' (blob) storage. This
avoids all of these issues, and the images will require only as much space as they would as disk files.
Implementing this is rather complex (unless you use a third-party component, in which case it’s just like
using numeric or text controls and fields), but more info on the subject including links to various solutions
is available here:
http://www.ammara.com/articles/accesspictureole.html