| | | | | Read and Write Blobs
| Storing images, documents and other files as blobs offers an efficient and portable alternative to OLE Embedding. Using the code below you can store any type of file as a blob, or extract a blob back to an identical disk file. Usage Example: The following examples show how you can use the FileToBlob and BlobToFile functions in a form. The form's record source includes a field named 'Image' of type 'OLE Object'. The implementation of FileToBlob and BlobToFile (below the line) should be placed in a module.
'Read the file 'Image-In.jpg' into the field named 'Image'. FileToBlob "C:\Photos\Image-In.jpg", [Image] 'Extract the file contained in the field named 'Image' to a file named 'Image-Out.jpg'. BlobToFile "C:\Photos\Image-Out.jpg", [Image] |
'Function: BlobToFile - Extracts the data in a binary field to a disk file. 'Parameter: strFile - Full path and filename of the destination file. 'Parameter: Field - The field containing the blob. 'Return: The length of the data extracted. Public Function BlobToFile(strFile As String, ByRef Field As Object) As Long On Error GoTo BlobToFileError Dim nFileNum As Integer Dim abytData() As Byte BlobToFile = 0 nFileNum = FreeFile Open strFile For Binary Access Write As nFileNum abytData = Field Put #nFileNum, , abytData BlobToFile = LOF(nFileNum) BlobToFileExit: If nFileNum > 0 Then Close nFileNum Exit Function BlobToFileError: MsgBox "Error " & err.Number & ": " & err.Description, vbCritical, _ "Error writing file in BlobToFile" BlobToFile = 0 Resume BlobToFileExit End Function 'Function: FileToBlob - Loads a file into a binary field. 'Parameter: strFile - Full path and filename of the source file. 'Parameter: Field - The binary field into which the file is to be loaded. Public Function FileToBlob(strFile As String, ByRef Field As Object) On Error GoTo FileToBlobError If Len(Dir(strFile)) > 0 Then Dim nFileNum As Integer Dim byteData() As Byte nFileNum = FreeFile() Open strFile For Binary Access Read As nFileNum If LOF(nFileNum) > 0 Then ReDim byteData(1 To LOF(nFileNum)) Get #nFileNum, , byteData Field = byteData End If Else MsgBox "Error: File not found", vbCritical, _ "Error reading file in FileToBlob" End If FileToBlobExit: If nFileNum > 0 Then Close nFileNum Exit Function FileToBlobError: MsgBox "Error " & err.Number & ": " & err.Description, vbCritical, _ "Error reading file in FileToBlob" Resume FileToBlobExit End Function
|
Related Articles
How to display the Common 'File-Open' Dialog to Choose a File
Imaging for Access that's Easy, Efficient & Fast
| NO OLE Bloat | NO App Dependencies | NO Complex Coding | NO Performance Penalty |
| | | Read More
|
|
Microsoft and the Office logo are trademarks or registered trademarks of Microsoft Corporation in the United States and/or other countries. |
| |
|
|