<br>Interesting. Yea it's an object reference, a re-occouring theme. Can't just pass a pointer to a buffer kind of thing.<br><br>This guy, 'imagelist1.ListImages.Item(1)', is a reference to a member method/function, which when executed, will return the images' binary data. Incidently, the call expects a container that knows how to handle the raw image data returned. The 'Put #1' call expects a buffer filled with (binary) data. The compiler watches for invalid lvalues, and this is an invalid value so..<br><br>you'll need to write the image to disk first, read it back into a buffer, then provide that buffer to your call to 'Put'<br><br>ie. <br>sub DoPictureStuff ()<br><br>SavePicture imagelist1.Picture "C:\temp\temp.bmp"<br><br>Dim binBuffer<br>Open "C:\temp\temp.bmp" for binary as #1<br> Put #1, , binBuffer<br>Close #1<br><br>... now, pass 'binBuffer' to your write routine.<br>' ..<br>' ..<br>' ..<br>End Sub<br><br>Incidently, from what you have have written, I'd suggest you disregard all that I've written and use a JET Database to store this stuff instead.<br><br>have fun. <p>Amiel<br><a href=mailto:amielzz@netscape.net>amielzz@netscape.net</a><br><a href= > </a><br>