If you are storing the images as Binary Large Objects in an OLE field in your database, you can use the below to retrieve the info and write it to a file, and then use Word VBA to insert the file as an image:
Code:
' PURPOSE:
' Writes BLOB (Binary Large Object) information stored in the specified table and field to the specified disk file.
' PREREQUISITES:
' The specified table with the OLE object field containing the binary data must be opened in Visual Basic code and the correct record navigated to prior to calling the WriteBLOB() function.
Function WriteBLOB(rstData As Recordset, strField As String, strDest As String) As Long
Dim intNumBlocks As Integer
Dim intDestFile As Integer
Dim i As Integer
Dim lngFileLength As Long
Dim lngLeftOver As Long
Dim strFileData As String
Dim varRetVal As Variant
On Error GoTo Err_WriteBLOB
' Get the size of the field.
10: lngFileLength = rstData.Fields(strField).FieldSize
20: If lngFileLength = 0 Then
30: WriteBLOB = 0
40: Exit Function
50: End If
' Calculate number of blocks to write and leftover bytes.
60: intNumBlocks = lngFileLength \ BlockSize
70: lngLeftOver = lngFileLength Mod BlockSize
' Remove any existing destination file.
80: intDestFile = FreeFile
90: Open strDest For Output As intDestFile
100: Close intDestFile
' Open the destination file.
110: Open strDest For Binary As intDestFile
' SysCmd is used to manipulate the status bar meter.
120: varRetVal = SysCmd(acSysCmdInitMeter, "Writing BLOB", lngFileLength / 1000)
' Write the leftover data to the output file.
130: strFileData = rstData.Fields(strField).GetChunk(0, lngLeftOver)
140: Put intDestFile, , strFileData
' Update the status bar meter.
150: varRetVal = SysCmd(acSysCmdUpdateMeter, lngLeftOver / 1000)
' Write the remaining blocks of data to the output file.
160: For i = 1 To intNumBlocks
' Reads a chunk and writes it to output file.
170: strFileData = rstData.Fields(strField).GetChunk((i - 1) * BlockSize + lngLeftOver, BlockSize)
180: Put intDestFile, , strFileData
190: varRetVal = SysCmd(acSysCmdUpdateMeter, ((i - 1) * BlockSize + lngLeftOver) / 1000)
200: Next i
' Terminates function
210: varRetVal = SysCmd(acSysCmdRemoveMeter)
220: Close intDestFile
230: WriteBLOB = lngFileLength
240: Exit Function
Err_WriteBLOB:
250: WriteBLOB = -Err
260: Exit Function
End Function