By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,679 Members | 2,602 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,679 IT Pros & Developers. It's quick & easy.

"Long binary data" in Access db

P: n/a
I have an off-the-shelf app that uses an Access database as its
backend. One of the tables contains a field with an "OLE Object"
datatype. I'm writing some reports against this database, and I
believe this field contains data I need. When I view the table in
datasheet view, all I can see in this field is the string "Long
binary data".

So, I've got the problem of needing to extract data from this
field, but I don't know what format the data is in, or how the app
inserts data to begin with. If I can extract the binary data
intact, I may be able to pick it apart and find what I need. I'm
looking for a solution that lets me get at the data for the whole
table, so an export of the whole table including the binary data
would be fine.

I'm not a VB or ASP coder, but if code is needed for this I can
probably copy code samples and make simple modifications to suit my
task. Is there any hope of extracting this data?
Nov 13 '05 #1
Share this Question
Share on Google+
8 Replies


P: n/a
It depends whether the App inserted the data as an OLE object or simply
as data in some format.

Create a form bound to this table. Add a BOUND Object Frame control
bound to the OLE field in question.

Now open the form in Form view. If you can see the data and interact
with it then you have an OLE object.
Otherwise you just have binary data in an unknow format. Perhaps it is
simply an actual copy of a file, say a JPG image, copied in its
entirety. In this case you would simply save off the field data to a
temp disk file. As long as you know the proper file extension for this
data your issue is solved.

FInally, it could simply be a blob of private data used by the App in an
unknow format. Heres some code to copy the contents of the current
record displayed in a Bound Object Frame control to a disk file. If this
temp file contains Text only then you can view it in Wordpad etc. If it
is a mixture of data types then you will need a HEX editor to view the
data. There are many freeware/shareware HEX editors on the Web.

Just add a CommandButton control to the form you created as per the
above instructions.

Private Sub cmdSave_Click()
On Error GoTo Err_cmdSave_Click
Dim a() As Byte
Dim lTemp As Long
Dim sl As String
lTemp = LenB(Me.olePicture.Value)
ReDim a(0 To lTemp) ' should be -1
' Copy the contents of the OLE field to our byte array
a = Me.olePicture.Value
sl = "OLEfieldTest" & ".dat"
Open sl For Binary Access Write As #1
Put #1, , a
Close #1
Exit_cmdSave_Click:
Exit Sub
Err_cmdSave_Click:
MsgBox Err.Description
Resume Exit_cmdSave_Click
End Sub


--

HTH
Stephen Lebans
http://www.lebans.com
Access Code, Tips and Tricks
Please respond only to the newsgroups so everyone can benefit.
"Jerry" <le**********@nowhere.com> wrote in message
news:Xn**********************************@207.225. 159.6...
I have an off-the-shelf app that uses an Access database as its
backend. One of the tables contains a field with an "OLE Object"
datatype. I'm writing some reports against this database, and I
believe this field contains data I need. When I view the table in
datasheet view, all I can see in this field is the string "Long
binary data".

So, I've got the problem of needing to extract data from this
field, but I don't know what format the data is in, or how the app
inserts data to begin with. If I can extract the binary data
intact, I may be able to pick it apart and find what I need. I'm
looking for a solution that lets me get at the data for the whole
table, so an export of the whole table including the binary data
would be fine.

I'm not a VB or ASP coder, but if code is needed for this I can
probably copy code samples and make simple modifications to suit my
task. Is there any hope of extracting this data?


Nov 13 '05 #2

P: n/a
Hi Jerry,

Start by creating a form with a BoundObjectFrame bound to the OLE field.
This will usually let you see what the fields contain (typically in an
Access database they will contain something like an Excel workbook, an
image, or other application data, packaged with OLE header information
that often includes a preview image). If that's the case, the simplest
way to access the data within the object is to automate the
BoundObjectFrame; see e.g.:

ACC: How to Save a Copy of an Embedded MS Word Document
http://support.microsoft.com/id=?132003

ACC: Programmatically Link or Embed an Object in a Form (95/97)
http://support.microsoft.com/id=?158929
This article shows you how to programmatically link or embed an object
in an unbound object frame on a form by using the object frame
properties in Microsoft Access.

ACC2000: How to Embed a Bitmap Object in a Report at Run Time
http://support.microsoft.com/id=?198463
This article shows you how to use code to embed a bitmap image in a
report at run time. The example uses an image control instead of an OLE
object frame to store the bitmap. You can use Visual Basic for
Applications code to embed an OLE object into a...

ACC2000: How to Programmatically Link or Embed an Object on a Form
http://support.microsoft.com/id=?209990
This article shows you how to programmatically link or embed an object
in an unbound object frame on a form by using the object frame
properties in Microsoft Access.

How to embed a bitmap object in a report at run time in Access 2002
http://support.microsoft.com/id=?286459 - Explains how to use VBA code
to embed an OLE object into a control on a form at run time. You need to
se the Enabled property of the control to Yes and the Locked property to
No. In a report, you can embed bitmaps in an image control.

ACC2000: How to Embed a Bitmap Object in a Report at Run Time
http://support.microsoft.com/id=?198463
This article shows you how to use code to embed a bitmap image in a
report at run time. The example uses an image control instead of an OLE
object frame to store the bitmap. You can use Visual Basic for
Applications code to embed an OLE object into a

On Fri, 17 Jun 2005 17:47:42 GMT, Jerry <le**********@nowhere.com>
wrote:
I have an off-the-shelf app that uses an Access database as its
backend. One of the tables contains a field with an "OLE Object"
datatype. I'm writing some reports against this database, and I
believe this field contains data I need. When I view the table in
datasheet view, all I can see in this field is the string "Long
binary data".

So, I've got the problem of needing to extract data from this
field, but I don't know what format the data is in, or how the app
inserts data to begin with. If I can extract the binary data
intact, I may be able to pick it apart and find what I need. I'm
looking for a solution that lets me get at the data for the whole
table, so an export of the whole table including the binary data
would be fine.

I'm not a VB or ASP coder, but if code is needed for this I can
probably copy code samples and make simple modifications to suit my
task. Is there any hope of extracting this data?


--
John Nurick [Microsoft Access MVP]

Please respond in the newgroup and not by email.
Nov 13 '05 #3

P: n/a
Thanks, Stephen. That helps tremendously, and I think I'm on the
right track. I created the form as you suggested, but I can't see
the data. This suggests (as I suspected) that the data is probably
in some proprietary format. That's fine, if I can still get at it.
I have a good hex editor ready to pick this apart.

I tried adding the CommandButton control with the code you
graciously offered, but I get an error: "Compile error: Method or
data member not found" occurs on the line "lTemp = LenB
(Me.olePicture.Value)" (specifically, the debugger highlights the
".olePicture" bit). I assume this means I don't have some library
loaded, or something like that. Do you know how I can resolve
this?

"Stephen Lebans"
<Fo****************************************@linval id.com> wrote in
news:Mk*********************@ursa-nb00s0.nbnet.nb.ca:
It depends whether the App inserted the data as an OLE object or
simply as data in some format.

Create a form bound to this table. Add a BOUND Object Frame
control bound to the OLE field in question.

Now open the form in Form view. If you can see the data and
interact with it then you have an OLE object.
Otherwise you just have binary data in an unknow format. Perhaps
it is simply an actual copy of a file, say a JPG image, copied
in its entirety. In this case you would simply save off the
field data to a temp disk file. As long as you know the proper
file extension for this data your issue is solved.

FInally, it could simply be a blob of private data used by the
App in an unknow format. Heres some code to copy the contents of
the current record displayed in a Bound Object Frame control to
a disk file. If this temp file contains Text only then you can
view it in Wordpad etc. If it is a mixture of data types then
you will need a HEX editor to view the data. There are many
freeware/shareware HEX editors on the Web.

Just add a CommandButton control to the form you created as per
the
above instructions.

Private Sub cmdSave_Click()
On Error GoTo Err_cmdSave_Click
Dim a() As Byte
Dim lTemp As Long
Dim sl As String
lTemp = LenB(Me.olePicture.Value)
ReDim a(0 To lTemp) ' should be -1
' Copy the contents of the OLE field to our byte array
a = Me.olePicture.Value
sl = "OLEfieldTest" & ".dat"
Open sl For Binary Access Write As #1
Put #1, , a
Close #1
Exit_cmdSave_Click:
Exit Sub
Err_cmdSave_Click:
MsgBox Err.Description
Resume Exit_cmdSave_Click
End Sub


--

HTH
Stephen Lebans
http://www.lebans.com
Access Code, Tips and Tricks
Please respond only to the newsgroups so everyone can benefit.
"Jerry" <le**********@nowhere.com> wrote in message
news:Xn**********************************@207.225. 159.6...
I have an off-the-shelf app that uses an Access database as its
backend. One of the tables contains a field with an "OLE
Object" datatype. I'm writing some reports against this
database, and I believe this field contains data I need. When
I view the table in datasheet view, all I can see in this field
is the string "Long binary data".

So, I've got the problem of needing to extract data from this
field, but I don't know what format the data is in, or how the
app inserts data to begin with. If I can extract the binary
data intact, I may be able to pick it apart and find what I
need. I'm looking for a solution that lets me get at the data
for the whole table, so an export of the whole table including
the binary data would be fine.

I'm not a VB or ASP coder, but if code is needed for this I can
probably copy code samples and make simple modifications to
suit my task. Is there any hope of extracting this data?


Nov 13 '05 #4

P: n/a
Oops, sorry if that looks confusing - I'm the OP, but I'm borrowing
a neighbor's machine! :)

Peter <nm********************@nospam.com> wrote in
news:Xn**********************************@207.225. 159.6:
Thanks, Stephen. That helps tremendously, and I think I'm on
the right track. I created the form as you suggested, but I
can't see the data. This suggests (as I suspected) that the
data is probably in some proprietary format. That's fine, if I
can still get at it. I have a good hex editor ready to pick
this apart.

I tried adding the CommandButton control with the code you
graciously offered, but I get an error: "Compile error: Method
or data member not found" occurs on the line "lTemp = LenB
(Me.olePicture.Value)" (specifically, the debugger highlights
the ".olePicture" bit). I assume this means I don't have some
library loaded, or something like that. Do you know how I can
resolve this?

"Stephen Lebans"
<Fo****************************************@linval id.com> wrote
in news:Mk*********************@ursa-nb00s0.nbnet.nb.ca:
It depends whether the App inserted the data as an OLE object
or simply as data in some format.

Create a form bound to this table. Add a BOUND Object Frame
control bound to the OLE field in question.

Now open the form in Form view. If you can see the data and
interact with it then you have an OLE object.
Otherwise you just have binary data in an unknow format.
Perhaps it is simply an actual copy of a file, say a JPG image,
copied in its entirety. In this case you would simply save off
the field data to a temp disk file. As long as you know the
proper file extension for this data your issue is solved.

FInally, it could simply be a blob of private data used by the
App in an unknow format. Heres some code to copy the contents
of the current record displayed in a Bound Object Frame control
to a disk file. If this temp file contains Text only then you
can view it in Wordpad etc. If it is a mixture of data types
then you will need a HEX editor to view the data. There are
many freeware/shareware HEX editors on the Web.

Just add a CommandButton control to the form you created as
per the
above instructions.

Private Sub cmdSave_Click()
On Error GoTo Err_cmdSave_Click
Dim a() As Byte
Dim lTemp As Long
Dim sl As String
lTemp = LenB(Me.olePicture.Value)
ReDim a(0 To lTemp) ' should be -1
' Copy the contents of the OLE field to our byte array
a = Me.olePicture.Value
sl = "OLEfieldTest" & ".dat"
Open sl For Binary Access Write As #1
Put #1, , a
Close #1
Exit_cmdSave_Click:
Exit Sub
Err_cmdSave_Click:
MsgBox Err.Description
Resume Exit_cmdSave_Click
End Sub


--

HTH
Stephen Lebans
http://www.lebans.com
Access Code, Tips and Tricks
Please respond only to the newsgroups so everyone can benefit.
"Jerry" <le**********@nowhere.com> wrote in message
news:Xn**********************************@207.225. 159.6...
I have an off-the-shelf app that uses an Access database as
its backend. One of the tables contains a field with an "OLE
Object" datatype. I'm writing some reports against this
database, and I believe this field contains data I need. When
I view the table in datasheet view, all I can see in this
field is the string "Long binary data".

So, I've got the problem of needing to extract data from this
field, but I don't know what format the data is in, or how the
app inserts data to begin with. If I can extract the binary
data intact, I may be able to pick it apart and find what I
need. I'm looking for a solution that lets me get at the data
for the whole table, so an export of the whole table including
the binary data would be fine.

I'm not a VB or ASP coder, but if code is needed for this I
can probably copy code samples and make simple modifications
to suit my task. Is there any hope of extracting this data?



Nov 13 '05 #5

P: n/a
You need to Substitute the name of your actual Bound Object Frame.
Me.olePicture.Value
to
Me.The NameOfYourBoundObjectFrameControl.Value

--

HTH
Stephen Lebans
http://www.lebans.com
Access Code, Tips and Tricks
Please respond only to the newsgroups so everyone can benefit.
"Peter" <nm********************@nospam.com> wrote in message
news:Xn**********************************@207.225. 159.6...
Thanks, Stephen. That helps tremendously, and I think I'm on the
right track. I created the form as you suggested, but I can't see
the data. This suggests (as I suspected) that the data is probably
in some proprietary format. That's fine, if I can still get at it.
I have a good hex editor ready to pick this apart.

I tried adding the CommandButton control with the code you
graciously offered, but I get an error: "Compile error: Method or
data member not found" occurs on the line "lTemp = LenB
(Me.olePicture.Value)" (specifically, the debugger highlights the
".olePicture" bit). I assume this means I don't have some library
loaded, or something like that. Do you know how I can resolve
this?

"Stephen Lebans"
<Fo****************************************@linval id.com> wrote in
news:Mk*********************@ursa-nb00s0.nbnet.nb.ca:
It depends whether the App inserted the data as an OLE object or
simply as data in some format.

Create a form bound to this table. Add a BOUND Object Frame
control bound to the OLE field in question.

Now open the form in Form view. If you can see the data and
interact with it then you have an OLE object.
Otherwise you just have binary data in an unknow format. Perhaps
it is simply an actual copy of a file, say a JPG image, copied
in its entirety. In this case you would simply save off the
field data to a temp disk file. As long as you know the proper
file extension for this data your issue is solved.

FInally, it could simply be a blob of private data used by the
App in an unknow format. Heres some code to copy the contents of
the current record displayed in a Bound Object Frame control to
a disk file. If this temp file contains Text only then you can
view it in Wordpad etc. If it is a mixture of data types then
you will need a HEX editor to view the data. There are many
freeware/shareware HEX editors on the Web.

Just add a CommandButton control to the form you created as per
the
above instructions.

Private Sub cmdSave_Click()
On Error GoTo Err_cmdSave_Click
Dim a() As Byte
Dim lTemp As Long
Dim sl As String
lTemp = LenB(Me.olePicture.Value)
ReDim a(0 To lTemp) ' should be -1
' Copy the contents of the OLE field to our byte array
a = Me.olePicture.Value
sl = "OLEfieldTest" & ".dat"
Open sl For Binary Access Write As #1
Put #1, , a
Close #1
Exit_cmdSave_Click:
Exit Sub
Err_cmdSave_Click:
MsgBox Err.Description
Resume Exit_cmdSave_Click
End Sub


--

HTH
Stephen Lebans
http://www.lebans.com
Access Code, Tips and Tricks
Please respond only to the newsgroups so everyone can benefit.
"Jerry" <le**********@nowhere.com> wrote in message
news:Xn**********************************@207.225. 159.6...
I have an off-the-shelf app that uses an Access database as its
backend. One of the tables contains a field with an "OLE
Object" datatype. I'm writing some reports against this
database, and I believe this field contains data I need. When
I view the table in datasheet view, all I can see in this field
is the string "Long binary data".

So, I've got the problem of needing to extract data from this
field, but I don't know what format the data is in, or how the
app inserts data to begin with. If I can extract the binary
data intact, I may be able to pick it apart and find what I
need. I'm looking for a solution that lets me get at the data
for the whole table, so an export of the whole table including
the binary data would be fine.

I'm not a VB or ASP coder, but if code is needed for this I can
probably copy code samples and make simple modifications to
suit my task. Is there any hope of extracting this data?


Nov 13 '05 #6

P: n/a
Sorry to be a dunce, but now I get the same error, but highlighting
the ".Value" part of the line. Is there a substitution I need for
that too?
"Stephen Lebans"
<Fo****************************************@linval id.com> wrote in
news:ab*********************@ursa-nb00s0.nbnet.nb.ca:
You need to Substitute the name of your actual Bound Object
Frame. Me.olePicture.Value
to
Me.The NameOfYourBoundObjectFrameControl.Value

--

HTH
Stephen Lebans
http://www.lebans.com
Access Code, Tips and Tricks
Please respond only to the newsgroups so everyone can benefit.

Nov 13 '05 #7

P: n/a
Scratch that, I figured it out. (I had substituted the name of the
command button, not the bound object frame.) This works, and it's
enough to let me start parsing through the data one record at a
time. Next I'll need to modify this to dump a bunch of records at
once, but I'll work on that as an exercise in VB coding (which I
sorely need). Thanks again for the help!

Jerry <le**********@nowhere.com> wrote in
news:Xn**********************************@207.225. 159.7:
Sorry to be a dunce, but now I get the same error, but
highlighting the ".Value" part of the line. Is there a
substitution I need for that too?
"Stephen Lebans"
<Fo****************************************@linval id.com> wrote
in news:ab*********************@ursa-nb00s0.nbnet.nb.ca:
You need to Substitute the name of your actual Bound Object
Frame. Me.olePicture.Value
to
Me.The NameOfYourBoundObjectFrameControl.Value

--

HTH
Stephen Lebans
http://www.lebans.com
Access Code, Tips and Tricks
Please respond only to the newsgroups so everyone can benefit.


Nov 13 '05 #8

P: n/a


--
+----------+
| PLEASE |
| DO NOT | te*******@hotmail.com

"Jerry" <le**********@nowhere.com> wrote in message
news:Xn**********************************@207.225. 159.7... Scratch that, I figured it out. (I had substituted the name of the
command button, not the bound object frame.) This works, and it's
enough to let me start parsing through the data one record at a
time. Next I'll need to modify this to dump a bunch of records at
once, but I'll work on that as an exercise in VB coding (which I
sorely need). Thanks again for the help!

Jerry <le**********@nowhere.com> wrote in
news:Xn**********************************@207.225. 159.7:
Sorry to be a dunce, but now I get the same error, but
highlighting the ".Value" part of the line. Is there a
substitution I need for that too?
"Stephen Lebans"
<Fo****************************************@linval id.com> wrote
in news:ab*********************@ursa-nb00s0.nbnet.nb.ca:
You need to Substitute the name of your actual Bound Object
Frame. Me.olePicture.Value
to
Me.The NameOfYourBoundObjectFrameControl.Value

--

HTH
Stephen Lebans
http://www.lebans.com
Access Code, Tips and Tricks
Please respond only to the newsgroups so everyone can benefit.

Nov 13 '05 #9

This discussion thread is closed

Replies have been disabled for this discussion.