如何把数据库中的图片显示在工作表上?


小编特别制作了如图所示两个表格 。是从另一个表格中但是以图片的形式引存在双击会还回到所引用表格中队应的位置 。
其他观点:
第一步:右键源数据库名 。单击“将数据库复制到不同的主机/数据库” 。查看图一 。图二 。
(图一)
(图二)
第二步:根据自己的需求 。在图二上进行设置 。
主要涉及到如下几个内容:
来源(库):数据来自哪个数据库
目标(库):数据复制到哪个数据库
对象:需要复制的内容 。根据需求进行选择
连接:目标库的连接地址
数据库:当前连接下的哪个数据库(目标库)
其他观点:
如何把数据库中的图片显示在工作表上 。这讲的内容和上一讲的内容是相反的 。上一讲的内容是把图片存入数据库 。我们今日讲的内容是要把数据库中的图片取出来存储入工作表中 。
实例 。我们要根据下面的员工番号查找出人员的信息 。并把信息放到工作表的适当位置中 。我们先看看图片的数据在数据库中的祥子 。如下图 。提示的是一个长二进制数据 。
在我们的工作表中,如下图 。给出了一个员工的编号 。要通过这个员工的编号 。把这个员工的信息反馈到下面的工作表中:
今日举的这个实例 。特别对从事人事工作的人员特别有用 。对其他设涉及到图片管理的人员 。可以借鉴我这讲的内容 。把数据库作为图片管理的工具 。是一个有效的管理手段 。下面看我给出的代码:
Sub mynzRecords_44() '第44 如何把数据库中的图片显示在工作表上
Dim abytPic() As Byte
Dim strSQL As String
Dim cnADO As New ADODB.Connection
Dim rsADO As New ADODB.Recordset
Dim strPath As String
Dim strTable As String
strPath = ThisWorkbook.Path & \"\mydata2.accdb\"
strTable = \"员工记录\"
With Sheets(\"44\")
cnADO.Open \"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\" & strPath
strSQL = \"SELECT * FROM \" & strTable & \" WHERE 员工编号=\" & Cells(2, 1)
rsADO.Open strSQL, cnADO, 1, 3
For j = 1 To rsADO.Fields.Count - 2
ActiveSheet.Cells(1 + 1, j + 1) = rsADO.Fields(j)
Next j
If IsNull(rsADO(\"备注\")) Then
.Image1.Visible = False
.Range(\"A3\") = \"暂无照片\"
Else
abytPic = rsADO(\"备注\")
.Image1.Visible = True
.Image1.PictureSizeMode = 1
Set .Image1.Picture = ByteToPicture(abytPic)
End If
End With
Set rsADO = Nothing
Set cnADO = Nothing
End Sub
代码截图:
代码讲解:
1 cnADO.Open \"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\" & strPath
strSQL = \"SELECT * FROM \" & strTable & \" WHERE 员工编号=\" & Cells(2, 1)
rsADO.Open strSQL, cnADO, 1, 3
上述代码打开一个一个记录集是数据库中和员工编号和工作表中相等的记录 。
2 For j = 1 To rsADO.Fields.Count - 2
ActiveSheet.Cells(1 + 1, j + 1) = rsADO.Fields(j)
Next j
上述代码记入此记录的其他信息
3 If IsNull(rsADO(\"备注\")) Then
.Image1.Visible = False
.Range(\"A3\") = \"暂无照片\"
Else
abytPic = rsADO(\"备注\")
.Image1.Visible = True
.Image1.PictureSizeMode = 1
Set .Image1.Picture = ByteToPicture(abytPic)
End If
将图片还原到工作表中 。
下面看我们的代码运行:
【如何把数据库中的图片显示在工作表上?】把员工为1001的相关信息从数据库中导出到了工作表中了 。

    推荐阅读