暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据库中图片数据的提取以及在工作表中还原显示的方法

VBA语言专家 2019-07-16
156

大家好,我们继续讲解VBA数据库解决方案,今日讲解第44讲内容:如何把数据库中的图片显示在工作表上。这讲的内容和上一讲的内容是相反的,上一讲的内容是把图片存入数据库,我们今日讲的内容是要把数据库中的图片取出来存储入工作表中。

实例,我们要根据下面的员工番号查找出人员的信息,并把信息放到工作表的适当位置中,我们先看看图片的数据在数据库中的祥子,如下图,提示的是一个长二进制数据。

                            

在我们的工作表中,如下图,给出了一个员工的编号,要通过这个员工的编号,把这个员工的信息反馈到下面的工作表中:

  

今日举的这个实例,特别对从事人事工作的人员特别有用。对其他设涉及到图片管理的人员,可以借鉴我这讲的内容,把数据库作为图片管理的工具,是一个有效的管理手段。下面看我给出的代码:

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  Forj = 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的相关信息从数据库中导出到了工作表中了。

利用第43讲和44讲的内容可以很方便的处理图片的操作。图片处理历来在我的教程中有着一定的份额,有可以利用的朋友多多利用。

 

今日内容回向:

如何把数据表中的图片还原到工作表中?

图片在数据库中的信息是什么样子呢?


文章转载自VBA语言专家,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论