構文例
SQL = "SELECT TOP ○ フィールド名 FROM テーブル名 ORDER BY TOPで比較するフィールド名 DESC"
CurrentDb.Execute SQL, dbFailOnError
TOP述語を使うと指定数の上位レコードを抽出できます。
TOPの次に指定数をセットします。
上位を抽出する為には、「ORDER BY フィールド名 DESC」で降順に並べ替えてください。
使用例
SQL = "SELECT TOP 3 学生ID,国語 FROM テーブル7 ORDER BY 国語 DESC"
国語の得点がトップ3を抽出し、その学生IDと国語の得点を取得します。
スポンサーリンク
2008-02-29
2008-02-24
Tips136 - 複数の条件を評価する SWITCH関数
構文例
SQL = "SELECT SWITCH(条件式1,真のときの式1 [,条件式2,真のときの式2,・・・]) FROM テーブル名"
CurrentDb.Execute SQL, dbFailOnError
SWITCH関数は、「条件式1」からのリストを順に評価し、「真(TRUE)」の場合「真のときの式1」を実行し、「偽(FALSE)」の場合次の条件式2を評価します。
SQL = "SELECT 学生ID,国語,SWITCH(国語<30,'×',国語<70,'○',国語<=100,'◎') FROM 試験結果"
国語点数が30点未満の場合は×を返し、30~70点未満の場合○を返し、70~100点以下の場合は×を返します。
条件式1: 国語<30
式1: '×'
条件式2: 国語<70
式2: '○'
条件式3: 国語<=100
式3: '◎'
SQL = "SELECT SWITCH(条件式1,真のときの式1 [,条件式2,真のときの式2,・・・]) FROM テーブル名"
CurrentDb.Execute SQL, dbFailOnError
SWITCH関数は、「条件式1」からのリストを順に評価し、「真(TRUE)」の場合「真のときの式1」を実行し、「偽(FALSE)」の場合次の条件式2を評価します。
SQL = "SELECT 学生ID,国語,SWITCH(国語<30,'×',国語<70,'○',国語<=100,'◎') FROM 試験結果"
国語点数が30点未満の場合は×を返し、30~70点未満の場合○を返し、70~100点以下の場合は×を返します。
条件式1: 国語<30
式1: '×'
条件式2: 国語<70
式2: '○'
条件式3: 国語<=100
式3: '◎'
2008-02-18
Tips135 - Nullかどうか判定する ISNULL関数
構文例
SQL = "SELECT IIF(ISNULL(フィールド名),真のときの式,偽のときの式) FROM テーブル名"
CurrentDb.Execute SQL, dbFailOnError
ISNULL関数は、値がNULLの時は「真(TRUE)」が返り、NULLでない時は「偽(FALSE)」が返ります。
SQL = "SELECT IIF(ISNULL(国語点数),'-',IIF(国語点数>80 , '○' , '×')) FROM 試験結果"
国語点数が未入力(NULL)の場合は-を表示し、80点を越えると○を表示し、80点以下の場合は×を表示します。
SQL = "SELECT IIF(ISNULL(フィールド名),真のときの式,偽のときの式) FROM テーブル名"
CurrentDb.Execute SQL, dbFailOnError
ISNULL関数は、値がNULLの時は「真(TRUE)」が返り、NULLでない時は「偽(FALSE)」が返ります。
SQL = "SELECT IIF(ISNULL(国語点数),'-',IIF(国語点数>80 , '○' , '×')) FROM 試験結果"
国語点数が未入力(NULL)の場合は-を表示し、80点を越えると○を表示し、80点以下の場合は×を表示します。
2008-02-13
Tips134 - if文の中にif文を入れる「ネスト」
構文例
SQL = "SELECT IIF(条件式,IIF(条件式,真のときの式,偽のときの式),偽のときの式) FROM テーブル名"
SQL = "SELECT IIF(条件式,真のときの式,IIF(条件式,真のときの式,偽のときの式)) FROM テーブル名"
SQL = "SELECT IIF(条件式,IIF(条件式,真のときの式,偽のときの式),IIF(条件式,真のときの式,偽のときの式)) FROM テーブル名"
関数の中に関数を入れることを「ネスト」といいます。
多重にネストすると、後で分かりにくくなりますから注意してください。(ネスト地獄といいます)
使用例:
SQL = "SELECT IIF(国語点数>80 , IIF(数学点数>80 , '◎' , '○') , '×') FROM 試験結果"
国語点数と数学点数が80点を越えると◎を表示し、国語のみなら○を表示し、それ以外は×を表示します。
SQL = "SELECT IIF(条件式,IIF(条件式,真のときの式,偽のときの式),偽のときの式) FROM テーブル名"
SQL = "SELECT IIF(条件式,真のときの式,IIF(条件式,真のときの式,偽のときの式)) FROM テーブル名"
SQL = "SELECT IIF(条件式,IIF(条件式,真のときの式,偽のときの式),IIF(条件式,真のときの式,偽のときの式)) FROM テーブル名"
関数の中に関数を入れることを「ネスト」といいます。
多重にネストすると、後で分かりにくくなりますから注意してください。(ネスト地獄といいます)
使用例:
SQL = "SELECT IIF(国語点数>80 , IIF(数学点数>80 , '◎' , '○') , '×') FROM 試験結果"
国語点数と数学点数が80点を越えると◎を表示し、国語のみなら○を表示し、それ以外は×を表示します。
2008-02-09
Tips133 - SELECT句でIF文を使う IIF関数
SQL = "SELECT IIF(条件式,真のときの式,偽のときの式) FROM テーブル名"
CurrentDb.Execute SQL, dbFailOnError
SQLでIF文を使うには、IIF関数を使います。
IIFの構文は「IIF(条件式,真のときの式,偽のときの式)」になります。
「真のときの式」とは条件式がTRUEになる時の式です。
「偽のときの式」とは条件式がFALSEになる時の式です。
使用例:
SQL = "SELECT IIF(国語点数>80 , '○' , '×') FROM 試験結果"
国語点数が80点を越えると○を表示し、80点以下の場合は×を表示します。
CurrentDb.Execute SQL, dbFailOnError
SQLでIF文を使うには、IIF関数を使います。
IIFの構文は「IIF(条件式,真のときの式,偽のときの式)」になります。
「真のときの式」とは条件式がTRUEになる時の式です。
「偽のときの式」とは条件式がFALSEになる時の式です。
使用例:
SQL = "SELECT IIF(国語点数>80 , '○' , '×') FROM 試験結果"
国語点数が80点を越えると○を表示し、80点以下の場合は×を表示します。
2008-02-04
Tips132 - インデックスの削除 DROP INDEX
SQL = "DROP INDEX インデックス名 ON テーブル名"
CurrentDb.Execute SQL, dbFailOnError
これを実行するとフィールドのインデックスが削除されます。
インデックスとはアクセスデザイン画面で設定できるフィールドプロパティです。
「はい (重複なし)」か「はい (重複あり)」に設定できます。
主キーが設定されているフィールドには実行できません。
実行すると下記のエラーになります。
「実行時エラー '3372':
テーブル'テーブル名'にインデックス'インデックス名'が見つかりませんでした。」
もし、インデックスに設定されていないフィールドを指定した場合でも上記と同じエラーが発生します。
CurrentDb.Execute SQL, dbFailOnError
これを実行するとフィールドのインデックスが削除されます。
インデックスとはアクセスデザイン画面で設定できるフィールドプロパティです。
「はい (重複なし)」か「はい (重複あり)」に設定できます。
主キーが設定されているフィールドには実行できません。
実行すると下記のエラーになります。
「実行時エラー '3372':
テーブル'テーブル名'にインデックス'インデックス名'が見つかりませんでした。」
もし、インデックスに設定されていないフィールドを指定した場合でも上記と同じエラーが発生します。
登録:
投稿 (Atom)