SQL を使用して Accessデータベースにテーブルを新規登録する方法

◆概要

このページは、Visual Basic 6.0で、SQLを使ってAccessデータベースにテーブルを新規登録する方法について記載しています。


SQL(Structured Query Lnguage)を使って、Accessのデータベースにテーブルを追加するにはCREATE TABLE 区を使います。

◆Sample

VBからDAOを使うために、[プロジェクト]メニューの[参照設定]ダイアログボックスで、[Microsoft DAO 3.51 Object Library]を選択しておきます。


フォームモジュールに以下のコードを実装します。

Private Sub Command2_Click()
    Dim WS As Workspace         'WorkSpace
    Dim DB As Database          'Database
    Dim mstrSQL As String       'SQL文
    Dim apPath  'プロジェクト起動時のフォルダを格納する変数
    
    On Error GoTo ProcError
    Screen.MousePointer = vbHourglass
    
    'プロジェクト起動時のフォルダを変数に代入し
    'カレントフォルダをexeのあるフォルダに変更
    apPath = App.Path
    ChDrive apPath
    ChDir apPath
    
    'デフォルトワークスペースの定義
    Set WS = DBEngine.Workspaces(0)

   'データベースをオープンする
    Set DB = WS.OpenDatabase(apPath & "\" & "test.mdb")

    'テーブルを新規登録するSQL文を作成する
    'テーブル名やフィールド名などの名前は、[]で囲むと間違いの防止ができる
    '予約語や空白などが含まれた名前は、必ず[]で囲まなくてはならない
    'この例では、フィールド名にマイナス記号が含まれているので、[]が必要です。
    'なおこのSQL文はJet/MDB用のものです
    mstrSQL = "CREATE TABLE [TestTable] (" & _
            "[Field-01] TEXT(10) CONSTRAINT" & _
            "[PrimaryKey] PRIMARY KEY," & _
            "[Field-02] SHORT,[Field-03] DOUBLE);"

        
    'SQL文を実行して、テーブルを新規作成します。
    '既に同名のテーブルが存在するとエラーになります。
     DB.Execute mstrSQL

    'データベースを閉じる
    DB.Close
    WS.Close
       
    '変数をクリア
    Set DB = Nothing
    Set WS = Nothing

ProcExit:
    Screen.MousePointer = vbDefault
    Exit Sub

ProcError:
    MsgBox Err.Description, vbExclamation
    Resume ProcExit

End Sub


▼ページトップへ