Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Access 2013)
文字列結合(カンマ区切り)
投稿日時: 20/11/12 21:32:14
投稿者: TOM57

下記のようにクエリで文字列の結合をカンマで区切ろうとしているのですが、
 
結合:[フィールド1] & "," [フィールド2] &"," & [フィールド3]
 
上記の場合フィールド2が空白の場合
フィールド1,,フィールド3
カンマが2つになってしまうのですが、
どのように回避したらいいでしょうか。
 
よろしくお願い致します。

回答
投稿日時: 20/11/12 22:32:06
投稿者: hatena
投稿者のウェブサイトに移動

下記でどうでしょうか。
 

結合: Mid(Format([フィールド1],"\,&") & Format([フィールド2],"\,&") & Format([フィールド3],"\,&"),2)

 
フィールド1が空白のとき、とか、フィールド3が空白のときも、間に一つだけカンマが付きます。

投稿日時: 20/11/12 22:56:54
投稿者: TOM57

hatenaさん
 
回答ありがとうございます!
できました。
 
でも理解ができておらず、教えてください
Format関数で 「\」や「&」を使ったことがないのですが、
使うことによってどういった意味があるのでしょうか。
 
よろしくお願い致します。

回答
投稿日時: 20/11/13 08:48:39
投稿者: hatena
投稿者のウェブサイトに移動

\は次の文字を文字として扱うという意味になります。
\, で , を出力します。
& は元のテキストをそのまま出力するという意味です。
 
また、文字列においてFormat関数の第2引数は、; で区切って前のセクションは値がある場合の書式、後のセクションは空文字列かNullの時の書式を設定できます。
 
例えば、
 
Format([フィールド1],"\,&;\無")
 
とすると[フィールド1]がNullだった場合は「無」が返ります。
後のセクションが省略された場合は、空文字列やNullの場合は空文字列が返されます。
ですので前のセクションで指定している,(カンマ)は出力されません。

投稿日時: 20/11/13 19:03:38
投稿者: TOM57

hatenaさん
  
丁寧に教えて頂きありがとうございます。
全く知らなかったので、今後色々活用できそうです!
  
本当にありがとうございました!!