Visual Basic 與資料庫

Download Report

Transcript Visual Basic 與資料庫

1-1 Visual Basic 與資料庫
資料庫
• VB的資料庫應用程式
可分三大部份:
1.使用者介面
2.資料庫引擎
3.資料儲存區
Microsoft Jet 資料庫引擎
1-2 VB 與 Access
• 皆可單獨建立本身的資料庫系統.
• 使用Microsoft Jet 資料庫引擎.
• VB較適合撰寫使用者介面與Jet資料庫引
擎控制碼.
• Access較適合建置資料庫檔案.
• VB只要編譯成 EXE 檔,在任何地方皆可
使用.
1.使用者介面
後端資料庫 Access
資料庫引擎
前端使用者介面 VB
2.Microsoft Jet 資料庫引擎
a.為動態連結程式庫(DLL)檔案.
b.可以處理儲存,頡取,更新資料.
c.提供查詢處理器,可以處理執行結構化語言
SQL 的查詢.
• 什麼是動態連結程式庫(DLL, Dynamic Link Libraries) ?
• 什麼是 SQL (Structure Query Language) ?
3.資料儲存區
使用 Access 資料庫
2-1 VB 與 Access連結運用
• VBㄅ透過 Jet 資料庫引擎存取 Access 資
料的方式可分為兩種:
1.資料控制項. --------------- 具有強大連結介面.
2.資料存取物件(DAO). ---- 完整程式撰寫介面.
資料控制項
資料存取物件
DAO
Customer.Recordset.MoveFirst
Customer.Recordset.MovePrevious
Customer.Recordset.MoveNext
Customer.Recordset.MoveLast
2-2 牛刀小試
•
•
•
•
•
•
•
1.建置 Access 的資料庫.
2.建立 VB 的表單及顯示控制項.
3.設定 VB 與 資料連結.
4.設定 VB 表單上各控制項屬性及連結.
5.顯示&瀏覽資料.
6.執行及修正.
7.儲存或編譯.
3-1 Recordset 物件的運用
• Recordset 係指目前資料表中記錄指標位置物件.
• 如 例1: 移動記錄指標
Data1.Recordset.MoveFirst
目前資料記錄指標
• 如 例2: 直接指向記錄位置
Data1.Recordsets(3).Fieds(2)
Fields(0)
Recordsets(3)
Fields(1)
Fields(2)
Fields(3)
Fields(4)
3-1-1 移動記錄的方法
•
•
•
•
MoveFirst 移至第一筆
MovePrevious 移至前一筆
MoveNext 移至下一筆
Movelast 移至最後一筆
* 上列4種 Recordset 物件移動方法中,皆須
以一個事件來驅動 ----- 按鈕控制項.
3-2 按鈕程式撰寫
1. 在表單上建立按鈕控制項.
2.分別在控制項中 Click 事件撰寫
對應程式
3.執行.
* Click = 按下
3-3 BOF 與 EOF
• BOF 屬性 = 傳回真值 True ; 表示 Recordset 位
置在第一筆之前.
• EOF 屬性 = 傳回真值 True ; 表示 Recordset 位
置在最後一筆之後.
Recordset.BOF = True
Recordset.BOF = Tr
= False
第一筆
= False
最後一筆
Recordset.EOF = True
Recordset.EOF = Tr
3-3-1 撰寫程式處理 BOF 及EOF
1.程式流程 :
開始
BOF=T
Recordset
移至第一筆
結束
2.程式撰寫位置
----- Data 控制項中之Reposition 事件
3-3-2 需要加強的部份(一)
• 超過資料範圍時,自動隱藏按
鈕
……………………………..
Enabled 屬性
• 按鈕增加圖示顯
示
…………………
…... Style & Picture 屬性
• 顯示指標所在記錄序
號 …………………… AbsolutePosition
3-3-2 需要加強的部份 (二)
• 增加狀態列控制項
……………………………. StatusBar
• 顯示訊息視
窗
……………………………..
MsgBox命令
• 按鈕說明文字
…………………………. ToolTipText屬性
MsgBox ([提示],[按鈕型態],[標題)
語法: MsgBox “[訊息]” , [型式] , “[標
題]”
•
•
•
•
•
•
vbOKOnly
VbOKCancel
VbAbortRetryIgnore
VbYesNoCancel
VbYesNo
VbRetryCancel
0
1
2
3
4
5
只顯示 OK 按鈕。
顯示 OK 及 Cancel 按鈕。
顯示 Abort、 Retry 及 Ignore 按鈕。
顯示 Yes、No 及 Cancel 按鈕。
顯示 Yes 及 No 按鈕。
顯示 Retry 及 Cancel 按鈕。
•
•
•
•
VbCritical
VbQuestion
VbExclamation
VbInformation
16
32
48
64
顯示 警告 圖示。
顯示 問號 圖示。
顯示驚嘆號 圖示。
顯示 訊息 圖示。
•
•
•
•
VbDefaultButton1
VbDefaultButton2
VbDefaultButton3
VbDefaultButton4
0
256
512
768
第一個按鈕是預設值。
第二個按鈕 是預設值。
第三個按鈕是預設值。
第四個按鈕是預設值。
MsgBox ( ) 函數傳回值
•
•
•
•
•
•
•
vbOK
vbCancel
vbAbort
vbRetry
vbIgnore
vbYes
vbNo
1
2
3
4
5
6
7
OK
Cancel
Abort
Retry
Ignore
Yes
No
3-4-1 物件
• 物件(Object)
---- 介面物件 : 1.表單 2.控制項
---- 系統物件 : 如印表機
---- 資料存取物件 : 如 Recordset
• 物件三要素
每個物件都由 屬性 . 事件 .方法 所構成.
3-4-2 物件的屬性
• 屬性即[東西的特徵].
如 表單中之 Name屬性.Caption屬性….
• 設定物件屬性值,可透過兩種方式:
1. 由屬性表直接設定之.
2. 由程式設定
語法:
物件名. 屬性名 = 屬性值
例:
Form1.Caption = “維護表單”
3-4-3 物件的事件
• 事件即是一個動作或狀況. 如: 按一下…
物件選項
事件
選項
3-4-4 物件的方法
• 方法是指作用在物件上的內建指令或函
數.
• 如: data1.Recordset. MoveFirst
控制項物件
資料存取物件
方法
4-1 資料連結功能的控制項
表單的設計 :
• 色彩使用 -- 以灰色為標準色,輸入以白色表示
• 控制項的配置與間距 -一般控制項高度 300
垂直間距
60/120
• 標籤對齊 -- 向左對齊
• 標準字型 -- 9點,新細明體(中文字) ;
8點,Courier/FixedSys
• 使用 Frame 來組合相關控制項
Data
資料控制項
屬性 :
方法 :
事件 :
Connect
Refresh 更新
Reposition
DatabaseName
RecordSource
ReadOnly 唯讀
Exclusive 獨佔
Label
屬性 :
Caption
Font
FontName
FontSize
……….
Enable
方法 :
標籤
事件 :
TextBox 文字框
屬性 :
Text
Font
MultiLine 多行
ScrollBars 卷軸
PasswordChar
密碼
方法 :
事件 :
Change
GetFocus
OptionButton 選項鈕
---- 由Value屬性值(True/False)決定
屬性 :
Value 值
Caption 標題
Style 文字或圖
Picture 圖
事件 :
Click 選取
CheckBox 檢核框
屬性 :
•同OptionButton
•Value 值:
0 = 不核取
1 = 核取
2 = 無效(灰色)
•可複選
Frame 框架
---- 控制項容器,以建立控制項群組
•必須使用剪下及貼上方式才能收納控制項
Line 線
屬性 :
BorderColor 線段顏色
BorderStyle 線段樣式 0~6
BorderColor 線段寬度
Shape 方形
屬性 :
BackColor 背景顏色
BackStyle 背景樣式 0 - 透明 1 - 不透明
Shape 形狀 0-矩形 1-正方 2-橢圓 3-圓
4-圓角矩形 5-圓角正方
ListBox 列表框
屬性 :
方法 :
Text
AddItem 新增
項目到列表框
Sorted 排序
RemoveItem刪
除項目
事件 :
ComboBox 複合框
屬性 :
方法 :
Text
AddItem 新增
項目到複合框
Style 樣式
0 - 下拉式+文字框
1 - 固定式+文字框
2 - 單純式
RemoveItem刪
除項目
DBList 資料連結列表框
• 使用前須先「設定使用元件」 「Microsoft Data Bound
List Controls 5.0 」.
屬性 :
• RowSource 清單選項來源資料表
• ListField 清單選項來源資料表中對應之欄位
* DataSource 輸入資料連結資料表
* DataSource 輸入資料連結資料表中對應之欄位
Text 點選之選項值
DBCombo 資料連結複合框
屬性 :
• RowSource 清單選項來源資料表
• ListField 清單選項來源資料表中對應之欄位
* DataSource 輸入資料連結資料表
* DataSource 輸入資料連結資料表中對應之欄位
* Text 點選之選項值
OLE 收納器控制項
屬性 :
• SizeMode 大小樣式 0 - 裁減
1 - 不用依比例縮放
2 - 自動調整收納器
3 - 依比例縮放
• DataSource
• DataField
功能表設計
• 概念
可分「頂層功能表」及「快顯功能表」.
功能項目後面加了(…),代表將會啟動對話方塊.
功能項目後面加了(),代表另有子功能表.
以分隔線區分功能項目類別.
功能表編輯器
屬
性
區
編
輯
區
•屬性區
標題 Caption …………. 功能名稱
名稱 Name …………… 物件代表名稱
快速鍵 ShortCut ……… 設定該功能之快速鍵
核取設定 Checkd ……. 設定該功能項目是否為核
取項目
有效 Enabled ………….設定該功能項目是否有效
可看見 Visble …………設定該功能項目是否為可
見
•程式: [功能項目Name].[屬性] = 值
•編輯區
改變排列順序
改變排列層次
•對應命令
於表單功能項目下,撰寫其 Click事件程序
MDI 多重文件介面
• 所謂 MDI (Muti Document Interface) 多重文
件介面,指在一個主視窗之下,可以擁有許多
子視窗.
• 建立主表單(MDI): 「專案」「新增MDI表單」.
• 建立子表單: 改變表單屬性 [MDIchid]值為 True 即可.
第五章 系統分析
•
•
•
•
•
系統功能架構規劃.
資料庫建立.
逐一設計子功能流程.
測試.
修正.
5-1 系統功能架構規劃
啟始表單
登入表單
MDI主表單
資料維護
會
員
資
料
維
護
圖
書
資
料
維
護
借
書
還
書
資
料
維
護
出
版
社
資
料
維
護
報表列印
密
碼
及
使
用
者
維
護
視窗
說明
5-2 製作啟始表單
•
•
•
•
•
•
•
BorderStyle 表單框線樣式
ControlBox 控制圖示列顯示
Caption 標題
Picture 置入圖片
MDIChild 子表單設定
Timer 物件 -- 5秒後,關閉表單
Timer.interval = 秒 * 1000 觸動時間事件
表單展開方式
•
•
•
•
•
•
•
•
Me.Height
Me.Width
Me.Left
Me.Top
Screen.Width
Screen.Height
Show
Hide
表單高度
表單寬度
表單左邊位置
表單上緣位置
螢幕寬度
螢幕高度
顯示表單
隱藏表單
表單展開方式 - 上下展開
Dim i As Integer
For i = 1 To 850
Me.Height = i * 5
'表單高度 5 ~ 4250
Me.Width = 6000
‘表單寬度 = 6000
'表單左邊位置
Me.Left = (Screen.Width - Me.Width) \ 2
'表單上緣位置
Me.Top = (Screen.Height - Me.Height) \ 2 - 1000
Me.Show
Next i
5-3 系統登入表單
顯示表單
選擇使用者
及輸入密碼
密碼是否正確?
顯示錯誤訊息
開啟主表單
製作 螢幕保護程式 - 1
• 概念
 螢幕保護程式其實為一執行檔( .exe )。
 祇要在 VB5 中 選取功能表中「檔案/製
成 XXX .exe」將執行檔副檔名改為( .scr)
即可。
 存放路徑為 C:\Windows 或
C:\Windows\System
製作 螢幕保護程式 - 2
• 程式設計技巧
 表單屬性:
Caption = 空白
BorderStyle = 0 - 沒有框線
WindowsState = 2 - 最大化
 以 Timer 物件來控制動畫。
 在 Form 之 KeyDown() 及 MouseClick 事
件,關閉表單。
製作 螢幕保護程式 - 3
• 進階修正
 螢幕保護程式啟動時,其附帶參數可用
來判斷啟動方式:
”/a ”或 ”/A ”─ 按下「密碼保護 > 變更」
”/c ”或 ”/C ”─ 按下「設定值」
”/p ”或 ”/P ”─ 按下「初次選取」
 使用 App.PrevInstance 來判斷是否已在
執行程式,避免重複啟動。
6 - 2 資料維護 - 修改
• 修改資料流程:
輸入搜查條件 。如 會員姓名 輸入 “William”
搜查資料錄符合之記錄
修改該筆記錄
•
輸入搜查條件方式:
 開啟新視窗
 利用現有輸入表單控制項
•
搜尋資料方式:
 使用 FindFirst … 系列方法
 使用 SQL 搜尋語法
•
輸入搜查條件方式 (1) - 開啟新視窗
 InputBox 函數
語法:InputBox(對話盒內容,標題)
傳回值:按[確定]鍵 = 輸入內容字串
按[取消]鍵 = “”
範例:
cFind = InputBox(“請輸入欲尋找的會員姓名”,“搜尋會員資料”)
•
輸入搜查條件方式 (2) - 找不到時…
 如何判斷是否找到
NoMatch 方法
語法:data1.Recordset.NoMatch
傳回值:True 找到 False 找不到
範例:
If data1.Recordset.nomatch then
MsgBox “查無符合 ” + “ 之會員資料 ! ”,vbOKonly,“提示訊
息”
Endif
6 - 3 資料維護 - 刪除
• 刪除資料流程:
輸入搜查條件 。如 會員姓名 輸入 “William”
搜查資料錄符合之記錄
確認是否刪除符合之記錄
刪除 該筆記錄
移至下一筆資料記錄且更新資料
•
刪除資料方式
 Delete 方法
語法:data1.Recordset.Delete
範例:
data1.Recordset.Delete
•
確認刪除資料方式
 MsgBox 函數
語法:MsgBox(對話盒內容,對話設定參數,標題)
傳回值:按鍵參數
範例:
If MsgBox(“你確定要刪除該筆記錄嗎 ?” , vbYesNo , “刪除確認”) = vbYes
Then
data1.Recordet.Delete
Endif
•
移至下一筆並更新資料
 data1.Refresh 方法
範例:
Data1.Recordset.MoveNext
Data1.Refresh
6 - 4 資料維護 - 瀏覽
• 瀏覽資料控制項 -- DBGrid
 設定使用元件 -- 「Microsoft Data Bound Grid Control」。
 選用 DBGrid 控制項
• DBGrid -- 常用屬性
 DataSource
 Align 排列方式
 AllowAddNew 允許新增
 AllowDelete 允許刪除
 AllowUpdata 允許更新
6 - 5 SQL 語法
• SQL
(Structured Query Language)
結構化查詢語言
• 最基本的語法 --- 起手式
 SELECT [欄位名稱] FROM [資料表名稱]
 範例:
SELECT * from [02-借書會員資料表]
所有欄位
SELECT [會員編號],[會員姓名] from [02-借書會員資料表]
 [欄位名稱]及[資料表名稱] 須加上[].
 SQL語言設定為 data控制項之RecordSource屬性
 範例:
data1.recordSource = “SELECT * from [02-借書會員資料
表]”
data1.Refresh
• 基本語法 (二) --- 條件篩選式
 SELECT [欄位名稱] From [資料表名稱] Where 條件式
 範例:
Select * From [02-借書會員資料表] Where [會員姓名] Like “林*”
• 基本語法 (三) --- 排序式
 SELECT [欄位名稱] From [資料表名稱] Order By [欄位]
 範例:
Select * From [02-借書會員資料表] Order By [會員姓名]
 預設排序為 [由小至大] , 後面加 Desc 改為 [由大至小]
 範例:
Select * From [02-借書會員資料表] Order By [會員姓名] Desc