Microsoft Access Club >VBAのTips解説 >このページ >次頁 < 前項  サイト内検索
 

DAOとSQLを用いて新規テーブルを作成する方法 : VBAのTips解説



SELECT 〜 INTO 〜 FROM 構文

SELECT 〜 INTO 〜 FROM 構文とは、FROMで指定したテーブルから、SELECTで指定したフィールドを持つ、INTOで指定したテーブル名で新しいテーブルを作成するSQL構文です。SELECTに指定するフィールド数は、1つでも複数でも問題ありません。表示するフィールドの順番は、ここで指定する順番になります。INTOには、新しいテーブル名を記述します。FROMはSELECTと同様に複数のテーブルを指定することもできます。Accessで新しいテーブルを作成する「テーブル作成クエリー」と機能的には同じです。なお、テーブル作成を安易に実行するとデータベース管理に影響があるので、IFステートメントとMsgboxステートメントを用いて、ユーザーに処理を選択させる機能を付加します。

  • 書式

SELECT fieldname INTO newtablename FROM tablename

  • 引数
引数 意味 指定
fieldname フィールド名を指定します。複数の場合は、カンマ(,)で区切ります。 *を指定すると全フィールドを指定します 省略不可
newtablename 新しいテーブル名を指定します 省略不可
tablename テーブル名を指定します 省略不可

関連項目

  1. CurrentDb(DAO)
  2. CreateQueryDefメソッド(DAO)
  3. Deleteメソッド(DAO、ADO)
  4. ActiveConnectionメソッド(ADO)
  5. Connectionオブジェクト(ADO)
  6. Appendメソッド(ADO)

事例 ) DAOを用いてテーブルを新規作成する

DAOを用いて「家計簿」テーブルを新規作成します。

  1. 非連結フォームを作成します。
  2. 実行するコマンドボタンを作成します。

コマンドボタンクリック時イベントプロシージャの作成

コマンドボタンクリック時イベントプロシージャを以下のように作成します。

Private Sub 実行_Click()

   On Error GoTo エラー

   Dim db As DAO.Database
   Dim mySQL As String
   Dim strName As String

   Set db = CurrentDb
   strName = Format(Date, "m") & "月の家計簿" '--- A

   mySQL = "SELECT ID, 日付, 収入, 支出, "
   mySQL = mySQL & " * INTO [" & strName & "] "
   mySQL = mySQL & "FROM 家計簿 "
   mySQL = mySQL & "WHERE 日付 Between #" & _
           DateSerial(Year(Date), Month(Date), 1) & _
           "# And #" & DateSerial(Year(Date), Month(Date) + 1, 1) - 1 & "#;"

   If MsgBox(strName & " テーブルを作成します。", vbYesNo) = vbYes Then
      db.Execute mySQL '--- B
      MsgBox strName & " テーブルを作成しました。"
   End If

   db.Close: Set db = Nothing

   Exit Sub

エラー:

   If Err.Number = 3010 Then
      db.TableDefs.Delete strName '--- C
      Resume
   Else
      MsgBox Err.Number & " : " & Err.Description
   End If

End Sub
解説
  1. テーブル名を定義します。
  2. OpenQueryメソッドでSQLを実行します。
  3. エラー処理を用いて、同名のテーブルが存在しているならば削除します。

動作確認

  1. フォームをビューモードで開きます。
  2. [実行] ボタンをクリックします。

  1. 実行した月の家計簿レコードを基にしたテーブルが作成されます。

ページの先頭へ 前ページへ戻る

 


DAOとSQLを用いて新規テーブルを作成する方法 : VBAのTips解説


 

-Microsoft Access Club-

動画配信(ダウンロード、ストリーミング)対応の専用レンタルサーバー。データセンター設置場所はアメリカ合衆国です。: 動画サーバードットコム
動画配信(ダウンロード、ストリーミング)対応の専用レンタルサーバー。
データセンター設置場所はアメリカ合衆国です。
100Mbps〜1Gbpsまで対応できます。