• ベストアンサー

アクセスで文字列をつなげる

おはようございます。たびたびお世話になります。 文字列の連結で  フィールド1 フィールド2 フィールド3  材料a     材料b    材料c  材料a     材料d  材料c というデータがあり、クエリで&を使用し文字の連結をしています。 材料a,材料b,材料c 材料a,材料d 材料c というようにしたいのですが、そのまま連結してしまうと、 材料a,材料b,材料c 材料a,材料d, 材料c,, となってしまいます。 適当な関数も見つからず、不要な『,』を置換で消してしまう事も考えているのですが、うまくいきません。 良い方法はないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#22222
noname#22222
回答No.4

式1: [Field1] & IIf([Field2],",","") & [Field2] & IIf([Field3],",","") & [Field3]

kapakapa
質問者

お礼

ありがとうございます。この式で出来そうです。

その他の回答 (4)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.5

#3のmshr1962です。 >実際作業してみたところ「式に未定義関数'Replace'があります。」というメッセージが出てしまいました。 新しい VBA 関数を式で使用できない http://support.microsoft.com/kb/225956/ja 確認しました。この症状みたいですね。ユーザー定義関数として設定する必要があるみたいです。

kapakapa
質問者

お礼

ありがとうございました。勉強になりました。やっと関数を使えるレベルなので、いろいろな方の意見を参考にできて勉強になります。これからも宜しくお願いします。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

=Replace(Trim([フィールド1]&" "&[フィールド2]&" "&[フィールド3])," ",",") では如何でしょうか

kapakapa
質問者

お礼

ありがとうございます。実際作業してみたところ「式に未定義関数'Replace'があります。」というメッセージが出てしまいました。

noname#60992
noname#60992
回答No.2

NO1です。  質問を読み違えていたようですね。 すみません。 1.2つのカンマを1つに置き換える。 2.最後の文字がカンマだったらそれを消す。 作業を行えばよいわけで 1.は Replace([対象データ],",,",",") 2.は vbaで下記のような関数を作るのが楽かな function DelRtComma(taishostr) as string delrtcomma = taishostr if right(taishostr,1) = "," then delrtcomma = left(taishostr,len(taishostr)-1) end if

kapakapa
質問者

お礼

たびたびありがとうございます。1については私も本で調べてやってみたのですが、『式に未定義関数'Replace'があります。』というメッセージがでてしまいまいした。 2.もやってみたのですが、ちょっとうまくいかないみたいです。結果が代わりませんでした(,がついたままです)。どこか置き換える文字があるのでしょうか?

noname#60992
noname#60992
回答No.1

文字列としてつなげるのには & を使います。 [フィールド1] & [フィールド2] & [フィールド3] とすればできるはずですが、前後にスペースなどが入っているのであれば、trimなどを使って省く必要があります。

kapakapa
質問者

お礼

すみません補足し忘れましたが、文字間に,を入れたい為、 [フィールド1] &"," &[フィールド2] &"," &[フィールド3]としています。

kapakapa
質問者

補足

早速ご回答ありがとうございます。ご指摘のように連結すると、フィールドにデータがないところにも『,』が入ってしまうため、語尾に不要の『,』ができてしまいます。この語尾の『,』削除できる関数というのはあるのでしょうか?

関連するQ&A