Microsoft Access Club >SQL入門講座 >このページ >次頁 < 前項  サイト内検索
 

フィールド名を別名で指定する - AS句 : SQL入門講座



クエリは既存のデータを加工することを基本としますが、既存のデータを用いて新しいデータを作成することも容易くできます。この場合、全く新しいフィールド名を命名することもAS句を用いると実現可能です。

AS句 構文

AS句とは、指定したフィールド名や式を別名で表示する際に用いるSQL構文です。

  • 記述する形式としては、「式 AS 新しいフィールド名」になります。
  • 通常、Accessのクエリでは内部的な別名(Expr1005などの英数字)が自動的に命名されますので省略も可能です。 省略する場合は、ASも記述しません。
  • 全てのSQL構文で使用可能です。
サンプルテーブル

サンプルテーブル(生徒管理)を下記のように用意します。

ID 生徒名 性別
1 松永 良子 女性
2 田口 きさよ 女性
3 鈴木 真一 男性
4 佐藤 信二 男性
構文
〜 AS fieldname
引数 意味 指定
fieldname フィールド名を指定します。 省略可。省略時には、Accessが自動的にフィールド名を指定します。
サンプル構文

「生徒管理」テーブルを元に選択クエリを作成します。AS句を用いて「学年」フィールドを新規作成し、文字列「3年A組」を代入します。

  1. SELECT *, '3年A組' AS 学年 FROM 生徒管理;

上記のSQL構文を一部変更し、下記のように書き換えます。

  1. SELECT 生徒管理.*, '3年A組' AS 学年 FROM 生徒管理;

事例A - ADOXを用いた事例

事例AをADOXを用いて以下のようにSQLを実行します。

Sub MySQLAS()

    Dim cat As ADOX.Catalog
    Dim cmd As ADODB.Command
    
    'カレントデータベースに接続します。
    Set cat = New ADOX.Catalog
    cat.ActiveConnection = CurrentProject.Connection
    
    'クエリを定義します。
    Set cmd = New ADODB.Command
    cmd.CommandText = "SELECT *, '3年A組' AS 学年 FROM 生徒管理;"
    '選択クエリを作成します。
    cat.Views.Append "Q_生徒管理", cmd
    
    DoCmd.OpenQuery "Q_生徒管理"

    Set cmd = Nothing
    Set cat = Nothing
    
End Sub
留意点
  1. VBA内でSQLを用いる場合は、前後をダブルクォーション(")で囲みます。
結果
  1. 下記のように、フィールド、レコードが追加されます。
  2. 追加した学年フィールドが一番左端に配置されました。
  3. これを一番右端に位置させる場合は、下記の事例Bで紹介しているSQLの記述方法が必要です。

事例B - DAOを用いた事例

事例BをDAOを用いて以下のようにSQLを実行します。

Sub MySQLAS()
    Dim db As DAO.Database
    Dim qdf As DAO.QueryDef
    Dim mySQL As String
    
    Set db = CurrentDb()
    ' SQLを記述します。
    mySQL = "SELECT 生徒管理.*, '3年A組' AS 学年 FROM 生徒管理;"
        
    ' Q_sampleを作成します。
    Set qdf = db.CreateQueryDef("Q_生徒管理", mySQL)
    ' SQLを実行します。
    DoCmd.OpenQuery qdf.Name
    ' Q_sampleを削除します。
    db.QueryDefs.Delete "Q_生徒管理"
                
    db.Close: Set db = Nothing

End Sub
留意点
  1. VBA内でSQLを用いる場合は、前後をダブルクォーション(")で囲みます。
  2. 追加したフィールドの位置を確定するためには、全フィールドを指定するアスタリスク(*)にテーブル名を指定します。例、生徒管理.*。
結果
  1. 下記のように、フィールド、レコードが追加されます。

クエリで作成すると・・・

このSQLステートメントをAccessオブジェクトのクエリで作成すると、下記のようになります。

2004/08/20

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

 


フィールド名を別名で指定する - AS句 : SQL入門講座


-Microsoft Access Club-

cPanel と PLESKをインストールした専用・共有レンタルサーバーを銀行振込でご提供中。契約書は一切不要です。
cPanel や PLESKをインストールした専用・共有レンタルサーバー
まずは1ヶ月から...。
日本国内の銀行振込がOK、契約書は不要です。