2013/05/26

Office 365 Access アプリ -31- テキスト関数 - Concat / Stuff

  Office 365 上の Access アプリ で使用できる関数は、Access デスクトップ データベース で使用できる関数とは異なる。"Windows Azure SQL データベース"が使用されるから、Transact-SQLの関数がベースになっているのだろう。

  まず、文字列を連結する演算子は、 "+"。文字列フィールド、もしくは文字列変数を連結は、
[Field1] + [Field2] + [Field3]
となり、連結される文字列に Null が含まれる場合、結果は Null になる。また、文字列の結合に"&"演算子が使用できないことについては、
Concat 関数 (Access 2013 カスタム Web アプリ)
を使用する。
  • 引数は2つ以上が必要
  • 引数は暗黙の変換で文字列になる
  引数に Null が含まれても必ず文字列が戻り、すべてが Null である場合、長さ0の文字列が戻る。


  例えば、Field1 Field2 Field3 の値を区切り文字", "(カンマと空白文字)で結合したいとき、
Concat([Field1], ', ' + [Field2], ', ' + [Field3])
とすれば概ねよい。Field2が Null であるとき、', ' + [Field2] の結果は Null になるから。ただし、Field1 が Null であるとき期待する結果とは言えない。
  なので、文字列の置換をする関数
Stuff 関数 (Access 2013 カスタム Web アプリ)
をここで使用してみる。文字列の切り出した残りに文字列の差し込みが行える感じで、
Stuff(Concat(', ' + [Field1], ', ' + [Field2], ', ' + [Field3]), 1, 2, '')
 となり、文字列の先頭にある2文字を長さ0の文字列で置換している。なお、演算された結果は、Null もしくは、文字列になる。

0 件のコメント: