VB利用ADO控件連接access數(shù)據(jù)庫
今天告訴大家VB利用ADO控件連接access數(shù)據(jù)庫的兩種方法:
一種是在 adodc1的屬性里設(shè)置數(shù)據(jù)庫文件的路徑,這種方法的優(yōu)點是簡單易操作,缺點是,當源文件換了地方后,要重新設(shè)置數(shù)據(jù)庫的路徑,否則連接不上數(shù)據(jù)庫了。
一種是用代碼設(shè)置數(shù)據(jù)庫的路徑,這種方法的優(yōu)點就是只要源文件和數(shù)據(jù)庫在同一文件夾下,無論移動到哪里都能連接上。
如果沒有建立好數(shù)據(jù)庫的話,先建立一個數(shù)據(jù)庫,然后建立一個表比如我們建的表名為message,然后把里面的字段名稱和數(shù)據(jù)類型都按自己的需要設(shè)置好.然后保存就可以了.
打開Microsoft Visual Basic6.0 我用的是VB6.0,在需要調(diào)用數(shù)據(jù)庫的窗體上加入一個adodc控件,默認名稱為:Adodc1。默認的情況下工具欄里是沒有這個控件的,可以打開工程---部件(快捷鍵CTRL+T),去掉只顯示選定項的勾,然后勾上Microsoft ADO Data Control(OLEDB),然后確定,工具欄就會多了一個adodc的控件。
第一種方法:設(shè)置adodc1的屬以連接數(shù)據(jù)庫.在adodc1控件上右鍵--Adodc屬性--使用連接字符串--生成--Microsoft Jet 4.0 OLE DB Provider--下一步--選擇或輸入數(shù)據(jù)庫名稱---找到要連接的數(shù)據(jù)庫后,確定.然后記錄源設(shè)置屬性. 如果要把內(nèi)容提交到數(shù)據(jù)庫一般使用adCmdTable. 表選擇要連接的表。
設(shè)置完畢后就可以了.
如果我們想把內(nèi)容提交到數(shù)據(jù)庫.舉個例子..
在窗體建立一個文本框,設(shè)置屬性中的DataSource為adodc1 DataField為要連接的數(shù)據(jù)庫的字段名。如果數(shù)據(jù)庫中有字段,會讓你選擇。
設(shè)置好后在窗體加一個添加記錄和一個提交的按鈕,設(shè)置代碼:
Private Sub Command1_Click()
Adodc1.Recordset.Update '保存
Adodc1.Refresh '刷新
End Sub
添加按鈕代碼:
Private Sub Command2_Click()
Adodc1.Recordset.AddNew '添加新紀錄
Adodc1.Recordset("姓名").Value = Text1.Text
End Sub
第二種方法:
在窗體添加Adodc控件一個text控件 一個添加記錄按鈕一個提交按鈕
在窗體設(shè)置代碼:
Private Sub Form_Load()
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\db1.mdb;Persist Security Info=False" '設(shè)置數(shù)據(jù)庫路徑
Adodc1.CommandType = adCmdText '設(shè)置記錄源
Adodc1.RecordSource = "select * from message" '連接數(shù)據(jù)庫的message表文件
Set Text1.DataSource = Adodc1
text1.DataField = "姓名"
End Sub
添加記錄按鈕代碼:
Private Sub Command1_Click()
Adodc1.Recordset.AddNew '添加新紀錄
End Sub
提交代碼:
Private Sub Command2_Click()
Adodc1.Recordset.Update '保存
Adodc1.Refresh '刷新
End Sub
好了連接方法講完了,我都在機子上測試過了,因該沒有什么問題的。如果有問題請多看幾遍,或看些別人寫的程序代碼,會有很大進步的,我的VB也不好,因為不是計算機專業(yè)的,老師也沒有教很多,高手莫笑。好了我再給大家?guī)讉€查詢數(shù)據(jù)庫常用的代碼:
首記錄按鈕的代碼:
Private Sub sjl_Click()
Adodc1.Recordset.MoveFirst
End Sub
上一條記錄按鈕代碼:
Private Sub up_Click()
Adodc1.Recordset.MovePrevious
If Adodc1.Recordset.BOF Then
Adodc1.Recordset.MoveFirst
End If
End Sub
下一條記錄代碼:
Private Sub down_Click()
Adodc1.Recordset.MoveNext
If Adodc1.Recordset.EOF Then
Adodc1.Recordset.MoveLast
End If
End Sub
末記錄代碼:
Private Sub mjl_Click()
Adodc1.Recordset.MoveLast
End Sub
刪除記錄代碼:
Private Sub Command3_Click()
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
If (Adodc1.Recordset.BOF Or Adodc1.Recordset.EOF) Then
MsgBox "已經(jīng)無記錄", , "提示"
End If
End Sub
如果有什么不對的地方,請大家指正。
posted on 2008-11-26 07:19
大鳥 閱讀(2347)
評論(0) 編輯 收藏