-
1 # 只若初見不如久處不厭
-
2 # 源源經典金曲匯
如何把資料庫中的圖片顯示在工作表上。這講的內容和上一講的內容是相反的,上一講的內容是把圖片存入資料庫,我們今日講的內容是要把資料庫中的圖片取出來儲存入工作表中。
例項,我們要根據下面的員工番號查找出人員的資訊,並把資訊放到工作表的適當位置中,我們先看看圖片的資料在資料庫中的祥子,如下圖,提示的是一個長二進位制資料。
在我們的工作表中,如下圖,給出了一個員工的編號,要透過這個員工的編號,把這個員工的資訊反饋到下面的工作表中:
今日舉的這個例項,特別對從事人事工作的人員特別有用。對其他設涉及到圖片管理的人員,可以借鑑我這講的內容,把資料庫作為圖片管理的工具,是一個有效的管理手段。下面看我給出的程式碼:
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的相關資訊從資料庫中匯出到了工作表中了。
回覆列表
第一步:右鍵源資料庫名,單擊“將資料庫複製到不同的主機/資料庫”,檢視圖一,圖二。
(圖一)
(圖二)
第二步:根據自己的需求,在圖二上進行設定。
主要涉及到如下幾個內容:
目標(庫):資料複製到哪個資料庫
物件:需要複製的內容,根據需求進行選擇
連線:目標庫的連線地址
資料庫:當前連線下的哪個資料庫(目標庫)