幾年前學過的VB幾乎忘光了,這幾天復習了下。VB連接ADO數據庫并不是非常難。
連接第一步(要仔細看)
對于小白來講,這里的教程最詳細,連接ADO數據庫第一步,要添加什么部件呢?全稱是Microsoft ADO Data Control 6.0 (SP6) (OLEDB) 部件。
在Microsoft ADO Data Control 6.0 (SP6) (OLEDB)部件里有一個名叫:Adodc數據控件,要將它添加。在Adodc數據控件數據位置中找到ACCES。
控件引用的方法(值指的是姓名)
For i = 1 To Adodc1.Recordset.RecordCount
If Not Adodc1.Recordset.EOF Then
Combo1.AddItem Adodc1.Recordset.Fields("值").Value
Adodc1.Recordset.Movenext
End If
Next i
該代碼引用的編寫者是ydl890406大大,在VB群中寫這東西時,讓我借用了,后來我發現有很多錯誤,y大神修改幾次后的還是有錯誤,干脆重寫了一遍,這就是后來的代碼。時間過去的很快,VB群也解散了。后來不知為何,現在很多的教程都用了這段代碼。
第二部分是AOD的代碼連接,由于第二部分涉及到Recordset對象和Connection對象,自己學一下,完全可以自己編寫。
何為Recordset對象和Connection對象,Connection對象是與數據源的連接,Recordset對象是操作數據。
尋找Microsoft ADO Data Control 6.0 (SP6) (OLEDB) 部件
VB用ADO連接SQLServer數據庫
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
'數據源信息常量 Public Const conn As String = "Provider = SQLOLEDB.1;Password = sa; UserID = sa; Initial Catalog = StudentFiles; Data Source = localhost" Public Const CONNECT_LOOP_MAX = 10 '一次執行connect操作,可以訪問數據庫的次數 Private IsConnect As Boolean '標記數據庫是否連接 Private Connect_Num As Integer '標記執行Connect()函數后訪問數據的次數 Private cnn As ADDODB.Connection '連接數據庫的Connect對象 Private re As ADDODB.Recordset '保存結果集的Recordset對象 //連接數據庫 Private Sub Connect() '如果連接標記為真,則返回。 IF IsConnect = True Then Exit Sub End If Set cnn = New ADODB.Connection '關鍵new用于創建新對象cnn cnn.ConnectionString = conn cnn.Open '判斷連接的狀態 If cnn.State <> adStateOpen Then MsgBox "數據庫連接失敗" End End If '設置連接標識,表示已經連接到數據庫 IsConnect = True End Sub '斷開與數據庫的連接 Private Sub DisConnect() Dim rc As Long If IsConnect = False Then Exit Sub End If '關閉連接 cnn.Close '釋放cnn Set cnn = Nothing IsConnect = False End Sub '使用Connect_Num控制數據連接 Public Sub DB_Connect() Connect_Num = Connect_Num + 1 Connect End Sub '使用Connect_Num控制數據斷開 Public Sub DB_Disconnect() If Connect_Num >= CONNECT_LOOP_MAX Then Connect_Num = 0 Disconnect End If End Sub '強制關閉api方式訪問俄的數據庫,計數器復位 Public Sub DBapi_Disconnect() Connect_Num = 0 Disconnect End Sub '執行數據庫操作語言 'byval 就是按參數的值傳遞,再傳遞過程中,參數不會發生變化(也就是將參數值而不是將地址傳遞給過程的方式,這就使過程訪問發哦變量的副本,過程不可改變變量的值); 與之對應的是byref,指按參數的地址傳值,byref可以省略 Public Sub SQLExt( ByVal TmpSQLstmt As String ) Dim cmd As New ADODB.Command '創建Command對象cmd DB_Connect '連接數據庫 Set cmd.ActiveConnection = cnn '設置cmd的ActiveConnect屬性,指定與其關聯的數據庫連接 cmd.CommandText = TmpSQLstmt '設置要執行的命令文本 'MsgBox TmpSQLstmt cmd.Execute '執行命令 Set cmd = Nothing DB_DisConnect '斷開與數據庫的連接 End Sub '執行數據庫查詢語句 Public Function QueryExt( ByVal TmpSQLstmt As String ) As ADODB.Recordset Dim rst As New ADODB.Recordset '創建Rescordset對象rst DB_Connect '連接數據庫 Set rst.ActiveConnection = cnn '設置rst的ActiveConnection屬性,指定與其相關的數據庫的連接 rst.CursorType = adOpenDynamic '設置游標類型 rst.LockType = adLockOptimistic '設置鎖定類型 rst.Open TmpSQLstmt '打開記錄集 Set QueryExt = rst '返回記錄集 End Function |