摘要:隨著信息技術的快速發展,在一個數據較多的信息處理系統中,經常會涉及到不同格式的數據無法集中處理,影響了系統的正常運行。文章主要介紹了一種常用連接數據庫的方法,闡述如何利用Visual Basic程序來訪問數據庫Microsoft Access以及在Visual Basic訪問數據庫的過程中常見問題,并給出了訪問數據庫的編程步驟、程序代碼以及安裝程序的制作方法。
關鍵詞:Visual Basic;數據庫
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2009)33-9588-03
Analysis of Methods and Questions of Access to Database Based on VB
HE Yuan
(Fujian College of Water Conservancy and Electric Power, Yongan 366000, China)
Abstract: With the fast development of the information technology, in a information process systems with lots of data, we may often encounter that different forms are unable to concentrate on dealing with, which influence the normal running of system. This article has mainly introduced the method of a common connection with database, explain how to make use of Visual Basic procedure to visit the database Microsoft Access and the common questions while Visual Basic visits the database, and provide programming step of visiting database, procedure code and preparation method for the installation procedure.
Key words: visual basic; database
Visual Basic語言是一門基礎的編程語言,Visual Basic也是大家較為熟悉的編程工具,通過它可以輕松地編寫各種應用程序。數據庫編程是編程世界中較為特殊的一個領域,它涉及了大量與編程相對獨力的數據庫的知識,所以另許多人望而生畏。但使用Visual Basic連接數據庫則使問題變得簡單。本文主要介紹一種利用Visual Basic編寫數據庫程序的方法和用VB訪問數據庫應注意的幾個問題。
1 Visual Basic訪問數據庫的方法
1.1 使用Microsoft Access建立數據庫
首先打開Microsoft Access新建數據庫,單擊[工具]菜單上的[數據庫實用工具]|[轉換數據庫]|[轉為Access97文件格式],在隨后出現的對話框中的文本框中輸入mystudent.mdb,并單擊[保存]按鈕將該數據庫保存在d盤,。經過如此轉換,使用VB6.0的數據捆綁控件就可以直接訪問了,如圖1所示。
1.2 使用DataControl讀取數據庫
1) 在VB中新建一個工程1,在窗體中建立一個DataControl控件,將此控件connect屬性設定為access,data-basename屬性為d:\\mystudent.mdb,recordsource屬性為mystudent。
2) 在此窗體中建立六個文本框,將他們的[datasourse]屬性改為[data1],并分別依次將[datafied]屬性改為[學號]、[出生年月]、[姓名]、[政治面貌]、[性別]、[所屬系部]。相應的再建立六個標簽及四個命令按鈕[增加]、[刪除]、[更新]、[退出],如圖2所示。
3) 單擊[運行],可用data1控件移動紀錄并能更新紀錄。
4) 在各命令按鈕的command-click()中寫入相應的代碼,可實現增加,刪除,更新、退出等功能。代碼如下:
PrivateSubData1_Reposition()
Data1.Caption=\"記錄\"Data1.Recordset.AbsolutePosition+1
EndSub
PrivateSubData1_Validate(ActionAsInteger,SaveAsInteger)
IfSave=TrueThen
mb=MsgBox(\"要保存嗎?\",vbYesNo,\"保存記錄\")
Ifmb=vbNoThen
Save=False
Data1.UpdateControls
EndIf
EndIf
EndSub
PrivateSubCommand1_Click(IndexAsInteger)
SelectCaseIndex
Case0'添加記錄
Data1.Recordset.AddNew
Case1'刪除記錄
mb=MsgBox(\"要刪除嗎?\",vbYesNo,\"刪除記錄\")
Ifmb=vbYesThen
Data1.Recordset.Delete
Data1.Recordset.MoveLast
EndIf
Case2'更新記錄
Data1.UpdateRecord
Data1.Recordset.Bookmark=Data1.Recordset.LastModified
Case3'退出
UnloadMe
EndSelect
EndSub
然后在Visual Basic6.0提供的[設計安裝程序向導]的提示下(如圖3)依次點擊[開始]、[程序]、[MicrosoftVisual Basic6.0中文版]、[MicrosoftVisual Basic6.0中文版工具][打包和展開向導],選[添加]按扭并挑選C:\\vb98\\mystudent\\mystudent.mdb數據庫,[下一步]之后,單擊[單個的壓縮文件],再[下一步]之后,修改安裝標題,此后在連續出現的[啟動菜單項]、[安裝位置]窗口,點擊[下一步],當出現[共享文件]窗口,選取mystudent.mdb文件,單擊[下一步],既可完成安裝程序的制作。
圖3
2 用VB訪問數據庫應注意的幾個問題
1) 如何來訪問數據庫。VB訪問數據庫提供二種方法,其一是用數據控制,其二是使用對象來訪問數據庫,在這兩種方法中,都涉及到數據庫的屬性。但有時設置好connect,databasename后再設置recordsoure時,經常會出現“無法找到可安裝的ISAM”錯誤。這里所講的[ISAM]是在VB.INI文件中,它為VB指明所訪問數據庫的動態鏈接庫。而在connect中所用的數據庫的名稱必須于[ISAM]中的數據庫的名稱相符合,這樣就可以輕松地打開數據庫。
2) 關于書簽指針即bookmark屬性。在VB訪問數據庫時,數據庫中的記錄是沒有記錄號的,但VB提供了bookmark屬性來記錄當前訪問記錄的記錄指針,這個bookmark就相當于記錄號。但在實際編程時發現在使用數據庫控制和用對象打開數據庫來訪問同一個數據庫時的bookmark屬性在這兩者之間并不通用。當用bookmark記錄了用數據控制打開的數據庫的當前記錄指針,然后使用對象打開此數據庫后,用數據控制的bookmark來查找定位記錄時,將會導致bookmark不合法的錯誤。
3) 要注意hide方法和unload方法的區別。Hide方法是將你所指定的表單隱藏起來,但并不從內存中刪除它,故此表單的內容并沒有改變。而unload方法是將指定的表單刪除掉(從屏幕上消失并從內存中刪除),如在當前表單中使用格子控制來顯示記錄內容,然后用hide方法隱藏此表單,隨后你重新選定記錄裝入格子控制,用show方法顯示隱藏的表單,此時格子里的內容依然是舊的內容而新內容并沒有代替舊內容。這里就需要使用unload方法將表單刪除,然后新記錄裝入格子控制,用show方法顯示時,就可以看到新的內容。
4) 要注意變量類型的匹配。在訪問數據庫時,顯示記錄一般都使用格子控制,其中grid.text是子符串類型,但有些記錄的數據項是空的(1)即沒有數據。若將1裝入grid.text顯然會出錯,所以這里就需要加入類型的判斷,將1數據項賦于空格子符串,這樣就可以解決此問題。
5) 如何實現網格式打印數據庫記錄。VB所提供的打印機輸出對象有表單、文本框、圖片框和報表。這里可以使用報表控制來實現網格式打印輸出,但報表控制需要報表格式文件.prt,此文件由VB提供的報表編輯器來設計所需要的報表格式,而產生的報表文件是輸出數據庫的所有記錄,但往往我們只需要數據庫中符合條件的部分記錄。那么如何實現部分記錄的網格式打印呢?我們可使用的方法是用報表編輯器設計一個連接空的數據庫文件,然后在程序運行中將符合條件的部分記錄裝入空的數據庫中,再使用報表控制來打印輸出,這樣就可以實現任何你所需要數據的報表打印輸出。
6) 要注意調用系統的DLL(dynamic-link libraries,動態鏈接程序庫)。VB是一種高級程序設計語言,不具備低級語言的一些功能,它本身對于訪問機器硬件等操作比較困難。若通過DLL調用Windows應用程序接口(API)函數,就可以方便地訪問硬件。系統的DLL有keynel庫,gdi庫和user庫,其中keynel庫負責內存管理和文件管理,gdi庫負責顯示和打印功能,user 負責鍵盤、鼠標、聲音、通信、系統定時的管理。同時,VB也可以調用任何語言所編寫的DLL。所以要想編出高質量的應用程序就必須學會如何調用DLL來實現所需的功能。
3 結束語
數據庫是計算機應用最廣泛的技術之一 幾乎所有的部門都會涉及到數據庫的應用,而如何更好的利用數據庫技術則是我們當前最為關注的問題,為此,我們利用Visual Basic的數據庫功能為我們打開了通向數據庫技術的大門,使得數據庫技術不再那么遙不可及,可與程序設計語言更加緊密的結合在一起,為我們的學習和工作提供更多的方便。
參考文獻:
[1] 王志東.用VB訪問數據庫[J].集寧師專學報,2002(4).
[2] 李菲.淺談高職高專VB課中建立報表的方法[J].電腦知識與技術,2009(16).
[3] 夏萬志,李小白,薛國利.基于VB的學生信息管理系統的設計[J].電腦知識與技術,2009(18).