68
資資資 資資資資資資 資資資資資資 資資資資資資資資 資資資資資 資資資資資 資資資資資資資資資資 資資資資資資資資 一、、、, VB 資資資資 資資資 資資資 資資資資資資資資資資資資資資資資資 ,。 資資資資資資資資資資資資資資資資資資資資資資資資資資資資

資料庫

Embed Size (px)

DESCRIPTION

資料庫. 資料庫管理員. 當我們要設計一個可以輸入資料、新增資料、刪除資料、查詢資料到資料檔案,這時候就可以利用 VB 所提供的 『 資料庫管理員 』 ,並配合相關的 ﹝ 資料控制項 ﹞ 來完成。. 開啟資料庫檔案. 要建立資料庫之前我們必須先建立資料庫的檔案。. 【 步驟一 】 首先我們先利用 『 增益集∕資料庫管理員 』. 【 步驟二 】 選擇所要建立的資料庫類型。. 【 步驟三 】 選擇資料庫所要儲存的位置,同時為該檔案命名,完成後按下存檔的按鈕。. 【 步驟四 】 接下來在資料庫的視窗中按下右鍵 → 選擇 ﹝ 新增資料表 ﹞ 項目。. 【 步驟五 】 - PowerPoint PPT Presentation

Citation preview

Page 1: 資料庫

資料庫資料庫管理員

當我們要設計一個可以輸入資料、新增資料、刪除資料、查詢資料到資料檔案,這時候就可以利用 VB 所提供的『資料庫管理員』,並配合相關的﹝資料控制項﹞來完成。

要建立資料庫之前我們必須先建立資料庫的檔案。 開啟資料庫檔案

Page 2: 資料庫

【步驟一】首先我們先利用『增益集∕資料庫管理員』

【步驟二】選擇所要建立的資料庫類型。

Page 3: 資料庫

【步驟三】選擇資料庫所要儲存的位置,同時為該檔案命名,完成後按下存檔的按鈕。

Page 4: 資料庫

【步驟四】接下來在資料庫的視窗中按下右鍵 → 選擇﹝新增資料表﹞項目。

Page 5: 資料庫

【步驟五】接下來定義資料庫中所要使用的欄位,先輸入資料表的名稱,然後按下新增資料欄按鈕。

Page 6: 資料庫

【步驟六】輸入相關的資料欄資料,完成後按確定按鈕。

Page 7: 資料庫

名稱:欄位的名稱,也就是資料表中所要填入資料的標題名稱。型態:該欄位所能輸入的資料類型,資料欄的型態可以分為下列的種類:1. Text( 文字型態 ) :可以用來儲存中英文字、數值、符號、空字串,其範圍在 255 個字元內。

2. Memo( 備忘型態 ) :備忘型態與文字型態相同,其範圍可多達 1.2G 的文字資料。

3. Date/Time( 日期與時間型態 ) :存放日期與時間,日期範圍 → 1899/12/30 ~ 9999/12/30 ,時間範圍 → 0:00:00 ~ 23:59:59 。

4. Boolean( 布林型態 ) :布林資料只使用一個位元來存放資料,一般都是用於二分法的時機,例如是否、真假…等。

5. Byte( 位元組型態 ) :可以儲存 0 ~ 255 的正整數。

6. Integer( 整數型態 ) :使用兩個位元組存放 – 32768 ~ +32767 的整數數值。

Page 8: 資料庫

7. Long( 長整數型態 ) :使用四個位元組存放 – 2147483648 ~ +2147483647 的整數數值。

8. Single( 單精確浮點數型態 ) :使用四個位元組存放資料,範圍為–3.402823E38 ~ -1.401298E-45或是1.401298E-45 ~ 3.402823E38 。

9. Double( 倍精確浮點數型態 ) :使用八個位元組存放資料,範圍為 –1.79769313486231E308 ~ -4.9406564584124E-324或是1.79769313486231E308 ~ 4.9406564584124E-324 。

10.Currency( 貨幣型態 ) :用來儲存貨幣單位的資料,小數前可以有 15 個位數,小數後可以有 4個位數。

Page 9: 資料庫

11.Binary( 二進位型態 ) :可以用來存放 OLE 的物件,例如圖片、聲音…等。大小:資料欄位所能輸入的字元數。欄位順序:資料欄位顯示在畫面的次序。驗證規則提示:當輸入時違反驗證規則時會出現的說明文字。驗證規則:輸入資料到資料欄位時的規定方式。預設值:當未輸入資料時,資料欄中所顯示的值。

Page 10: 資料庫
Page 11: 資料庫

【步驟七】按下新增索引按鈕,來設立索引。在『名稱』方框中輸入所要建立的索引名稱,同時在『現有的資料欄』方塊中,點選所要的當作索引的資料欄名稱,此時所點選的資料欄會自動出現在『編製索引的資料欄』方塊中,最後按下關閉按鈕。

注意:索引是利用某些欄位來當作搜尋的依據,甚至還可以當作排序的依據。

Page 12: 資料庫

【步驟八】當建立完資料欄位後按下建立資料表按鈕。

Page 13: 資料庫

此時在資料庫視窗中會出現所建立的資料表名稱 ( 通訊錄 ) ,按下資料表名稱前面的 號,再按下 Fieleds ,就會出現剛剛所建立的資料欄位名稱。

Page 14: 資料庫

注意:『資料表』就如同是一張白紙,我們可以在此張白紙上規劃所要填寫的資料,例如學生的通訊錄、圖書館書籍資料…等。『資料欄』就如同是紙張的詳細內容,例如通訊錄中大部分都會有﹝姓名﹞、﹝電話﹞、﹝地址﹞…的資料,這些就是所謂的﹝資料欄﹞。所以一個『資料庫』可以包含許多的『資料表』,就如同一個活頁夾 ( 資料庫 ) ,可以夾帶許多的紙張 ( 資料表 ) ,每張紙都有相關的資料 ( 資料欄 ) 。

【步驟九】利用滑鼠快點兩次資料表名稱 ( 通訊錄 ) ,可以開啟 ( 通訊錄 ) 的畫面。

按下新增按鈕

Page 15: 資料庫

注意:此時因為沒有任何的資料在資料表中,所以按下新增按鈕,我們就只可以利用單筆資料的輸入方式來進行資料新增的動作,按下更新按鈕,可以將資料儲存在磁碟中,也就是第一次進行資料表輸入的動作會有的現象。

Page 16: 資料庫

【步驟十】此時我們可以先結束,並再次執行『增益集∕資料庫管理員』,並在資料庫管理員中選擇『檔案∕開啟資料庫 → Microsoft Access 』,同時選擇剛剛所建立的資料庫。

Page 17: 資料庫

利用滑鼠快點兩次資料表名稱 ( 通訊錄 ) ,就可以開啟 ( 通訊錄 ) 的瀏覽畫面,此時就可以一邊瀏覽,同時又可以按下功能按鈕來進行資料的新增、更新、刪除、尋找…等動作。

Page 18: 資料庫

注意:若我們要修改資料欄位,則可以用滑鼠右鍵按下資料表名稱,並在快顯功能表中選擇﹝設計﹞項目。

Page 19: 資料庫

資料連結控制項

『資料連結控制項』就是要將剛剛由『資料庫管理員』中所完成的資料庫相互連結,透過『資料連結控制項』可以針對該資料庫的所有資料表作一些處理,例如顯示到表單、進行資料修改…等,它就如同是使用者與資料庫的一個中間介面。資料控制項的建立方式與其它的控制項的建立方式是一樣的。

【步驟一】先在工具箱中選擇 Data 資料連結控制項,同時在表單中拖曳出一適當的大小。

Page 20: 資料庫

資料連結控制項 【步驟一】資料連結控制項建立完成後不可以馬上使用,因為系統不知道該資料連結控制項是與哪個資料庫有關聯,所以我們必須要經過連結的方式,將資料控制項與資料庫相互連結,這樣一來資料控制項才可以正確的讀取資料庫中的資料。建立連結方式如下:

在屬性視窗中,按下 DataBaseName旁的 按鈕,選擇所要關聯的資料庫名稱。

Page 21: 資料庫

按鈕,選擇所要建立連結的資料表名稱。【步驟二】在屬性視窗中,按下 RecordSource旁的

這樣一來資料連結控制項就已經與資料庫連結上了,但是無法顯示資料庫的內容,所以我們要利用其它的控制項來顯示資料表的資料欄位內容。

Page 22: 資料庫

Data 資料連結控制項的常用屬性如下:Name屬性:Data 資料連結控制項的名稱。

EOFAction屬性:當資料超過最後一筆時,處理的方式。0 → 移到最後一筆。1 → 移到結尾。2 → 新增一筆。

Caption屬性:Data 資料連結控制項外觀的顯示文字。Connect屬性:

Data 資料連結控制項所連結的資料庫格式,內定為 Access 。

DatabaseName屬性:Data 資料連結控制項所連結的資料庫檔案。

ReadOnly屬性: 設定資料表中的內容是否為唯讀狀態 ( 只能讀取,不能修改 ) 。

Page 23: 資料庫

【步驟三】安排其它的控制項來顯示資料庫中的某資料表的資料欄位資料。我們先使用 Label 標籤控制項,來顯示『通訊錄』資料表中的﹝姓名﹞資料欄位的資料內容。

Page 24: 資料庫

【步驟四】在屬性視窗中,設定 DataSource 資料連結來源,也就是『資料連結控制項』。

Page 25: 資料庫

【步驟五】在屬性視窗中,設定 DataField 選擇所要顯示的資料欄位名稱。

Page 26: 資料庫

【步驟六】執行程式。

Page 27: 資料庫

若是使用程式撰寫,則語法如下:

移到第一筆資料 語法 :資料連結控制項名稱 .Recordset.MoveFirst

往前一筆資料 語法 :資料連結控制項名稱 .Recordset.MovePrevious

往後一筆資料 語法 :資料連結控制項名稱 .Recordset.MoveNext

移到最後一筆資料 語法 :資料連結控制項名稱 .Recordset.MoveLast

Page 28: 資料庫

﹝ 一筆資料﹞,是指在資料表中所定義的所有資料欄位,當我們輸入相關資料到資料欄位後,並且記錄指標移到下一個資料記錄,就完成一筆資料的輸入。

姓名 性別 出生日 血型 地址 電話 編號

BOF 第一筆 第二筆 ……… 最後一筆 EOF

Page 29: 資料庫

注意:當移動記錄指標,若是超出資料範圍,無論是 BOF 或是 EOF ,都會出現錯誤訊息,所以我們要針對記錄指標來進行適當的判斷處理動作,底下為處理資料記錄的一些動作方式。

BOF :指第一筆資料之前。

EOF :指最後一筆資料之後。

新增一筆資料 語法: 資料連結控制項名稱 .Recordset.AddNew 說明 :記錄指標會自動到最後面,並且增加一筆新的空白記錄。

Page 30: 資料庫

刪除一筆資料 語法: 資料連結控制項名稱 .Recordset.Delete 說明 :使用後,該記錄將成為無效。修改及更新資料 語法 :資料連結控制項名稱 .Recordset.Update 說明 :當資料有經過修改必須再將該筆記錄作更新的動作,這樣一來所更新的記錄才會重新儲存到磁碟中。

Page 31: 資料庫

資料的查詢 語法 :資料連結控制項名稱 .Recordset.Find “ 資料欄位名稱 =’S’” 說明 :傳回是否找到﹝資料欄位名稱﹞符合 S 內容的記錄。例如:Stud_Data.Recordset.find “Name=’ 張簡筠白’”除了 Find外,還有下列其它查詢的方法。FindFirst :找出符合條件的第一筆資料。FindPrevious :找出符合條件的前一筆資料。FindNext :找出符合條件的下一筆資料。FindLast :找出符合條件的最後一筆資料。

資料的關閉 語法 :資料連結控制項名稱 .Recordset.Close 說明 :關閉資料表。

Page 32: 資料庫

上機操作 上機操作 設計一程式,可以管理學生的通訊錄資料。【步驟一】首先利用『資料庫管理員』產生一資料庫 ( 檔名為 My_stud.mdb ,存放於 C:\ 中 ) ,同時在該資料庫中增加一個﹝通訊錄﹞的資料表。資料表中的資料欄位如下:

資料欄位名稱 型態 大小

編號 Text 10

姓名 Text 10

性別 Text 2

血型 Text 2

生日 Date/Time 8

電話 Text 20

地址 Text 50

Page 33: 資料庫

索引值:索引名稱為﹝編號﹞,『編製索引的資料欄』項目選擇﹝編號﹞。資料表中的內容,任意輸入 5筆資料,表單中建立如下的物件。

Page 34: 資料庫

【步驟二】修改物件的屬性。 Name屬性:Data1 → Stu_dataLabel1 → No_lblLabel2 → Name_lblLabel3 → Sex_lblLable4 → Blood_lblLabel5 → Birth_lblLabel6 → Tel_lblLabel7 → Add_lblText1 → No_txtText2 → Name_txtText3 → Sex_txtText4 → Blood_txtText5 → Birth_txtText6 → Tel_txtText7 → Add_txtCommand1 → Add_btnCommand2 → Del_btnCommand3 → Update_btnCommand4 → Exit

Caption屬性:Data1 → 通訊錄Label1 → 編號Label2 → 姓名Label3 → 性別Label4 → 血型Label5 → 生日Label6 → 電話Label7 → 地址Command1 → 新增Command2 → 刪除Command3 → 更新Command4 → 結束

Text屬性Text1 → (清除為空白 )Text2 → (清除為空白 )Text3 → (清除為空白 )Text4 → (清除為空白 )Text5 → (清除為空白 )Text6 → (清除為空白 )Text7 → (清除為空白 )

Page 35: 資料庫

DataName屬性:Data1 → C:\My_stu.mdb 檔案。

RecordSource屬性:Data1 → 通訊錄

DataField屬性:Text1 → 編號Text2 → 姓名Text3 → 性別Text4 → 血型Text5 → 生日Text6 → 電話Text7 → 地址

DataSource屬性:Text1 → Stu_dataText2 → Stu_dataText3 → Stu_dataText4 → Stu_dataText5 → Stu_dataText6 → Stu_dataText7 → Stu_data

Page 36: 資料庫
Page 37: 資料庫

【步驟三】選擇『檢視』功能表中的「程式碼」,開始撰寫程式碼。

Private Sub Add_btn_Click() Stu_data.Recordset.AddNew No_txt.SetFocusEnd SubPrivate Sub Del_btn_Click() del_val = MsgBox(" 刪除此筆資料? ", vbYesNo + vbExclamation, " 刪除 ") If del_val = vbYes Then Stu_data.Recordset.Delete Stu_data.Refresh Stu_data.Recordset.MoveNext End IfEnd SubPrivate Sub Exit_btn_Click() exit_val = MsgBox(" 確定結束 ", vbYesNoCancel + vbQuestion, " 資料庫結束 ") If exit_val = vbYes Then EndEnd Sub

Page 38: 資料庫

Private Sub Updata_btn_Click() On Error Resume Next If Stu_data.Recordset.EOF = False Then Stu_data.Recordset.MoveNext Else Stu_data.Recordset.MoveFirst End IfEnd Sub

Page 39: 資料庫

【步驟四】執行程式。

Page 40: 資料庫

ADODC 與 DataGrid

ADODC 與 DataGrid 提供我們另一種更加方便的設計方式,其觀念與上一節非常類似, ADODC 物件用來與資料庫進行聯繫,而 DataGrid 則是顯示所聯繫的資料庫內容。底下就針對這兩種物件的屬性與參數加以說明。

ConnectionString屬性:這個屬性包含兩個最為重要的參數, Provider 與 Data Source 。

Provider參數:主要功能為指定存取資料庫所使用的驅動程式。

Data Source參數:主要功能為指定存取資料庫的完整路徑及名稱。

ADODC 物件:

CommandType屬性:主要功能為指定存取該資料庫的執行方式, adCmdTable 表示「資料表」。

RecordSource屬性:主要功能為指定存取該資料庫的資料表來源。

Page 41: 資料庫

DataSource屬性:因為 DataGrid 物件本身並不可以直接存取資料庫,必須將該屬性設定成某一個ADODC 物件。

AllowAddNew屬性:主要功能為允許使用者新增資料錄。

AllowDelete屬性:主要功能為允許使用者刪除資料錄。

AllowUpdate屬性:主要功能為允許使用者更新資料錄。

DataGrid 物件:

Page 42: 資料庫

上機操作 利用 ADODC 與 DataGrid 物件設計一程式,可以管理學生的通訊錄資料 (C:\My_stud.mdb) 。

【步驟一】因為 ADODC 與 DataGrid 物件是屬於外掛元件,所以我們必須先將這些元件引用進來,在工具箱中按下右鍵,並選擇設定使用元件。

Page 43: 資料庫

選擇「Microsoft ADO Data Control 6.0 (OLEDB)」與「Microsoft DataGrid Control 6.0(OLEDB)」。

Page 44: 資料庫

此時工具箱中會多出 ADODC 與 DataGrid 物件。

Page 45: 資料庫

【步驟二】在表單中佈置一個 ADODC 物件。

Page 46: 資料庫

在屬性視窗中,調整 ConnectionString屬性。

Page 47: 資料庫

選擇「使用連線字串」項目,並按下建立按鈕。

Page 48: 資料庫

在「提供者」標籤中,點選「Microsoft Jet3.51OLEDB Provider」項目,並按下ㄧ步按鈕。

Page 49: 資料庫

在「連線」標籤中,按下選擇或輸入資料庫名稱中,按下按鈕。

Page 50: 資料庫

選擇所要連接的資料庫名稱。

Page 51: 資料庫

完成後按下測試連線按鈕,進行連線測試的正確性。

Page 52: 資料庫

正確無誤,會出現「測試連線成功」的訊息。

最後按下確定按鈕。

Page 53: 資料庫

此時在使用連線字串中,會多出連線字串的文字。

Page 54: 資料庫

在屬性視窗中,調整 CommandType屬性,選擇 2-adCmdTable 。

Page 55: 資料庫

在屬性視窗中,調整 RecordSource屬性。

選擇「通訊錄」項目。

Page 56: 資料庫

【步驟三】在表單中佈置一個 DataGrid 物件。

在屬性視窗中,調整 DataSource屬性,選擇 Adodc1 項目。

Page 57: 資料庫

【步驟四】執行程式。

注意:只要將 DataGrid 物件的 AllowAddNew及 AllowDelete屬性,設定為 True ,此 DataGrid 物件就具備有新增資料與刪除資料的功能。

Page 58: 資料庫

ADO (ActiveX Data Objects)雖然 ADODC 與 DataGrid 可以提供我們另一種更加方便的設計方式,但是為了更加明瞭整個資料庫動作原理,我們可以利用 ADO (ActiveX Data Objects) 的設計方式來達成這個目標。在進行 ADO 設計之前,下列的物件是必須要有所了解的。假設資料表如下:

Field 物件

姓名 地址 電話

黃文劭 高雄市 500號 07-7777777

Page 59: 資料庫

Field 物件:為資料庫中最小的單位。Name屬性:欄位抬頭。Value屬性:欄位資料內容。

Fields集合物件

Field(0) Field(1) Field(2)

姓名 地址 電話

黃文劭 高雄市 500號 07-7777777

Fields 集合物件:為欄位的集合物件。Count屬性:可以得知 Field 物件數目。Name屬性:欄位抬頭。Value屬性:欄位資料內容。

Page 60: 資料庫

Recordset 物件:資料錄的集合,也就是完整的的ㄧ筆資料,如同指標一樣,指在 Fields 之前,其移動方法如下:MoveNext 方法:將目前資料錄移動到下ㄧ筆。MovePrevious 方法:將目前資料錄移動到上ㄧ筆。MoveFirst 方法:將目前資料錄移動到第ㄧ筆。MoveLast 方法:將目前資料錄移動到最後ㄧ筆。EOF 方法:判斷將目前資料錄是否為最後ㄧ筆之後。BOF 方法:判斷將目前資料錄是否為第ㄧ筆之前。

Page 61: 資料庫

上機操作 上機操作 利用 ADO 方式設計一程式,可以顯示學生的通訊錄資料 (C:\My_stud.mdb) 。【步驟一】執行「專案 / 設定引用項目」

Page 62: 資料庫

勾選「Microsoft ActiveX Data Object 2.0 Library」項目。

Page 63: 資料庫

【步驟二】先在表單中放置 CommandButton 與 ListBox 物件。

Page 64: 資料庫

【步驟三】修改物件的屬性。

Name屬性:ListBox1 → show_listCommandButton1 → run_btn

Caption屬性:CommandButton1 → 執行

Page 65: 資料庫

【步驟四】選擇『檢視』功能表中的「程式碼」,開始撰寫程式碼。

Dim data_conn As New ADODB.ConnectionDim data_recordset As New ADODB.RecordsetPrivate Sub Form_Load() Dim my_connstring As String my_connstring = "Provider=Microsoft.Jet.OLEDB.3.51;" & _ "Data Source=C:\My_stud.mdb" data_conn.Open my_connstring data_recordset.CursorLocation = adUseClient data_recordset.Open " 通訊錄 ", data_conn, adOpenKeyset, adLockPessimisticEnd SubPrivate Sub run_btn_Click() Dim s As String Dim i As Integer data_recordset.MoveFirst show_list.Clear

Page 66: 資料庫

While Not data_recordset.EOF s = "" For i = 0 To data_recordset.Fields.Count - 1 s = s & data_recordset.Fields(i).Value & Space(3) Next show_list.AddItem s data_recordset.MoveNext Wend End Sub

Page 67: 資料庫

【步驟五】執行程式:

Page 68: 資料庫

注意:我們其實可以遵循下列的順序就可以完成 ADO 的設計方式。先建立 Connection 物件。Dim data_conn As New ADODB.Connection開啟資料庫。data_conn.Open my_connstring開啟資料表。data_recordset.CursorLocation = adUseClient data_recordset.Open " 通訊錄 ", data_conn, adOpenKeyset, adLockPessimistic關閉資料表。data_conn.Close將 Connection 所使用的資源歸還系統。Set data_conn = Nothing