ADOを使ってAccessデータベースに接続する方法

◆概要

このページは、Visual Basic 6.0で、ADOを使ってAccessデータベースに接続する方法について記載しています。


◆手順

次の例では、Visual Basic 6.0に付属するNWIND.MDBに接続し、テキストボックスにレコードを表示します。


準備として、VBからADOを使うために、[プロジェクト]メニューの[参照設定]ダイアログボックスで、[Microsoft ActiveX Data Objects 2.5 Library]を選択します。

参照設定ダイアログボックス

次に、[プロジェクト]-[Project1のプロパティ]で[スタートアップの設定]で[Sub Main]を選択します。

参照設定ダイアログボックス

フォームにコントロールを配置

フォームにコントロールを下図のように配置します。 テキストボックスは、コントロール配列にしています。最初のテキストボックスの名前を「txtFields」にした後、コピーすることでコントロールを配列にできます。

フォームの設計

次に[プロジェクト]-[標準モジュールの追加]で標準モジュールを追加し、以下のコードを記述します。


標準モジュール

Option Explicit

Public cn As New ADODB.Connection
Public rs As New ADODB.Recordset

' 接続文字列
Private Const CON_STRING = "Provider=Microsoft.Jet.OLEDB.3.51;" _
        & "Data Source="
    
' データベースのあるフォルダへのパス(グローバル変数)
Public Const PUB_DBPath As String = _
    "C:\Program Files\Microsoft Visual Studio\VB98"
' データベースファイル名
Private Const PUB_MDBName As String = "NWIND.MDB"
' テーブル名
Private Const TABLE_NAME = "Employees"

Sub Main()
    ' 複数のインスタンスを防ぎます
    If App.PrevInstance = True Then
        Exit Sub
    End If
    
    ' データベースに接続
    cn.Open CON_STRING & PUB_DBPath & "\" & PUB_MDBName
    
    ' テーブル名を指定してレコードセットを作成
    rs.Open TABLE_NAME, cn, adOpenKeyset, adLockOptimistic
    
    ' フォームを表示
    Form1.Show

End Sub
フォームモジュール

Option Explicit

Private Sub Form_Load()
' フォームのLoadイベントプロシージャ

    ' データをセット
    Set2Data
End Sub

Private Sub Form_Unload(Cancel As Integer)
    ' オブジェクトを開放する
    rs.Close: Set rs = Nothing
    cn.Close: Set cn = Nothing
End Sub

Private Sub Set2Data()
    ' テキストボックスにレコードセットのデータをセットする
    txtFields(0).Text = rs!EmployeeID
    txtFields(1).Text = rs!LastName
    txtFields(2).Text = rs!FirstName
    txtFields(3).Text = rs!BirthDate
End Sub

Private Sub cmdFirst_Click()
' 「|<」ボタン(cmdLast)のClickイベントプロシージャ

    ' 先頭レコードへ移動
    rs.MoveFirst
    
    ' データをセット
    Set2Data
End Sub

Private Sub cmdPrevious_Click()
' [<]ボタン(cmdNext)のClickイベントプロシージャ
    
    ' 前のレコードへ移動
    rs.MovePrevious
    If rs.BOF = True Then
        rs.MoveFirst
    End If
    
    ' データをセット
    Set2Data
End Sub

Private Sub cmdNext_Click()
' [>]ボタン(cmdNext)のClickイベントプロシージャ

    ' 次のレコードへ移動
    rs.MoveNext
    If rs.EOF = True Then
        rs.MoveLast
    End If
    
    ' データをセット
    Set2Data
End Sub

Private Sub cmdLast_Click()
' 「>|」ボタン(cmdLast)のClickイベントプロシージャ

    ' 最終レコードへ移動
    rs.MoveLast
    
    ' データをセット
    Set2Data
End Sub

◆実行結果

実行結果

ダウンロード
ソース
vbDatabase.zip(3.46KB)




▼ページトップへ