考試大編輯整理:在我們做的許多管理系統(tǒng)中,除了保存大量的文字信息以外,有時(shí)候也需要保存一定數(shù)量的圖片。例如:一個(gè)人事管理系統(tǒng),就需要對(duì)每個(gè)人的照片進(jìn)行保存,以便可以方便的對(duì)每個(gè)人的信息進(jìn)行處理。
Office中的Access數(shù)據(jù)庫(kù)除了保存文本,還可以保存圖片,保存圖片的數(shù)據(jù)類型就是"OLE對(duì)象":它用來(lái)保存 Excel 電子表格、 Word 文檔、圖形、聲音或其他二進(jìn)制數(shù)據(jù)。
我現(xiàn)在用一個(gè)例子介紹利用VB保存圖片的方法,首先我們要介紹vb中處理二進(jìn)制數(shù)據(jù)的語(yǔ)句:Put、Get。
Put、Get語(yǔ)句語(yǔ)法如下:
Put [#] filenumber,[recnumber],varname
Get [#] filenumber,[recnumber],varname
Filenumber :必需的。任何有效的文件號(hào)
Recnumber :可選的。Variant(Long)。記錄號(hào)(Random方式的文件)或字節(jié)數(shù)(Binary方式的文件),指明在此處開(kāi)始寫入
Varname :必需的。包含要寫入磁盤的數(shù)據(jù)的變量名
說(shuō)明:文件中的第一個(gè)記錄或字節(jié)位于位置1,第二個(gè)記錄或字節(jié)位于位置2,依次類推。若省略recnumber,則將上一個(gè)Get或Put語(yǔ)句之后的下一個(gè)記錄或字節(jié)寫入。所有用于分界的逗號(hào)都必須羅列出來(lái)。
現(xiàn)在我們來(lái)開(kāi)始建一個(gè)工程,功能是保存一個(gè)文檔,同時(shí)可以保存一幅圖片。
首先我們建一個(gè)表(表名為photo),字段如下:
字段名 類型 標(biāo)題
class 類別 文檔的分類
photo OLE對(duì)象 保存圖片文件
photo_ext 文本 圖片的擴(kuò)展名
inputtime 日期/時(shí)間 文檔輸入的時(shí)間
modifytime 日期/時(shí)間 文檔的修改時(shí)間
subject 文本 文本
現(xiàn)在我們就可以創(chuàng)建finput窗口文件來(lái)保存圖片。
首先我們要連接我們的數(shù)據(jù)庫(kù),代碼如下:
Dim cnstr As String
cnstr = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;" _
& "Data Source=" & App.Path & "\realize.mdb;Jet OLEDB:database "
cn.Open cnstr
cn.CursorLocation = adUseClient
這段代碼可以放在form_load事件中,當(dāng)做一個(gè)多窗口的系統(tǒng)時(shí),放到一個(gè)模塊文件中,這樣在其它窗口中都可以調(diào)用這個(gè)cn連接。
下面是具體的窗口代碼:
VERSION 5.00
Object= "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "comdlg32.ocx"
Object= "{3B7C8863-D78F-101B-B9B5-04021C009402}#1.2#0"; "richtx32.ocx"
Begin VB.Form finput
BorderStyle = 0 'None
Caption = "文檔輸入"
ClientHeight = 6240
ClientLeft = 0
ClientTop = 0
ClientWidth = 8955
ControlBox = 0 'False
LinkTopic = "Form1"
MDIChild = -1 'True
ScaleHeight = 6240
ScaleWidth = 8955
ShowInTaskbar = 0 'False
Begin MSComDlg.CommonDialog CommonDialog1
Left = 8040
Top = 3840
_ExtentX = 847
_ExtentY = 847
_Version = 393216
End
Begin VB.ComboBox Combo1
Height = 300
Left = 7080
TabIndex = 10
Top = 480
Width = 1335
End
Begin VB.CommandButton Command3
Caption = "關(guān)閉"
Height = 375
Left = 5280
TabIndex = 8
Top = 5640
Width = 1095
End
Begin VB.CommandButton Command2
Caption = "保存"
Height = 375
Left = 2520
TabIndex = 7
Top = 5640
Width = 1095
End
Begin VB.CommandButton Command1
Caption = "瀏覽"
Height = 255
Left = 8040
TabIndex = 6
Top = 4800
Width = 735
End
Office中的Access數(shù)據(jù)庫(kù)除了保存文本,還可以保存圖片,保存圖片的數(shù)據(jù)類型就是"OLE對(duì)象":它用來(lái)保存 Excel 電子表格、 Word 文檔、圖形、聲音或其他二進(jìn)制數(shù)據(jù)。
我現(xiàn)在用一個(gè)例子介紹利用VB保存圖片的方法,首先我們要介紹vb中處理二進(jìn)制數(shù)據(jù)的語(yǔ)句:Put、Get。
Put、Get語(yǔ)句語(yǔ)法如下:
Put [#] filenumber,[recnumber],varname
Get [#] filenumber,[recnumber],varname
Filenumber :必需的。任何有效的文件號(hào)
Recnumber :可選的。Variant(Long)。記錄號(hào)(Random方式的文件)或字節(jié)數(shù)(Binary方式的文件),指明在此處開(kāi)始寫入
Varname :必需的。包含要寫入磁盤的數(shù)據(jù)的變量名
說(shuō)明:文件中的第一個(gè)記錄或字節(jié)位于位置1,第二個(gè)記錄或字節(jié)位于位置2,依次類推。若省略recnumber,則將上一個(gè)Get或Put語(yǔ)句之后的下一個(gè)記錄或字節(jié)寫入。所有用于分界的逗號(hào)都必須羅列出來(lái)。
現(xiàn)在我們來(lái)開(kāi)始建一個(gè)工程,功能是保存一個(gè)文檔,同時(shí)可以保存一幅圖片。
首先我們建一個(gè)表(表名為photo),字段如下:
字段名 類型 標(biāo)題
class 類別 文檔的分類
photo OLE對(duì)象 保存圖片文件
photo_ext 文本 圖片的擴(kuò)展名
inputtime 日期/時(shí)間 文檔輸入的時(shí)間
modifytime 日期/時(shí)間 文檔的修改時(shí)間
subject 文本 文本
現(xiàn)在我們就可以創(chuàng)建finput窗口文件來(lái)保存圖片。
首先我們要連接我們的數(shù)據(jù)庫(kù),代碼如下:
Dim cnstr As String
cnstr = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;" _
& "Data Source=" & App.Path & "\realize.mdb;Jet OLEDB:database "
cn.Open cnstr
cn.CursorLocation = adUseClient
這段代碼可以放在form_load事件中,當(dāng)做一個(gè)多窗口的系統(tǒng)時(shí),放到一個(gè)模塊文件中,這樣在其它窗口中都可以調(diào)用這個(gè)cn連接。
下面是具體的窗口代碼:
VERSION 5.00
Object= "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "comdlg32.ocx"
Object= "{3B7C8863-D78F-101B-B9B5-04021C009402}#1.2#0"; "richtx32.ocx"
Begin VB.Form finput
BorderStyle = 0 'None
Caption = "文檔輸入"
ClientHeight = 6240
ClientLeft = 0
ClientTop = 0
ClientWidth = 8955
ControlBox = 0 'False
LinkTopic = "Form1"
MDIChild = -1 'True
ScaleHeight = 6240
ScaleWidth = 8955
ShowInTaskbar = 0 'False
Begin MSComDlg.CommonDialog CommonDialog1
Left = 8040
Top = 3840
_ExtentX = 847
_ExtentY = 847
_Version = 393216
End
Begin VB.ComboBox Combo1
Height = 300
Left = 7080
TabIndex = 10
Top = 480
Width = 1335
End
Begin VB.CommandButton Command3
Caption = "關(guān)閉"
Height = 375
Left = 5280
TabIndex = 8
Top = 5640
Width = 1095
End
Begin VB.CommandButton Command2
Caption = "保存"
Height = 375
Left = 2520
TabIndex = 7
Top = 5640
Width = 1095
End
Begin VB.CommandButton Command1
Caption = "瀏覽"
Height = 255
Left = 8040
TabIndex = 6
Top = 4800
Width = 735
End