Access:MID関数をクエリで使用する方法|INSTRで検索し取出す

INSTR関数で文字列を検索し、MID関数とLEN関数で見つかった位置から指定した文字数を取り出すクエリを作成します。

BackHome Backクエリ

MID関数は文字列の指定した位置から、指定した長さを取り出す関数です。

INSTR関数やLEN関数と組み合わせれば文字列から検索し、その見つかった位置から取り出すことができます。

構文

MID (文字列 , 取出し開始位置 , 取出す長さ)

ここではMID関数で日付から「年」「月」「日」をそれぞれ取り出すクエリと、MID関数にINSTR関数とLEN関数を使用し、氏名から「姓」と「名」をそれぞれ取り出すクエリを作成します。

Access VBAでのMID関数の使い方はこちらを参照してください。

Access SQLでのMID関数の使い方はこちらを参照してください。

INSTR関数は、文字列から指定した文字を検索し、見つかった位置を返します。

LEN関数は、文字列の長さを返します。

MID関数については「AccessのVBAでSQLのMID関数を使い、文字列の途中から指定した文字数分の文字列を返す|フォーム実行例」も掲載していますので参考にしてください。




MID関数をクエリで使用するサンプル

クエリの元になる研修記録テーブルです。

この研修日から、MID関数で「年」「月」「日」をそれぞれ取り出します。

次に、氏名からINSTR関数でスペースを検索し、「姓」と「名」をそれぞれ取り出します。

研修記録テーブル

■ MID関数を使ったクエリの作成

クエリデザインで下記の式を入力します。

年:MID([研修日],1,4)

「年」は1文字目から4文字取り出します。

月:MID([研修日],5,2)

「月」は5文字目から2文字取り出します。

日:MID([研修日],8,2)

「日」は8文字目から2文字取り出します。

MID関数を使ったクエリ

日付を分解し、「年」「月」「日」をそれぞれ取出すことができました。

日付を分解し「年」「月」「日」を取出した

■MID関数にINSTR関数とLEN関数を使用する

下記の式を入力します。

姓:MID([氏名],1,INSTR(1,[氏名]," ")-1)

「姓」は、INSTR関数で氏名のスペースを検索し、1文字目から見つかった位置-1までの文字数を取り出します。

名:MID([氏名],INSTR(1,[氏名]," ")+1,LEN([氏名])-INSTR(1,[氏名]," "))

「名」は、INSTR関数で氏名のスペースを検索し、見つかった位置+1から、LEN関数で全体の長さを求め、そこから見つかった位置を引いた文字数を取り出します。

MID関数にINSTR関数とLEN関数を使用したクエリ

氏名を分解し、「姓」「名」をそれぞれ取出すことができました。

氏名を分解し「姓」「名」を取出した

BackHome Backクエリ

Copyright(C) FeedSoft