Accessで使用できる関数の一覧です。クエリの式ビルダーで表示される組み込み関数の分類に沿って示していますので、同じものが2度現れる場合があります。また、Join関数などのVBA関数は掲載していません。
「関数/引数」欄をクリックするとそれぞれの関数の説明に進みます(一部の関数を除く)。たいていの場合、引数は全て即値(1とか"ABC"などの具体的な値)としていますが、Sum関数などのSQL集合関数やIIf関数などのプログラムフローに分類される関数の場合はテーブルのデータを参照して(クエリ上で)値を取得する例を示しています。
SQL集合関数
SQLにより定義されている関数です。テーブルやクエリの列を引数として指定し集計・抽出の対象とするものですので、例えば同じMax関数でもExcelのように「Max(1,2,3,4,5)」といった形で使用することはできません(エラーとなります)。慣れないうちはちょっと戸惑いますし、実際不便なところかと思います。
関数/引数 | 表記例 | 説明 |
Avg(列名) | Avg([点数]) | 指定したフィールドに記録されている数値の平均値 |
Count(列名) | Count([受験番号]) | 指定したフィールドに記録されている値の個数 |
Max(列名) | Max([点数]) | 指定したフィールドに記録されている数値の最大値 |
Min(列名) | Min([点数]) | 指定したフィールドに記録されている数値の最小値 |
StDev(列名) | StDev([点数]) | 指定したフィールドに記録されている数値の標準偏差(標本標準偏差 分母=n-1) |
StDevP(列名) | StDevP([点数]) | 指定したフィールドに記録されている数値の標準偏差(母標準偏差 分母=n) |
Sum(列名) | Sum([個数]) | 指定したフィールドに記録されている数値の合計 |
Var(列名) | Var([点数]) | 指定したフィールドに記録されている数値の分散(標準分散 分母=n-1) |
VarP(列名) | VarP([点数]) | 指定したフィールドに記録されている数値の分散(母分散 分母=n) |
エラー処理
関数/引数 | 表記例 | 説明 |
AccessError() | AccessError() | |
CvvErr() | CvvErr() | |
Err() | Err() | |
Error() | Error() | |
Error$() | Error$() | |
IsError(値) | IsError(1) | 値がエラー値かどうかを表すブール型の値 |
データベース
関数/引数 | 表記例 | 戻り値例 | 説明 |
ColumnHistory(レコードセット名,列名,検索条件) | ColumnHistory("受注テーブル","状態","受注ID=1") | [バージョン: 2015/12/26 16:56:26 ] 在庫確認中 | データ型が「長いテキスト」である列の値の更新履歴を返す |
CurrentUser() | CurrentUser() | | |
CurrentWebUser() | CurrentWebUser() | | |
CurrentWebUserGroups() | CurrentWebUserGroups() | | |
Eval(評価対象) | Eval("1+1=2") | -1 | 文字列や数値を式(関数)として評価(実行)した結果 |
HyperlinkPart(ハイパーリンク,抽出パート値) | | | ハイパーリンクから抽出したアドレス等 |
IMEStatus() | IMEStatus() | 3 | IMEの状態を表す数値 |
IsCurrentWebUserInGroup() | IsCurrentWebUserInGroup() | | |
Partition(値,区間の下限,区間の上限,各区間の幅) | Partition(23,1,100,10) | 21: 30 | 値が属する区間(下限,上限,幅により設定される)を返す |
テキスト
関数/引数 | 表記例 | 戻り値例 | 説明 |
Asc(文字列) | Asc("川") | -28436 | 文字列の最初の1文字の文字コード |
AscW(文字列) | AscW("川") | 24029 | 文字列の最初の1文字のUnicode文字コード |
BuildCriteria(フィールド名,データ型,検索値) | BuildCriteria("商品コード",10,"00001 Or 00002") | 商品コード="00001" Or 商品コード="00002" | Where条件に用いられる文字列 |
Chr(文字コード値) | Chr(-28436) | 川 | 文字コードに対応する文字 |
Chr$(文字コード値) | Chr$(-28436) | 川 | 文字コードに対応する文字 |
ChrW(Unicode文字コード値) | ChrW(24029) | 川 | Unicode文字コードに対応する文字 |
ChrW$(Unicode文字コード値) | ChrW$(24029) | 川 | Unicode文字コードに対応する文字 |
Format(文字列[,書式を指定する文字列,週初日の曜日,年の初週]) | Format(#2016/03/14#,"ggge\年m\月d\日") | 平成28年3月14日 | 数値等を、指定した書式に基づき変換した文字列 |
Format$() | | | |
GUIDFromString() | | | |
HtmlEncode(文字列) | | | 文字列をHTMLエンコードした文字 |
InStr([検索開始位置,]文字列,検索対象文字列[,比較モード])
| InStr("ABCDEあいうえおABCDE","B") | | ある文字列を別の文字列の中から探し、最初に見つかったものの位置 |
InStrRev(文字列,検索対象文字列[,検索開始位置,比較モード]) | InStrRev("ABCDEあいうえおABCDE","B") | | ある文字列を別の文字列の後ろから探し、最初に見つかったものの位置 |
LCase(文字列) | LCase("ABCDE") | abcde | 大文字を小文字に変えた文字列 |
LCase$(文字列) | LCase$("ABCDE") | abcde | 大文字を小文字に変えた文字列 |
Left(文字列,数値) | Left("あいうえおかきくけこ",3) | あいう | 文字列のうち最初の方(左側)から、指定した数値の長さの文字を取り出した文字列 |
Left$(文字列,数値) | Left$("あいうえおかきくけこ",3) | あいう | 文字列のうち最初の方(左側)から、指定した数値の長さの文字を取り出した文字列 |
Len(文字列) | Len("一二三四五") | | 文字列の文字数 |
LTrim(文字列) | LTrim(" あいうえお ") | あいうえお | 文字列の最初(左側)にある空白を取り除いた文字列 |
LTrim$(文字列) | LTrim$(" あいうえお ") | あいうえお | 文字列の最初(左側)にある空白を取り除いた文字列 |
Mid(文字列,開始位置[,文字数]) | Mid("あいうえおかきくけこ",6,3) | かきく | 文字列のうち、開始位置以降の文字列 |
Mid$(文字列,開始位置[,文字数]) | Mid$("あいうえおかきくけこ",6,3) | かきく | 文字列のうち、開始位置以降の文字列 |
PlainText(文字列[,数値]) | | | リッチテキストによる装飾やタグを除いた文字列を返す |
Replace(文字列,置換対象文字列,置換後文字列[,開始位置,置換回数,比較モード]) | Replace("ABCあいうABCあいうABC","ABC","XYZ") | XYZあいうXYZあいうXYZ | 文字列中にある特定の文字列を、別の文字列に置き換えた結果 |
Right(文字列,数値) | Right("あいうえおかきくけこ",3) | くけこ | 文字列のうち最後の方(右側)から、指定した数値の長さの文字を取り出した文字列 |
Right$(文字列,数値) | Right$("あいうえおかきくけこ",3) | くけこ | 文字列のうち最後の方(右側)から、指定した数値の長さの文字を取り出した文字列 |
RTrim(文字列) | RTrim(" あいうえお ") | あいうえお | 文字列の最後(右側)にある空白を取り除いた文字列 |
RTrim$(文字列) | RTrim$(" あいうえお ") | あいうえお | 文字列の最後(右側)にある空白を取り除いた文字列 |
Space(数値) | | | 指定した数値の数だけ、半角の空白を繰り返した文字列 |
Space$(数値) | | | 指定した数値の数だけ、半角の空白を繰り返した文字列 |
StrComp(文字列1,文字列2[,比較モード]) | StrComp("ABC","ABD") | -1 | 2つの文字列の比較結果(ソート順)を表す値 |
StrConv(文字列,変換モード[,ロケールID]) | StrConv("access study",1) | ACCESS STUDY | 指定した文字種に変換された文字列 |
String(数値,文字列) | String(3,"-") | --- | 指定した文字を指定した数値の回数だけ繰り返した文字列 |
String$(数値,文字列) | String$(3,"-") | --- | 指定した文字を指定した数値の回数だけ繰り返した文字列 |
StringFromGUID() | | | |
StrReverse(文字列) | StrReverse("志國三") | | 逆から並べた文字列 |
Trim(文字列) | Trim(" あいうえお ") | あいうえお | 文字列の最初と最後にある空白を取り除いた文字列 |
Trim$(文字列) | Trim$(" あいうえお ") | あいうえお | 文字列の最初と最後にある空白を取り除いた文字列 |
Ucase(文字列) | Ucase("abcde") | ABCDE | 小文字を大文字に変えた文字列 |
Ucase$(文字列) | Ucase$("abcde") | ABCDE | 小文字を大文字に変えた文字列 |
プログラムフロー
関数/引数 | 表記例 | 説明 |
Choose(数値,値1[,…,値i,…,値n]) | Choose([回答コード],"はい","いいえ","わからない","無回答") | 数値(i)に対応する値iを返す |
IIf(条件式,真の場合の値,偽の場合の値) | IIf([点数]>=60,"合格","不合格") | 条件式を評価した結果が真の場合と偽の場合に応じた値を返す |
Switch(条件式1,値1[,…,条件式i,値i,…,条件式n,値n]) | Switch([年齢]>=65,"シルバーの部",[年齢]>=20,"成年の部",[年齢]<20,"未成年の部") | 最初にTrueと評価された条件式iに対応する値iを返す |
メッセージ
関数/引数 | 表記例 | 戻り値例 | 説明 |
InputBox(メッセージ[,タイトル,既定値,x座標,y座標,ヘルプファイル,コンテキスト]) | InputBox("メニューを入力してください おすすめはカレーです", "ご注文をどうぞ", "カレー") | (入力された値) | ダイアログを表示するとともに入力された値を返す |
InpuxBox$() | | | |
MsgBox(メッセージ[,ボタン表示,タイトル,ヘルプファイル,コンテキスト]) | MsgBox("よろしいですか", vbYesNo) | (選択されたボタンに対応する値) | ダイアログを表示するとともに選択されたボタンの値を返す |
財務
関数/引数 | 表記例 | 説明 |
DDB() | | |
FV(利率,期間数,各期投資額[,初期投資額,払込時期]) | FV(0.05,4,-10000) | 投資の将来価値 |
IPmt() | | |
IRR() | | |
MIRR() | | |
NPer() | | |
NPV() | | |
Pmt() | | |
PPmt() | | |
PV(利率,期間数,各期収益額[,満期収益額,受取時期]) | PV(0.05,4,10000) | 収益の現在価値 |
Rate() | | |
SLN(取得価額,残存価額,償却期間) | | 定額法による償却額 |
SYD(取得価額,残存価額,償却期間,期) | | 級数法による償却額 |
算術
この種の関数に限ったことではありませんがExcelと比べて圧倒的に種類が少なく決して使い勝手が良いとはいえません。また、AtnやSqrのように名前が微妙に異なるものがありますので注意が必要です。
関数/引数 | 表記例 | 戻り値例 | 説明 |
Abs(数値) | Abs(-23) | 23 | 数値の絶対値 |
Atn(数値) | Atn(0.3) | 0.291456794477867 | 数値に対するアークタンジェント値(ラジアン) |
Cos(数値) | Cos(1) | 0.54030230586814 | 数値(ラジアン)に対するコサイン値 |
Exp(数値) | Exp(2) | 7.38905609893065 | e(自然対数の底)のべき乗 |
Fix(数値) | Fix(-3.2) | -3 | 数値の整数部分 |
Int(数値) | Int(-3.2) | -4 | 数値以下の整数で最大のものの値 |
Log(数値) | Log(10) | 2.30258509299405 | 自然対数(底がe) |
Rnd([数値]) | Rnd(-1) | 0.2240070104599 | (数値は省略可)ランダム値 |
Round(数値[,桁数]) | Round(2.245,2) | 2.24 | 指定桁数で丸めた値(偶数丸め) |
Sgn(数値) | Sgn(-123) | -1 | 数値の符号 |
Sin(数値) | Sin(1) | 0.841470984807897 | 数値(ラジアン)に対するサイン値 |
Sqr(数値) | Sqr(5) | 2.23606797749979 | 数値の平方根 |
Tan(数値) | Tan(1) | 1.5574077246549 | 数値(ラジアン)に対するタンジェント値 |
定義域集合関数
関数/引数 | 表記例 | 説明 |
DAvg(列名,レコードセット名[,条件]) | DAvg("数学点数","成績テーブル") | テーブルやクエリの、指定した列に記録されている数値の平均値 |
DCount(列名,レコードセット名[,条件]) | DCount("数学点数","成績テーブル") | テーブルやクエリの、指定した列に記録されている値の個数 |
DFirst(列名,レコードセット名[,条件]) | DFirst("数学点数","成績テーブル") | テーブルやクエリの、指定した列に記録されている値のうち最初のもの |
DLast(列名,レコードセット名[,条件]) | DLast("数学点数","成績テーブル") | テーブルやクエリの、指定した列に記録されている値のうち最後のもの |
DLookUp(列名,レコードセット名[,条件]) | DLookUp("数学点数","成績テーブル","受験番号=3") | テーブルやクエリの、指定した列に記録されている値 |
DMax(列名,レコードセット名[,条件]) | DMax("数学点数","成績テーブル") | テーブルやクエリの、指定した列に記録されている数値のうち最大のもの |
Dmin(列名,レコードセット名[,条件]) | Dmin("数学点数","成績テーブル") | テーブルやクエリの、指定した列に記録されている数値のうち最小のもの |
DStDev(列名,レコードセット名[,条件]) | DStDev("数学点数","成績テーブル") | テーブルやクエリの、指定した列に記録されている数値の標準偏差(標本標準偏差 分母=n-1) |
DStDevP(列名,レコードセット名[,条件]) | DStDevP("数学点数","成績テーブル") | テーブルやクエリの、指定した列に記録されている数値の標準偏差(母標準偏差 分母=n) |
DSum(列名,レコードセット名[,条件]) | DSum("数学点数","成績テーブル") | テーブルやクエリの、指定した列に記録されている数値の合計値 |
DVar(列名,レコードセット名[,条件]) | DVar("数学点数","成績テーブル") | テーブルやクエリの、指定した列に記録されている数値の分散(標本分散 分母=n-1) |
DVarP(列名,レコードセット名[,条件]) | DVarP("数学点数","成績テーブル") | テーブルやクエリの、指定した列に記録されている数値の分散(母分散 分母=n) |
特殊評価
関数/引数 | 表記例 | 戻り値例 | 説明 |
IsArray() | IsArray() | |
IsDate() | IsDate(#2015/09/16#) | | |
IsEmpty() | IsEmpty() | | |
IsError() | IsErrror() | | |
IsMissing() | IsMissing() | | |
IsNull(値) | IsNull("あいうえお") | | 値がNullかどうかを表すブール型の値 |
IsNumeric(値) | IsNumeric(12345) | | 値が数値として評価できるかどうかを表すブール型の値 |
IsObject() | IsObject() | |
TypeName(値) | TypeName("こんにちは") | String | 指定した値に関する情報を表す文字列 |
VarType(値) | VarType("こんにちは") | 8 | 値のサブタイプ(内部処理形式)を表す値 |
日付/時刻
関数/引数 | 表記例 | 戻り値例 | 説明 |
CDate(値) | CDate("平成27年9月16日 12:34:56") | 2015/09/16 12:34:56 | 日付型に変換された値 |
CVDate(値) | CVDate("2017/09/16 12:34:56") | 2017/09/16 12:34:56 | 日付型に変換された値 |
Date() | Date() | 2015/06/16 | システムの日付 |
Date$() | Date$() | 2015-06-16 | システムの日付(文字列型) |
DateAdd(基準単位,加算数値,基準日付時刻) | DateAdd("d",1,#2015/09/15#) | 2015/09/16 | 日付時刻に任意の間隔を加えた日付時刻 |
DateDiff(基準単位,日付時刻1,日付時刻2[,週初日の曜日,年の初週]) | DateDiff("yyyy",#2014/12/31#,#2015/01/01#) | 1 | 2つの日付時刻の差 |
DatePart(基準単位,日付時刻[,週初日の曜日,年の初週]) | DatePart("yyyy",#2015/03/15#) | 2015 | 指定した日付時刻の年,月,日など(単位を指定)を表す値 |
DateSerial(年数値,月数値,日数値) | DateSerial(2015,10,16) | 2015/10/16 | 指定した年月日の数値により生成される日付 |
DateValue(日付時刻) | DateValue() | ○○ | |
Day(日付時刻) | Day() | ○○ | |
Hour(日付時刻) | Hour(#2015/09/16 12:34:56#) | 12 | 指定した日付時刻の時 |
IsDate(値) | IsDate(#2015/09/16#) | ○○ | |
Minute(日付時刻) | Minute(#2015/09/16 12:34:56#) | 34 | |
Month(日付時刻) | Month() | ○○ | |
MonthName(月数値[,月名省略フラグ]) | MonthName(5,False) | 5月 | 月数値にもとづく月名 |
Now() | Now() | 2015/06/20 23:57:33 | システムの日付時刻 |
Second(日付時刻) | Second(#2015/09/16 12:34:56#) | 56 | |
Time() | Time() | ○○ | システムの時刻 |
Time$() | Time$() | ○○ | システムの時刻(文字列型) |
Timer() | Timer() | ○○ | |
TimeSerial(時数値,分数値,秒数値) | TimeSerial(12,34,56) | 12:34:56 | 指定した時分秒の数値により生成される時刻 |
TimeValue(日付時刻) | TimeValue(#2015/09/16 12:34:56#) | 12:34:56 | 指定した日付時刻の時刻 |
Weekday(日付時刻[,週初日の曜日]) | Weekday(#2015/09/16#) | 4 | 指定した日付時刻の曜日を示す数値 |
WeekdayName(曜日数値[,省略フラグ,週初日の曜日]) | WeekdayName(3,True,1) | 火 | 曜日を表す数値に対応する曜日名 |
Year(日付時刻) | Year(#2015/09/16#) | 2015 | 指定した日付時刻の年 |
配列
関数/引数 | 表記例 | 説明 |
LBound() | LBound() | |
UBound() | UBound() | |
標準
変換
関数/引数 | 表記例 | 戻り値例 | 説明 |
Asc(文字列) | Asc("川") | -28436 | 文字列の最初の1文字の文字コード |
AscW(文字列) | AscW("川") | 24029 | 文字列の最初の1文字のUnicode文字コード |
CBool(値) | CBool(1234.567) | -1 | 値を数値(ブール型)に変換 |
CByte(値) | CByte("10") | 10 | 値を数値(バイト型)に変換 |
CCur(値) | CCur("1234.567") | ¥1,234.567 | 値を数値(通貨型)に変換 |
CDate(値) | CDate("平成27年9月16日 12:34:56") | 2015/09/16 12:34:56 | 日付型に変換された値 |
CDbl(値) | CDbl("1234.567") | 1234.567 | 値を数値(倍精度浮動点小数型)に変換 |
Chr(文字コード値) | Chr(-28436) | 川 | 文字コードに対応する文字 |
Chr$(文字コード値) | Chr(-28436) | 川 | 文字コードに対応する文字 |
ChrW(Unicode文字コード値) | ChrW(24029) | 川 | Unicode文字コードに対応する文字 |
ChrW$(Unicode文字コード値) | ChrW$(24029) | 川 | Unicode文字コードに対応する文字 |
CInt(値) | CInt("\1,000") | 1000 | 値を数値(整数型)に変換 |
CLng(値) | CLng("\1,000") | 1000 | 値を数値(長整数型)に変換 |
CLngPtr() | CLngPtr() | | |
CSng(値) | CSng("1234.5") | 1234.5 | 値を数値(単精度浮動小数点型)に変換 |
CStr(値) | CStr(1000) | 1000 | 値を文字列型に変換 |
CVar() | CVar() | | |
CVDate(値) | CVDate("2017/09/16 12:34:56") | 2017/09/16 12:34:56 | 日付型に変換された値 |
DateSerial(年数値,月数値,日数値) | DateSerial(2015,10,16) | | 指定した年月日の数値により生成される日付 |
DateValue(日付時刻) | DateValue() | | |
Day(日付時刻) | Day() | | |
EuroConvert(数値,変換元通貨コード,変換先通貨コード[,表示桁数フラグ,三通貨換算時ユーロ桁数]) | EuroConvert(1,"EUR","FRF") | 6.56 | ユーロ参加国の通貨を相互に換算した値 |
FormatCurrency(数値[,小数点以下桁数,0の表示モード,マイナス表示モード,カンマ表示モード]) | FormatCurrency(12345.6789,5,-1,0,-1) | ¥12,345.67890 | 数値を指定した(通貨形式の)書式の文字列に変換して返す |
FormatDateTime(日付時刻[,書式]) | FormatDateTime(#2017/09/15 12:34:56#,1) | 2017年9月15日 | 日付時刻を指定した書式の文字列に変換して返す |
FormatNumber(数値[,小数点以下桁数,0の表示モード,マイナス表示モード,カンマ表示モード]) | FormatNumber(12345.6789,5,-1,0,-1) | 12,345.67890 | 数値を指定した書式の文字列に変換して返す |
FormatPercent(数値[,小数点以下桁数,0の表示モード,マイナス表示モード,カンマ表示モード]) | FormatPercent(34.56789,5,-1,0,-1) | 3,456.78900% | 数値を指定した書式(パーセント形式)の文字列に変換して返す |
GUIDFromString() | GUIDFromString() | | |
Hex(数値) | Hex(16) | 10 | 10進数を16進数に変換した値 |
Hex$(数値) | Hex$(16) | 10 | 10進数を16進数に変換した値 |
Hour(日付時刻) | Hour() | | |
HtmlEncode(文字列) | HtmlEncode("キング&バルーン") | キング&バルーン | 文字列をHTMLエンコードした文字 |
Minute(日付時刻) | Minute() | | |
Month(日付時刻) | Month() | | |
Nz(Null候補値[,代替値]) | Nz("あいうえお",0) | | Null候補値がNullでないときNull候補値を、Nullのとき代替値を返す |
Oct(数値) | Oct(8) | 10 | 10進数を8進数に変換した値 |
Oct$(数値) | Oct$(8) | 10 | 10進数を8進数に変換した値 |
PlainText(文字列[,数値]) | PlainText() | | |
Second(日付時刻) | Second() | | |
Str(数値) | Str(123) | | 数値を文字列に変換して返す |
Str$(数値) | Str$() | | 数値を文字列に変換して返す |
StrConv(文字列,変換モード[,ロケールID]) | StrConv("access study",1) | ACCESS STUDY | 指定した文字種に変換された文字列 |
StringFromGUID() | StringFromGUID() | | |
TimeSerial(時数値,分数値,秒数値) | TimeSerial(12,34,56) | 12:34:56 | 指定した時分秒の数値により生成される時刻 |
TimeValue(日付時刻) | TimeValue(#2015/09/16 12:34:56#) | | 指定した日付時刻の時刻 |
Val(文字列) | Val("12345人") | 12345 | 文字列から取り出した数値 |
Weekday(日付時刻[,週初日の曜日]) | Weekday(#2015/09/16#) | 4 | 指定した日付時刻の曜日を示す数値 |
Year(日付時刻) | Year(#2015/09/16#) | 2015 | 指定した日付時刻の年 |