Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


146 / 2272 ツリー ←次へ | 前へ→

【12851】文字列操作について まゆり 15/6/23(火) 10:59 質問[未読]
【12853】Re:文字列操作について かるびの 15/6/23(火) 14:19 回答[未読]
【12854】Re:文字列操作について まゆり 15/6/23(火) 14:25 お礼[未読]

【12851】文字列操作について
質問  まゆり  - 15/6/23(火) 10:59 -

引用なし
パスワード
   題名について、質問させて頂きます。

1つのセルに最大3つの文字列がスペース(_と表示)を挟んで入ってます。

aaaaa_bbbbb_ccccc__
aaaaa_bbbbb__
aaaaa__

抽出したい文字列は3つの文字列の場合は、aaaaabbbbbを、
         2つの文字列の場合は、aaaaaを、
         1つの文字列の場合は、aaaaaを、
取り出したいです。

ちなみに最後のスペースに関しては、ランダムです。
あったりなかったり、1つだったり、2つだったり。

最終的にやりたいことは、クエリの式で作成したフィールド同士
を主キーとしてつなげたいのです。

【12853】Re:文字列操作について
回答  かるびの  - 15/6/23(火) 14:19 -

引用なし
パスワード
    時間が取れないので、簡略な回答です。


 次の手順のユーザー定義関数を作り、当該関数をクエリの演算フィールドに設定するか、
又はクエリに演算フィールドを設け、次の手順を内容とする式を設定します。

 手順ですが、

 右はしのスペースをRTrim関数で除去。

 Instr関数を使って、1つ目のスペースの位置及び2つ目のスペースの位置を取得。
 これによって、最大3つある文字列がいくつあるかわかるし、
最大3つ文字列のうち、いくつめまでの文字列を取り出すかがわかる。

 IIF関数かSwitch関数を使って、条件分岐を行う。

 Left関数を使って、必要な部分を切り出す。


 でも、式だけで行おうとすると、同じ関数を何度も書かなければならなくなって、
かなり鬱陶しそう。

【12854】Re:文字列操作について
お礼  まゆり  - 15/6/23(火) 14:25 -

引用なし
パスワード
   ▼かるびの さん:
> 時間が取れないので、簡略な回答です。

限られた時間の中でのご回答ありがとうございます。

非常にわかりやすく、提示頂いた内容でやってみようと思います。
遅くなるかもしれませんが、結果報告致します。

ありがとうございました。

146 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078188
(SS)C-BOARD v3.8 is Free