アプリケーションとしてのVBA Excel(エクセル) VBA の役立つ Tips の紹介

アプリケーションとしてのVBA

テーブルの作成



テーブルの作成


  テーブルを作成しましょう。
  
  次のようなExcelの表(社員テーブル、部門テーブル)を mdb ファイルに作成します。
  
  社員テーブル 
社員テーブル

  部門テーブル
部門テーブル


  こんなイメージの Personal.mdb を作成します。
  空のテーブルを作成します。
  
Personnel,mdb

  各フィールドのデータ型を次のように決めます。
  

  社員テーブル フィールドのデータの型
社員テーブル フィールドのデータの型

  部門テーブル フィールドのデータの型
部門テーブル フィールドのデータの型

  Accessで利用可能なデータ型はこんな感じです。
  
    項目タイプ
    テキスト型                       TEXT(桁数)最大255文字
    メモ型                           MEMO(桁数)最大65,536文字
    数値型(Byte型)                 BYTE
    数値型(整数型)                 INTEGER
    数値型(長整数型)               LONG
    数値型(単精度浮動小数点型)     SINGLE
    数値型(倍精度浮動小数点型)     DOUBLE
    数値型(レプリケーションID型)   GUID
    固定小数点数値型                 DECIMAL(10,5) 10が総桁数で5が小数点以下
    日付                             DATE
                                     挿入するデータの形式に依存して
                                         YYYY-MM-DD
                                         YYYY-MM-DD HH:MM:SS
                                     どちらの型も可能です
    通貨型                           CURRENCY
    オートナンバー型                 COUNTER
    Yes/No型                         YESNO
    Oleオブジェクト型                LONGBINARY
    バイナリ型                       BINARY(桁数)
    
    
Public Const ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="

Sub Create_Table()

    Dim DB_Catalog                      As ADOX.Catalog
    Dim DB_Connect                      As ADODB.Connection
    Dim DB_Cmd                          As ADODB.Command
    
    Dim MDB_Path                        As String
    Dim Prompt                          As String
    Dim File種類                        As String
    
    Const DB_Name = "Personnel.mdb"
    
    'mdbファイルのパスを設定
    File種類 = "mdb (*.mdb),*mdb"
    Prompt = "「Personnel.mdb」を選択してください。"
    MDB_Path = Application.GetOpenFilename(File種類, , Prompt)

    Set DB_Connect = New ADODB.Connection
    
    DB_Connect.Open ConnectionString & MDB_Path & ";"
    
    Set DB_Cmd = New ADODB.Command

    DB_Cmd.ActiveConnection = DB_Connect

    '既に社員テーブルが存在していたら削除する
    DB_Cmd.CommandText = "DROP TABLE 社員テーブル"

    '社員テーブルが存在してたらエラーになるので On Error で落ちるの回避
    On Error Resume Next
    DB_Cmd.Execute
    On Error GoTo 0
    
    DB_Cmd.ActiveConnection = DB_Connect
    
    '社員テーブルの作成
    DB_Cmd.CommandText = "CREATE TABLE 社員テーブル (" & _
                         "社員番号 INTEGER NOT NULL PRIMARY KEY," & _
                         "名前 TEXT(255)," & _
                         "よみ TEXT(255)," & _
                         "性別 TEXT(4)," & _
                         "血液型 TEXT(4)," & _
                         "生年月日 DATE," & _
                         "部署コード INTEGER)"
       
       
    DB_Cmd.Execute
       
    '既に部門テーブルが存在していたら削除する
    DB_Cmd.CommandText = "DROP TABLE 部門テーブル"

    '部門テーブルが存在してたらエラーになるので On Error で落ちるの回避
    On Error Resume Next
    DB_Cmd.Execute
    On Error GoTo 0
    
    '部門テーブルの作成
    DB_Cmd.CommandText = "CREATE TABLE 部門テーブル (" & _
                         "部署コード INTEGER NOT NULL PRIMARY KEY," & _
                         "部門名 TEXT(255)," & _
                         "課名 TEXT(255))"
                         
    DB_Cmd.Execute
    Set DB_Cmd = Nothing
    
    DB_Connect.Close
    
    Set DB_Connect = Nothing
        
End Sub

  サンプル をダウンロードして、ご使用ください。



Copy (C) 2005   アプリケーションとしてのVBA   All Rights Reserved.