感谢您使用微软产品。在VB中,picturebox和imagebox只能绑定BLOB类型的数据,而在使用Jet连接数据库的时候,它将bitmap格式转换为自己内部的格式,而不是BLOB。所以,您无法将他们绑定在一起。
您有以下两个办法显示Access中的OLE类型的图片:1、利用OLE控件,您只需要将OLE控件绑定到相应的字段,就可以显示图片了。如果您仍然希望在PictureBox中显示图片,可以利用ClipBoard复制并粘贴,请参考以下代码:
OLE1.DoVerb
OLE1.Copy
Set Picture1.Picture = Clipboard.GetData
OLE1.Action = 92、您可以把二进制数据从数据库中读出,然后写入文件,再用LoadPicture([filename], [size], [colordepth],[x,y])方法加载到picturebox中。存储在Access中的图片是OLE Object格式,需要分析其中的内容而获得实际的bmp文件信息。以下这篇文章:
HOWTO: Retrieve Bitmap from Access and Display It in Web Page(http://support.microsoft.com/default.aspx?scid=kb;en-us;Q175261)分析了如何从Access数据库中获取Bitmap文件信息,您可以使用其中的DisplayBitmap(ByVal OleField As Variant)函数来获得bitmap的内容,然后用写临时文件的方法进行显示。代码如下:
Dim data() as Byte
在运行中:
ReDim data(b.Fields("photo").ActualSize) As Byte
data=DisplayBitmap (rst.Fields("Photo"))
Open "C:\picture.bmp" For Binary As #1
Put #1, , data
Close #1
Picture1.Picture=LoadPicture(“c:\pic.bmp”)
Kill "C:\picture.bmp"
这样您便可以在picturebox中显示Access数据库中的图片了。微软全球技术中心 VB技术支持
本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。