VB5.0數(shù)據(jù)庫數(shù)據(jù)的選項錄入及選項增減與編輯
發(fā)表時間:2024-02-25 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]摘要:在VB5.0數(shù)據(jù)庫編程中,應(yīng)用數(shù)據(jù)綁定組合框和數(shù)據(jù)綁定網(wǎng)格等控件實現(xiàn)了數(shù)據(jù)的選項錄入、選項增減與選項編輯,提高了數(shù)據(jù)錄入效率和準(zhǔn)確性。 關(guān)鍵詞:選項錄入 選項增減 選項編輯 數(shù)據(jù)庫 高效準(zhǔn)確地錄入數(shù)據(jù)已成為MIS系統(tǒng)急待解決的問題,也是衡量MIS系統(tǒng)成功的重要標(biāo)志。本文在VB5.0數(shù)據(jù)庫編程...
摘要:在VB5.0數(shù)據(jù)庫編程中,應(yīng)用數(shù)據(jù)綁定組合框和數(shù)據(jù)綁定網(wǎng)格等控件實現(xiàn)了數(shù)據(jù)的選項錄入、選項增減與選項編輯,提高了數(shù)據(jù)錄入效率和準(zhǔn)確性。
關(guān)鍵詞:選項錄入 選項增減 選項編輯 數(shù)據(jù)庫
高效準(zhǔn)確地錄入數(shù)據(jù)已成為MIS系統(tǒng)急待解決的問題,也是衡量MIS系統(tǒng)成功的重要標(biāo)志。本文在VB5.0數(shù)據(jù)庫編程中應(yīng)用數(shù)據(jù)綁定組合框和數(shù)據(jù)綁定網(wǎng)格等控件實現(xiàn)了數(shù)據(jù)的選項錄入、選項增減與數(shù)據(jù)編輯,提高了數(shù)據(jù)錄入效率、準(zhǔn)確性及靈活性。(
考察MIS系統(tǒng)涉及的數(shù)據(jù)性質(zhì)、值域范圍和變化程度,可以發(fā)現(xiàn)在MIS系統(tǒng)數(shù)據(jù)錄入中往往出現(xiàn)下列情況
(1)連續(xù)錄入的幾條記錄中,同名字段的內(nèi)容完全相同或基本相同,如省份、職稱等;用戶逐字錄入速度慢易出錯,因此應(yīng)充分利用數(shù)據(jù)庫中的已有數(shù)據(jù),設(shè)置一個復(fù)制鍵將上條記錄中的同名字段的內(nèi)容復(fù)制到當(dāng)前記錄的同名字段中;
(2)有些字段的值域固定,因此程序應(yīng)提供一個合法的選項框供用戶選擇來提高速度;
有些字段的值域較小且相對固定,但有一定的變化,如“省市”字段增設(shè)一個省或市,撤縣設(shè)市等等,程序除提供一個合法的基本的選項框供用戶選擇外,且應(yīng)允許用戶對這個基本的選項框進(jìn)行增減或編輯。
1 數(shù)據(jù)庫基本錄入界面的設(shè)計
首先用VB中的數(shù)據(jù)管理器創(chuàng)建一個Access數(shù)據(jù)庫“c:\MY.MDB”,在表“worker”中加入一個字段“Name”,然后在VB的缺省表單中拖入一個數(shù)據(jù)控件、一個文本框、一個表簽、一個命令按鈕組,合理設(shè)計界面布局,并設(shè)置各個控件的屬性,如表1。
加入下列代碼即可得到一個數(shù)據(jù)庫基本輸入窗口:
Private Sub Command1-Click(Index As Integer)
Select Case Index
Case0'addnew
Data1.Recordset.Addnew
Text1.SetFocus
Case1'edit
Data1.Recordset.Edit
Text1.SetFocus
Case2'giveup
Data1.Recordset.Cance1Update
Data1.Refresh
Case3'save
Data1.Recordset. Update
Data1.Refresh
Case4'delete
Data1.Recordset.Delete
Data1.Refresh
Case5'end
End
End Select
End Sub
表一
控件名 屬性名 屬性值
Name Data1
Data DataBaseName "c:\MY.MDB"
RecordSource "worker"
Name Text1
Text Text ""
DataSource "Data1"
DataField Name
Label Caption "姓名"
Name Command1
CommandButton Index 0 1 2 3 4 5
Caption "新增""編輯""放棄""保存""刪除""退出"
2 設(shè)置CTRL鍵復(fù)制前條記錄同名字段的內(nèi)容
在連續(xù)錄入的幾條記錄中,同名字段的內(nèi)容完全相同或基本相同,此時若能充分利用 數(shù)據(jù)庫中的已有數(shù)據(jù),設(shè)置一個復(fù)制鍵將上條記錄中的同名字段的內(nèi)容復(fù)制到當(dāng)前記錄的同名字段中,將能大提高數(shù)據(jù)錄入速度。為了便于用戶操作,將這一功能賦予CTRL鍵,用戶在錄入新記錄或編輯原有記錄時,只要按下CTRL鍵,則上條記錄中的同名字段的內(nèi)容就復(fù)制到當(dāng)前記錄的同名字段中。程序如下:
Option Explicit
Dim last As String
Private Sub Form-Activate()
Dim mark As Variant
mark=Data1.Recordset.Bookmark
Data1.Recordset.MoveLast
last=Data1.Recordset("name")
Data1.Recordset.Bookmark=mark
End Sub
Private Sub Text1-KeyDown
(KeyCode As Integer,Shift As Integer)
If Shift=2 Then '按下CTRL-KEY復(fù)制上條記錄中的同名字段的內(nèi)容
If Data1.Recordset.EditMode=dbEditInProgress
Or Data1.Recordset.EditMode=dbEditAdd Then
Text1.Text=last
End If
End If
End Sub
Private Sub Command1-Click(Index As Integer)
Select Case Index
Case0'addnew
Data1.Recordset.Addnew
Text1.SetFocus
Case1'edit
Data1.Recordset.Edit
Text1.SetFocus
Case2'giveup
Data1.Recordset.Cance1Update
Data1.Refresh
Case3'save
Data1.Recordset. Update
Data1.Recordset.MoveLast
last=Data1.Recordset("name") 'save the text to last
Data1.Refresh
Case4'delete
Data1.Recordset.Delete
Data1.Refresh
Case5'end
End
End Select
End Sub
3 數(shù)據(jù)的選項錄入、選項增減及選項編輯
有些字段的值域較小且相對固定,但會有一定的變化,如“省市”字段會產(chǎn)生變化,如增設(shè)一個省或市,撤縣設(shè)市等等,程序除提供一個合法的基本的選項框供用戶選擇外,還應(yīng)允許用戶對這個基本的選項框進(jìn)行增減或編輯。下面的程序?qū)崿F(xiàn)了此功能,用戶雙擊表單則可對選項框進(jìn)行增減和編輯,完成后再雙擊表單關(guān)閉編輯功能。
先建立一個數(shù)據(jù)庫“c:myrand.mdb”,其表“rank”中加入一個字段“name”;再從工具箱中拖入一個數(shù)據(jù)控件Data2,一個數(shù)據(jù)綁定組合框Dbcombol和數(shù)據(jù)綁定網(wǎng)格控件DBgrid1。屬性設(shè)置為:(1)Data2控件的:DatabaseName屬性設(shè)為“c:\myrand.mdb”,RecordSource為“Rank”;(2)Dbcombo控件的:Name設(shè)為Dbcombo1,RowSource設(shè)為Data2,ListFiele設(shè)為“Name”,DataSource設(shè)為Data1。DataField設(shè)為“Name”;(3)DBgrid控件的:Name設(shè)為DBgrid1,將AllowAddNew、AllowDelete、AllowUpdate均設(shè)為True, DataSource設(shè)為Data2。程序代碼如下:
Option Explicit
Dim last As String
Dim dd As Boolean
Private Sub Form-Activate()
Dim mark As Variant
mark=Data1.Recordset.Bookmark
Data1.Recordset.MoveLast
last=Data1.Recordset("name")
Data1.Recordset.Bookmark=mark
Text1.Visible=True
DBCombol.Visible=False
DBGrid1.Visible=False
End Sub
Private Sub Form-DblClick() '雙擊表單打開或關(guān)閉選項增減和選項編輯功能
Static dd As Boolean
dd=Not dd '第一次雙擊打開編輯功能第二次雙擊關(guān)閉編輯功能
If dd Then
DBGrid1.Visible=True
Else
DBGrid1.Visible=False
Exit Sub
End If
End Sub
Private Sub DBGrid1-DblClick() ’選擇當(dāng)前項后,再雙擊刪除當(dāng)前記錄選項
Data2.Recordset.Delete
DBCombol.Refresh
DBGrid1.Refresh
End Sub
Private Sub DBGrid1-LostFocus()
DBCombol.Refresh '刷新DBCombol
End Sub
Private Sub Command1-Click(Index As Integer)
Dim i As Integer
Select Case Index
Case0'addnew
Data1.Recordset.Addnew
DBCombol.SetFocus
DBCombol.Visible=True
Text1.Visible=False
Case1'edit
Data1.Recordset.Edit
Text1.SetFocus
DBCombol.Visible=False
Text1.Visible=True
Case2'giveup
Data1.Recordset.Cance1Update
Data1.Refresh
DBCombol.Visible=False
Text1.Visible=True
Case3'save
Data1.Recordset. Update
Data1.Recordset.MoveLast
last=Data1.Recordset("name")
Data1.Refresh
DBCombol.Visible=False
Text1.Visible=True
Case4'delete
Data1.Recordset.Delete
Data1.Refresh
Case5'end
End
End Select
End Sub
Private Sub DBCombol-KeyDown
(KeyCode As Integer,Shift As Integer)
If Shift=2 Then '按下CTRL-KEY復(fù)制上條記錄中的同名字段的內(nèi)容
If Data1.Recordset.EditMode=dbEditInProgress Or
Data1.Recordset.EditMode=dbEditAdd
Then
DBCombol.Text=last
End If
End If
End Sub% Private Sub Text1-KeyDown(KeyCode As Integer,Shift As Integer)
If Shift=2 Then '按下CTRL-KEY復(fù)制上條記錄中的同名字段的內(nèi)容
If Data1.Recordset.EditMode=dbEditInProgress Or
Data1.Recordset.EditMode=dbEditAdd
Then
Text1.Text=last
End If
End If
End Sub
通過上述方法使錄入速度進(jìn)一步得到提高,使用戶的功效達(dá)到事半功倍的效果。