问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VB 显示 ACCESS 数据库的里的图片

发布网友 发布时间:2022-04-12 17:47

我来回答

3个回答

懂视网 时间:2022-04-12 22:08

access 数据库 支持OLE 对象 字段,其中最常用的是BMP 对象 ,即 图片 对象 。 图片 对象 的加入使Access 数据库 的可用性得到大大提高,它使 数据库 不仅仅局限于传统意义上的数据(即数值与字符),提高了信息的质量,并更接近于人们日常生活中的媒体。例如

access数据库支持OLE对象字段,其中最常用的是BMP对象,即图片对象。图片对象的加入使Access数据库的可用性得到大大提高,它使数据库不仅仅局限于传统意义上的数据(即数值与字符),提高了信息的质量,并更接近于人们日常生活中的媒体。例如,要作产品介绍,需要保存该产品的图片。图片往往具有比文字更大的说服力。
然而,直接采用VB等开发工具将Access数据库中的图片对象取出来显示到屏幕上并实现打印输出并不容易。这儿介绍一个简单方法,只用几行代码即可将图片对象显示到屏幕上,并支持图片的缩放,高质量的打印输出。这需要借助CELL组件。
下面举一个在VB中使用CELL组件显示Access数据库中的图片对象的例子。创建一个Form之后,将CELLActiveXControlmodule选中,就把CELL组件添加入控件栏中了,将CELL组件加入Form,在Form的Load过程中加入以下代码
PRivateSubForm_Load()
Cell1?DoOpenFileDbase0,″e: mpsample?mdb″,tables
Cell.1DoDumpDbaseData″Select*fromemployees″,0,0,0,1,cols,rows
EndSub
e: mpsample?mdb是一个含有图片的Access数据库,运行程序就可将其中的图片显示到表格中并打印出来(如下图)。根据SELECT语句的灵活性,你可以将指定的图片显示到表格的任意位置之上。采用CELL组件还有一个好处就是CELL组件强大的打印功能,CELL组件对图片进行无级缩放,使打印出来的图片不失真。->

热心网友 时间:2022-04-12 19:16

''这是调用文件,你自己改一改吧,图片存数据库是二进制型式
Public Function TemporaryFileName() As String '生成临时文件
Dim temp_path As String
Dim temp_file As String
Dim length As Long

temp_path = Space$(MAX_PATH)
length = GetTempPath(MAX_PATH, temp_path)
temp_path = Left$(temp_path, length)

temp_file = Space$(MAX_PATH)
GetTempFileName temp_path, "per", 0, temp_file
TemporaryFileName = Left$(temp_file, InStr(temp_file, Chr$(0)) - 1)
End Function

Public Sub DispPic(ByVal Person_no As String, ByVal PicObject As Object)
Dim bytes() As Byte
Dim file_name As String
Dim file_num As Integer
Dim file_length As Long
Dim num_blocks As Long
Dim left_over As Long
Dim block_num As Long

Screen.MousePointer = vbHourglass
DoEvents

'数据库自己改吧
Set rs = cn.Execute("SELECT * FROM ep_Picture WHERE e_no='" & _
Person_no & "'", , adCmdText)
If rs.EOF Then
Screen.MousePointer = vbDefault
Exit Sub
End If

'生成文件名
file_name = TemporaryFileName()

'打开临时文件写入数据
file_num = FreeFile
Open file_name For Binary As #file_num

file_length = rs!FileLength
num_blocks = file_length / BLOCK_SIZE
left_over = file_length Mod BLOCK_SIZE

For block_num = 1 To num_blocks
bytes() = rs!Picture.GetChunk(BLOCK_SIZE)
Put #file_num, , bytes()
Next block_num

If left_over > 0 Then
bytes() = rs!Picture.GetChunk(left_over)
Put #file_num, , bytes()
End If

Close #file_num

'返回图片控件
PicObject.Picture = LoadPicture(file_name)

Kill file_name
Screen.MousePointer = vbDefault
End Sub

Public Sub AddPic(ByVal person_name As String, ByVal FileName As String)

Dim file_num As String
Dim file_length As String
Dim bytes() As Byte
Dim num_blocks As Long
Dim left_over As Long
Dim block_num As Long

If Len(person_name) = 0 Then Exit Sub

file_num = FreeFile
Open FileName For Binary Access Read As #file_num

file_length = LOF(file_num)
If file_length > 0 Then
num_blocks = file_length / BLOCK_SIZE
left_over = file_length Mod BLOCK_SIZE

Set rs = New ADODB.Recordset
rs.CursorType = adOpenKeyset
rs.LockType = adLockOptimistic
rs.Open "Select e_no, Picture, FileLength FROM ep_picture", cn

rs.AddNew
rs!e_no = person_name
rs!FileLength = file_length

ReDim bytes(BLOCK_SIZE)
For block_num = 1 To num_blocks
Get #file_num, , bytes()
rs!Picture.AppendChunk bytes()
Next block_num

If left_over > 0 Then
ReDim bytes(left_over)
Get #file_num, , bytes()
rs!Picture.AppendChunk bytes()
End If

rs.Update
Close #file_num

End If
End Sub

热心网友 时间:2022-04-12 20:34

去VBhao 看看 有相应的 开源程序。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
大学中大德指什么 驾考各科通过率是多少 驾考全部一次过的比例 驾考宝典科目一通过率多少 驾考宝典通过率怎么算的 .js 文件和 .mjs 文件的区别 .js是什么文 苹果13在哪切换4G网络 苹果13怎么把5g换成4g?苹果13设置4g网络方法介绍 iphone13如何更改网络信号 iphone13手机5G设置成4G教程 谷谷钱包真不用还吗 大麦钱包审核没通过,可以直接删除吗? 怎样腌制正宗韩国辣白菜? 600187的黑龙股份现在重组进展怎么样了,国中水务何时支付股权款并完成过户及进行股改? 怎样用photoshop将一张图片进行等面积裁剪,就做成拼图的样子 草是如何过冬的? 空间相册拼图怎么制作? 韭菜黄怎样入菜才好吃? 牛吃的草冬天怎么存 小草如何过冬 photoshop可以把一张图切成多份再组合吗?实际操作是怎么样的? PS,怎么样让一张图片切割成无数块,然后重新拼合 湿青草可以储存冬天用吗?储存的方法是什么?我想喂给羊吃 谢谢了 ps切片问题,怎么切成拼图一样的小图片 如何用ps切割成陌陌拼图 卖车要什么证件 卖车都需要准备什么过户资料? 个人卖车需要准备哪些资料? 足球比赛的“德比”之战是怎么来的? 在excel工作表如何提取access数据库中图片 为什么大麦钱包额度申请失败? 《给妈妈的一封信》家长评语 什么是QQ头像? qq头像是什么 qq头像是什么可以换 峨眉有什么好吃的! qq头像是怎么回事? CZC针叶樱桃亮颜黑金面膜有哪些主要功效? 优肌源黑金面膜能吸出黑色素吗 大家信不信有的人财运比较好 有的人财运没那么好 我跟我老公怎么做什么都没有一点财运好像财运跟我们没有一点关系 为什么好运的人总好运,而有的人却一直运气不佳 名膜壹号黑金面膜可以改善黑头粉刺跟暗黄吗? C#读取Access里的图片(ole对象)通过点击button在picturebox里直接显示图片 有用过iberry黑金蜂窝面膜的吗?怎么样 (白金排毒霜)(黑金修复面膜)真的好用嘛?有效果嘛?有谁用过 瘦啦减肥果冻有用吗 多吃果冻有能减肥? HPV的检测结果请懂专业人士进来看看 电脑自带键盘怎么打开