In Microsoft Access, OLE Object fields can store data such as Microsoft Word or Microsoft Excel documents, pictures, sound, and other types of binary data that are created in other programs. This article provides the Visual Basic code that uses an OLE control and the CreateEmbed method to store a bitmap file in an Access OLE Object field.
The advantage of using this technique is that the data is stored in the Access OLE Object format. Thus, a user who opens the database in Access and double-clicks on the item will find that the appropriate container for the data is automatically started. If you place the data into a field without using of the below-mentioned method, it is stored as "Long Binary" data in Access, and the appropriate container for the data is not started when a user double-clicks the item in Access.
The following example demonstrates how a bitmap file is stored in the OLE Object field of an Access table using Visual Basic.
For testing purposes, create a database named db1.mdb and a table named MyOLETest in Access. The MyOLETest table structure is as follows:
AutoNumber (Primary Key)
Save db1.mdb in the C:\TEMP\ folder.
Create a new Standard EXE project in Visual Basic. Form1 is created by default.
Place a CommandButton, Command1, and a Data Control, Data1 on Form1.
Add an OLE control, OLE1, to Form1. Click Cancel in the Insert Object window.
Using the following table as a guide, set the properties of the newly added controls:
Double-click Command1, and then paste the following code into the Command1 Code window:
Data1.Recordset.AddNewOLE1.CreateEmbed "C:\Windows\Circles.bmp"' Assume the bitmap file is located at C:\Windows\ folder.Data1.Recordset.UpdateData1.Recordset.MoveLast
Start the program or press the F5 key. Click Command1 to add the Circles.bmp file to the MyOLETest Access table.
NOTE: The OLE Container control does not have to be visible to update the Access database with this method.