- ベストアンサー
任意の文字を取り出す方法
VB6について質問です データベースより(国語 算数 理科 社会)と空白で区切られているデータを取り出したとします。 そこで各単語を取り出したいのですがどういった制御をかけたらいいでしょうか? 現在は以下のようなソースですが認識してくれません>< If ds!abc Like "国語" Then (abcには国語 算数 理科 社会が入っているものとします) Likeの使い方がちがうのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> (2)はチェックボタンが4つありまして、もし国語というもじ > が格納されていたらそれに対応したチェックボックスにチェッ > クをつけるという処理をしたいのです。 ということは、既に抽出は終わっていて、ds!abc にはなんらかの文字列が入っているという前提でいいのでしょうか? そうであれば話は簡単で、例えば以下のコードで実現できます。 Dim targetString as string targetString = ds!abc if instr(targetString, "国語") <> 0 then cbx_Kokugo.Value = True endif if instr(targetString, "算数") <> 0 then cbx_Sansuu.Value = True endif if instr(targetString, "理科") <> 0 then cbx_Rika.Value = True endif if instr(targetString, "社会") <> 0 then cbx_Shakai.Value = True endif それとも、データベースからの抽出方法の話ですか?
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
Split関数を使えばどうでしょう。 ABC="国語 算数 理科 社会" s=Split(ABC," ") でs(0),s(1),・・に国語 算数 理科 社会が入ります。
補足
回答ありがとうございました!! imogasiさんのやりかたでやってみたのですが どうやらABC="国語 算数 理科 社会"の空白のスペースが2個分あるようでこのやり方だとうまくいきませんでした>< なにか他に方法はありますでしょうか?
- Sombart
- ベストアンサー率16% (45/267)
VB6 という話ではないと思いますが、まず前提が不明確です。 (1) (国語 算数 理科 社会) というのは、一つのフィールドに入っている文字列だと言っているように読めますがそれで良いですか? それとも、4つの別々のフィールドにそれぞれの教科名が入っているということでしょうか。後者であれば、そのフィールド名も指定して下さい。 (2)「単語を取り出したい」とは、どういうことでしょう。(1) のフィールドに入っている単語(例えば "国語")を取り出すのに、"国語" をキーとするというのでは意味が分かりません。(取り出すまでもなく分かっているではないですか) もしかして、"国語" が格納されているレコード群を抽出したいということですか? 補足お願いします。
補足
回答ありがとうございます!>< 質問がうまくつたわらなかったようで申し訳ありませんでした、、、 (1)は一つのフィールドに入っている文字列です (2)はチェックボタンが4つありまして、もし国語というもじが格納されていたらそれに対応したチェックボックスにチェックをつけるという処理をしたいのです。 数学があったら数学に対応したチェックボックスにチェック。 すべてフォームのロード時に行っています。 それではご面倒ではあると思いますが答えていただけるととても 助かりますのでよろしくお願いいたします><
お礼
ありがとうございました!!!!! Sombart様の回答でバッチリ動きました^^ 助かりました!!>< 図々しいこと極まりないと思いますが、どうしてもあとひとつVBでわからないことがあります、、、 質問しても回答がないのでお願いしたいのですが・・・。 よかったら目を通していただけたらと思います。 http://okwave.jp/kotaeru.php3?q=1822038