- 締切済み
複数の文字列検索について
VBというよりも、accessで利用したいのでVBAになるかと思いますが、 ある項目について文字列検索をしたいのですが、 001:"aaa" 002:"bbb" 003:"ccc" ・ ・ 100:"zzz" ※SELECT hoge FROM geho WHERE あああ Like "*%%%*" ***%%%の値を個数分かえたい*** といったように複数パターンあり、クエリの条件節に記述できない状態です。 フォームを作成し、リストボックスに値を格納するところまではできたんですが、 その値を取得して、変数に格納することができません。 ヘルプではItemsSelectedを利用すればいけそうな感じでしたが、 使用例をはりつけて試してみてもエラーになります。 access97なので使えないメソッドだったりするんでしょうか? 何かよい知恵ももってらっしゃる方いらっしゃったらご教授願います。
- ghvfv
- お礼率0% (0/2)
- Visual Basic
- 回答数2
- ありがとう数1
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- temtecomai2
- ベストアンサー率61% (656/1071)
何を質問したいのかがわかりません。 目の前の人に質問するんだって何に困っていてヒントをもらいたいのか、はっきり質問しますよね。 ある時にリストボックスに不特定多数の値が入るっていうフォームで、 リストボックスに入っている全ての値を検索条件に入れる SQL を発行したい。(AND なのか OR なのかは質問者の頭の中にのみ存在しているので私には想像できませんが) っていう状況? で、困っているのは何? キーワードが不特定多数なので静的にクエリやパラメータ クエリを使えないが、どうしたらいいのか困っている。 てこと? それとも SQL の質問じゃなくて、リストボックスの全ての値を取得することができなくて困っているってこと?
- MARU4812
- ベストアンサー率43% (196/452)
提示された例では条件が良くわからないけど、 普通に考えれば WHERE (あああ Like "*aa*") OR (あああ Like "*bb*") とかをまず考えるのでは?
関連するQ&A
- 文字列を改行で区切り配列に格納したい
データをプログラムに明記し、プログラムで いろいろ加工したり処理をしたい場合ですが、 例えば、 Dim hairetu(10) As String hairetu(0) = "aaa" hairetu(1) = "bbb" hairetu(2) = "ccc" 途中省略 hairetu(10) = "zzz" これをイメージとして以下のように行う方法はありますでしょうか あくまでもイメージとしてです。 Dim mojiretu As String Dim hairetu(10) As String mojiretu="aaa\nbbb\nccc\n途中省略zzz" ← hairetu=mojiretuを”\n”で区切り順次配列に格納する ←は、mojiretu="aaa bbb ccc 省略 zzz" のようなイメージです。 よろしくお願いします
- ベストアンサー
- Visual Basic
- SQL 複数条件を設定
使用言語はjavaで処理しており、 SQL Server2005にて下記のようなテーブル(T_Kekka)があります。 ID a-1 a-2 b-1 b-2 c-1 c-2  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 1 bbb aaa ddd ccc eee fff 2 ggg bbb ccc hhh iii jjj 3 bbb mmm ddd ccc fff eee 4 bbb aaa ccc ddd qqq rrr 5 zzz sss ttt ccc vvv xxx 6 zzz aaa ttt ccc vvv fff 7 zzz zzz zzz zzz zzz zzz 8 qqq rrr ccc ddd fff eee 検索する値は下記の通りです。 検索値 |a-1|a-2|b-1|b-2|c-1|c-2|  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |aaa|bbb|ccc|ddd|eee|fff| 期待値としては、aはaのグループで検索、bはbのグループで検索、cはcのグループで検索をし、 一致個数の多い順に出力したいと考えております。(理想は下記のような感じです。) また、グループ内であれば逆転していてもOKです。 (例えばID:1のaグループのような感じです。) *1 一致数が同じ場合はcグループの数が多いデータが最優先となり、その他はID順になります。 期待値 ID a-1 a-2 b-1 b-2 c-1 c-2 一致数  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 1 bbb aaa ddd ccc eee fff 6 3 bbb mmm ddd ccc fff eee 5 8 qqq rrr ccc ddd fff eee 4・・・*1 4 bbb aaa ccc ddd qqq rrr 4 6 zzz aaa ttt ccc vvv fff 3 2 ggg bbb ccc hhh iii jjj 2 5 zzz sss ttt ccc vvv xxx 1 7 zzz zzz zzz zzz zzz zzz 0 知識不足のため私には複雑すぎて悩んでいる状況なので、 どなた様か知識がある方にご教授願いたく思います。 また、まだテスト段階なので現状のようなテーブル構造にしてしまいましたが、 他のテーブル構造の方がデータが抽出しやすかったり、レスポンスがいい場合がありましたら、 ご教授いただけると助かります。 説明が分かりづらく表が見づらくて申し訳ございませんが、 宜しくお願い致します。
- ベストアンサー
- SQL Server
- strcmp関数などでの複数の文字列の比較
以下の例はランダムなiの値で文字列にアクセスして その文字列がどの文字列であるかを判定しているプログラムです。 char *string[] = { "aaa", "bbb", "ccc", } ; int i = rand() % 3; if ( strcmp( string[ i ], "aaa" ) == 0 ) { printf("aaaです"); } if ( strcmp( string[ i ], "bbb" ) == 0 ) { printf("bbbです"); } if ( strcmp( string[ i ], "ccc" ) == 0 ) { printf("cccです"); } するとこのようにif文の羅列になってしまいます。 (strstr関数を使う場合などでも同じような感じです。) 複数の文字列を判定する場合などにもっと良い手法は無いでしょうか?
- ベストアンサー
- C・C++・C#
- updata に失敗した時の返り値は??
質問があるのですがよろしくお願いします。 PHP5で、 $res = $db->query("update AAA set BBB=1 where CCC=2"); などとした時、 where節で該当するレコードが一つもなく、updateに失敗した時、$resにはどのような値が返るのでしょうか?? またPHPの組み込み関数やPearによって、その$resから何か値を得ることは可能でしょうか?? どなたか分かる方いらっしゃいましたらご教授頂けると幸いです。
- ベストアンサー
- PHP
- 行数ごとに検索をかけて並び替えをしたいのですが・・
数千のファイル名が書かれたテキストファイルがあります。(Aとします。) /yyy/ccc.txt /aaa/aaa.txt /bbb/bbb.txt /sss/aaa.txt /ccc/bbb.txt /zzz/ccc.txt ・ ・ ・ ユニークファイル名だけ書かれたファイルがあります。(Bとします。) aaa.txt bbb.txt ccc.txt ・ ・ ・ Bの行数1行ずつAで検索をかけ、ファイル名を新しいファイル(Cとします)に書き出したいのです。 /aaa/aaa.txt /sss/aaa.txt /bbb/bbb.txt /ccc/bbb.txt /yyy/ccc.txt /zzz/ccc.txt ・ ・ ・ シェルを使ってやりたいのですが、どのようにすればいいのか見当もつきません。 どなたかお分かりのかたいましたら教えてください。よろしくおねがいします。
- ベストアンサー
- Linux系OS
- Wordで複数行の文字列を罫線で囲みたい
WindowsXP,Word2003を使用しています。 以下のような文字列があったとします。 番号 内容 備考 1 AAA XXX 2 BBB YYY 3 CCC ZZZ これを罫線で囲みたい(4行3列の罫線で囲みたい)のですが、どうすればよいのでしょうか? すべて選択して、「罫線」→「挿入」としても横線だけ入り、枠に囲まれません。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Accessの文字列部分一致を合計する関数
お世話になっております。 Access2003の関数で教えてください。 Acces2003のクエリで、 「同じフィールド内で文字列が部分一致した場合、新しいフィールドに 別のフィールドにある数値を合計する、部分一致しない場合は合計せず、 そのままの数値を表示する」 という関数を設定したいと思っております。 具体的に記載しますと、 在庫テーブルがあり、 商品コード 在庫 aaa 10 bbb 20 ccc 15 ddd 30 aaa-1 40 bbb-1 25 ddd-1 20 というデータが入力されております。 この在庫テーブルから新しいクエリで、新しく「在庫合計」フィールド を作成し、このフィールドに関数を用いて、 『「商品コード」フィールドの左3文字が一致した場合、「在庫」フィールドの 数値を合計する数値を表示させ、一致しない場合は合計せずそのままの 数値を表示する』 という形です。 クエリの実行結果としては 商品コード 在庫 在庫合計 aaa 10 50 bbb 20 50 ccc 15 15 ddd 30 50 bbb 5 50 aaa-1 40 50 bbb-1 25 50 ddd-1 20 50 という結果になり、商品コード「aaa」と「aaa-1」や「bbb」と「bbb-1」の「在庫合計」の値 は同じ値(「在庫」フィールドを合計した数値)が表示され、左3文字が一致したデータ がない「ccc」は15のまま、という結果です。 ※ただ、商品コードに重複がございます。(上記例でいうと商品コードが「bbb」です。) 当方VBAは使えないので、クエリで行いたいと思っております。 Accessで難しければExcelの関数でも構いません。 当方初心者ですので、不足な情報がございましたら加筆いたします。 どうぞよろしくお願いいたします。
- ベストアンサー
- その他MS Office製品
- エクセルのマクロ【複数検索&検索結果の合計】
以下のように 【sheet1】にA列B列からなるデータにおいて A列の内容が同じものどうしのB列の値を合計し その結果の大きい順に並べて 【sheet2】に出力するマクロを 作りたいのですが、どうしたらよいかわかりません。 どなたかお分かりになる方いらっしゃいましたら 教えて頂きたくお願い致します。 【sheet1】 A列 B列 aaa 5 bbb 4 aaa 3 aaa 2 ccc 89 bbb 100 【sheet2】 A列 bbb 104 ccc 89 aaa 10
- ベストアンサー
- Visual Basic