幾年前學過的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資料庫
'資料來源資訊常數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 = TrueEnd Sub'中斷與資料庫的連線Private Sub DisConnect() Dim rc As Long If IsConnect = False Then Exit Sub End If '關閉連線cnn.Close '釋放cnn Set cnn = Nothing IsConnect = FalseEnd Sub'使用Connect_Num控制資料連線Public Sub DB_Connect() Connect_Num = Connect_Num + 1 Connect Subd使用使用控制資料斷開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 DisconnectEnd 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