Hi Kerry
I use this routine to store Excel templates in a database. It should do for
bmps.
(ADO 2.5 or above)
Function WriteStream() As Boolean
'**************************************************************
' Creates a file from a copy stored in the database.
'**************************************************************
On Error GoTo Err_out
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim DataStream As ADODB.Stream
Dim strFileName As String
Dim sql As String
Dim ID As String
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
Set DataStream = New ADODB.Stream
Set cn = CurrentProject.Connection
ID = 0
strFileName = "C:\path\your file.bmp"
If Len(strFileName) <> 0 Then
sql = "SELECT ObjData FROM tblBINARY WHERE ID = 0"
rs.Open sql, cn, adOpenKeyset, adLockOptimistic
DataStream.Type = adTypeBinary
DataStream.Open
DataStream.Write rs.Fields("ObjData").Value
DataStream.SaveToFile strFileName, adSaveCreateOverWrite
rs.Close
cn.Close
WriteStream = True
Else
WriteStream = False
End If
Exit_out:
Exit Function
Err_out:
MsgBox Err.Description, vbCritical, "modFunctions - FWriteStream"
End Function
Function ReadStream() As Boolean
'******************************************
' Stores file in binary format in the database.
'******************************************
On Error GoTo Err_out
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim DataStream As ADODB.Stream
Dim strFileName As String
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
Set DataStream = New ADODB.Stream
Set cn = CurrentProject.Connection
DataStream.Type = adTypeBinary
DataStream.Open
strFileName = "C:\path\your file.bmp"
DataStream.LoadFromFile strFileName
rs.Open "SELECT * FROM tblBINARY WHERE ID = 0", cn, adOpenDynamic,
adLockOptimistic
With rs.Fields
!ObjData.Value = DataStream.Read
End With
rs.Update
rs.Close
cn.Close
ReadStream = True
Exit_out:
Exit Function
Err_out:
MsgBox Err.Description, vbCritical, "modFunctions - ReadStream"
End Function
Guy Fenn
(Victoria, B.C.)