电竞比分网-中国电竞赛事及体育赛事平台

分享

VB5.0數(shù)據(jù)庫數(shù)據(jù)的選項錄入及選項增減與編輯

 玉雪龍山999 2012-02-14

VB5.0數(shù)據(jù)庫數(shù)據(jù)的選項錄入及選項增減與編輯

發(fā)布時間:2008-04-03 10:37:56  來源:編程愛好者網(wǎng)站  作者:編程愛好者網(wǎng)站  點擊:221

  摘要:在VB5.0數(shù)據(jù)庫編程中,應用數(shù)據(jù)綁定組合框和數(shù)據(jù)綁定網(wǎng)格等控件實現(xiàn)了數(shù)據(jù)的選項錄入、選項增減與選項編輯,提高了數(shù)據(jù)錄入效率和準確性。

關鍵詞:選項錄入 選項增減 選項編輯 數(shù)據(jù)庫

高效準確地錄入數(shù)據(jù)已成為MIS系統(tǒng)急待解決的問題,也是衡量MIS系統(tǒng)成功的重要標志。本文在VB5.0數(shù)據(jù)庫編程中應用數(shù)據(jù)綁定組合框和數(shù)據(jù)綁定網(wǎng)格等控件實現(xiàn)了數(shù)據(jù)的選項錄入、選項增減與數(shù)據(jù)編輯,提高了數(shù)據(jù)錄入效率、準確性及靈活性。(

考察MIS系統(tǒng)涉及的數(shù)據(jù)性質(zhì)、值域范圍和變化程度,可以發(fā)現(xiàn)在MIS系統(tǒng)數(shù)據(jù)錄入中往往出現(xiàn)下列情況

(1)連續(xù)錄入的幾條記錄中,同名字段的內(nèi)容完全相同或基本相同,如省份、職稱等;用戶逐字錄入速度慢易出錯,因此應充分利用數(shù)據(jù)庫中的已有數(shù)據(jù),設置一個復制鍵將上條記錄中的同名字段的內(nèi)容復制到當前記錄的同名字段中;

(2)有些字段的值域固定,因此程序應提供一個合法的選項框供用戶選擇來提高速度;

有些字段的值域較小且相對固定,但有一定的變化,如“省市”字段增設一個省或市,撤縣設市等等,程序除提供一個合法的基本的選項框供用戶選擇外,且應允許用戶對這個基本的選項框進行增減或編輯。

1 數(shù)據(jù)庫基本錄入界面的設計

首先用VB中的數(shù)據(jù)管理器創(chuàng)建一個Access數(shù)據(jù)庫“c:\MY.MDB”,在表“worker”中加入一個字段“Name”,然后在VB的缺省表單中拖入一個數(shù)據(jù)控件、一個文本框、一個表簽、一個命令按鈕組,合理設計界面布局,并設置各個控件的屬性,如表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 設置CTRL鍵復制前條記錄同名字段的內(nèi)容

在連續(xù)錄入的幾條記錄中,同名字段的內(nèi)容完全相同或基本相同,此時若能充分利用 數(shù)據(jù)庫中的已有數(shù)據(jù),設置一個復制鍵將上條記錄中的同名字段的內(nèi)容復制到當前記錄的同名字段中,將能大提高數(shù)據(jù)錄入速度。為了便于用戶操作,將這一功能賦予CTRL鍵,用戶在錄入新記錄或編輯原有記錄時,只要按下CTRL鍵,則上條記錄中的同名字段的內(nèi)容就復制到當前記錄的同名字段中。程序如下:

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復制上條記錄中的同名字段的內(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)生變化,如增設一個省或市,撤縣設市等等,程序除提供一個合法的基本的選項框供用戶選擇外,還應允許用戶對這個基本的選項框進行增減或編輯。下面的程序?qū)崿F(xiàn)了此功能,用戶雙擊表單則可對選項框進行增減和編輯,完成后再雙擊表單關閉編輯功能。

先建立一個數(shù)據(jù)庫“c:myrand.mdb”,其表“rank”中加入一個字段“name”;再從工具箱中拖入一個數(shù)據(jù)控件Data2,一個數(shù)據(jù)綁定組合框Dbcombol和數(shù)據(jù)綁定網(wǎng)格控件DBgrid1。屬性設置為:(1)Data2控件的:DatabaseName屬性設為“c:\myrand.mdb”,RecordSource為“Rank”;(2)Dbcombo控件的:Name設為Dbcombo1,RowSource設為Data2,ListFiele設為“Name”,DataSource設為Data1。DataField設為“Name”;(3)DBgrid控件的:Name設為DBgrid1,將AllowAddNew、AllowDelete、AllowUpdate均設為True, DataSource設為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() ’雙擊表單打開或關閉選項增減和選項編輯功能

Static dd As Boolean

dd=Not dd ’第一次雙擊打開編輯功能第二次雙擊關閉編輯功能

If dd Then

DBGrid1.Visible=True

Else

DBGrid1.Visible=False

Exit Sub

End If

End Sub

Private Sub DBGrid1-DblClick() ’選擇當前項后,再雙擊刪除當前記錄選項

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復制上條記錄中的同名字段的內(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復制上條記錄中的同名字段的內(nèi)容

If Data1.Recordset.EditMode=dbEditInProgress Or

Data1.Recordset.EditMode=dbEditAdd

Then

Text1.Text=last

End If

End If

End Sub

通過上述方法使錄入速度進一步得到提高,使用戶的功效達到事半功倍的效果。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多