如何用数据库中的图片显示数据?

时间:2015-06-05 03:36:23

标签: database excel vba

从此如何:http://chandoo.org/wp/2012/04/02/using-excel-as-your-database

如果我在每个数据中添加图片(超链接或评论),我可以用图片显示数据吗??

1 个答案:

答案 0 :(得分:0)

我想,你没有直接的方法在Excel中使用SQL来使用Pics。

但是可以选择从文件夹粘贴Pics。

第1步。

使用SQL创建请求并获取表格中每张图片的完整路径,例如:

  

'C:\用户\ Usermname \图片\ 1.png'

=>

第2步。

使用VBA代码将图片粘贴到表格中:

Option Explicit

Sub test()
Dim i
Call KillAllPics("Sheets1")
For i = 1 To 7
    Call InsertPics(Range("B1").Offset(i - 1, 0), _
    Range("A1").Offset(i - 1, 0).Value, 100)
Next i
End Sub

Sub KillAllPics(SheetName As String)
Dim Shape As Shape
For Each Shape In Sheets(SheetName).Shapes
   If Shape.Type = 13 Then Shape.Delete
Next Shape
End Sub

Sub InsertPics(rng As Range, link As String, heigth As Integer)
' rng -- where to paste image
' link -- text link with image
' heigth -- change heigth of cell with picture
If Dir(link) <> "" Then
    rng.RowHeight = heigth
    Dim L, T, W, H

    Dim objImage
    With rng
        T = .Top + 2
        H = .Height * 0.95
        L = .Left + 2
    End With

    Set objImage = CreateObject("WIA.ImageFile")

    objImage.LoadFile link
        W = objImage.Width * (H / objImage.Height)
        If W > rng.Width Then
        W = rng.Width * 0.95
        H = objImage.Height * (W / objImage.Width)
    End If

    ActiveSheet.Shapes.AddPicture link, False, True, L, T, W, H
End If
End Sub

此代码首先从WorkSheet中删除旧图片,然后将图片粘贴到单元格中。它也适合每张图片,并将其调整为“细胞大小”。