データベースの作成

MS アクセスのデータベースファイル(以下 MDB ファイル)は、VB プログラムで作成することができます。 ここでは、VB プログラムで MDB ファイルを作り、そのデータベースにテーブルを作成します。 MS アクセスが利用できない人は、この章を参考にして、MDB ファイルを作成して下さい。


MDB ファイルの作成方法

VB プログラムから MDB ファイルを作成し利用するためには、二つの作業が必要です。

  1. MDB ファイルを新規作成する。
  2. MDB ファイルにテーブルを作成する。

MDB ファイルの新規作成

MDB ファイルの新規作成は、CreateDatabase で行います。

CreateDatabase は MDB ファイルを新たに作り、作成した MDB ファイルをプログラムに接続します。

次の CreateDatabase は、最初に MDB ファイル 'db.mdb' を作ります。 次に作成した MDB ファイルを開き、 Database オブジェクトを作ります。 CreateDatabase は、このオブジェクトの参照を返すので、変数 db にセットします。 これで、新規データベースが VB プログラムに接続されます。

    Dim db As Database
    Set db = DBEngine.Workspaces(0).CreateDatabase("db.mdb", dbLangJapanese)

引数の dbLangJapanese は、文字データを整列するときなどに、文字コードを日本語として扱うことを指示しています。

テーブルの作成

次の例では、 CREATE TABLE を実行し、新規にテーブルを作成します。

    Dim statement As String
    statement = "create table kojin(" _
        & "id long constraint kojin_pry primary key," _
        & "name text(20)," _
        & "data text(50));"
    db.Execute statement

実行後、次のテーブルが作成されます。

フィールド名データ型大きさ備考
id長整数主キー
nameテキスト20
dataテキスト50

VB4 の CREATE TABLE はかなり制限があって、標準的な SQL が使えません(詳しい情報は VB のヘルプを参照して下さい)。


プログラム

次のプログラムは MDB ファイル 'db.mdb' を新規作成し、「テーブルの作成」ボタンをクリックすると、テーブル 'kojin' を作成します。

以下はソースプログラムです。

Option Explicit

Private db As Database

Private Sub cmdCreate_Click()
    On Error GoTo errorhandle
    Dim statement As String
    statement = "create table kojin(id long constraint kojin_pry primary key, " _
        & "name text(20), data text(50));"
    db.Execute statement
    Exit Sub

errorhandle:
    MsgBox Err.Description & vbCrLf & "SQL文:" & statement, _
        vbExclamation, "テーブル作成"
    Exit Sub
End Sub

Private Sub cmdQuit_Click()
    db.Close
    End
End Sub

Private Sub Form_Load()
    On Error GoTo errorhandle
    Set db = DBEngine.Workspaces(0).CreateDatabase("db.mdb", dbLangJapanese)
    
    Exit Sub
    
errorhandle:
    MsgBox Err.Description, vbCritical, "DB接続"
    End
End Sub

実験

プログラムを実行すると、'db.mdb' が作成されます。 「テーブルの作成」ボタンをクリックして、CREATE TABLE を実行して下さい。 MS アクセスでファイルを開き、テーブルが正しく作られたか確認しましょう。 すでに 'db.mdb' があるときには、エラーで終了します。

VB4の CREATE TABLE は不充分で、とても使いにくいです。 標準 SQL とかなり違って、データタイプに integer や char すら使えません。 VB6(現在最新バージョン)では使えますか。 CREATE TABLE で他のテーブルを追加してみましょう。

テレワークならECナビ Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!
無料ホームページ 無料のクレジットカード 海外格安航空券 海外旅行保険が無料! 海外ホテル