ACCESS VBAで文字列の一部を検索して別の項目にセットする方法

このQ&Aのポイント
  • ACCESS VBAを使用して、ある項目の文字列の一部を別の項目にセットしたい方法について教えてください。
  • 例えば、検索テーブルには「スパイス」という項目があります。テーブルの内容から、文字列「スパイス」の一部を別の項目にセットしたいです。実際のデータでは、「スパイスが効いています」という内容の品コード1や、「醤油あじ」という内容の品コード3があります。
  • 結果として、別のテーブルには「スパイス」という項目に対応する品コード1の内容「スパイスが効いています」と、「醤油」という項目に対応する品コード3の内容「醤油あじ」というデータがセットされます。
回答を見る
  • ベストアンサー

ACCESS文字列の一部を検索して別の項目にセットしたい。

ACCESS VBAである項目の文字列の一部を別の項目にセットしたいのですが、できるのでしょうか。 例)検索テーブル   ’スパイス’            ’醤油’  A:テーブル     品コード  内容             項目      1    スパイスが効いています。        2    大味      3    醤油あじ                4    醤油ラーメン A:テーブル結果または別テーブル     品コード  内容             項目      1    スパイスが効いています。   スパイス      2    大味      3    醤油あじ           醤油      4    この店の醤油ラーメン     醤油 宜しくお願いいたします。

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

VBAでなくても普通のクエリで実現可能です。但し、デザイナでは表示不可能なので、 SQLビューで直接SQLを記述します。尚、Access2003でテストしましたが、 古いバージョンではエラーになるかも知れません SELECT A.品コード,A.内容,B.キーワード AS 項目 FROM [A:テーブル] AS A LEFT JOIN 検索テーブル AS B ON A.内容 LIKE "*" & B.キーワード & "*" ORDER BY A.品コード 検索テーブルのフィールド名が不明だったので、「キーワード」と仮定しています。

UKUJIMA
質問者

お礼

なるほど、SQLでもできるんですね。 いつもありがとうございます。

関連するQ&A

  • 印でチェック項目を別セルに反映

    添付図のA列で丸印でチェックした右B列の項目を別セルD2より順に反映したいのですがどなたかVBAコードの解る方宜しくお願いします。

  • Excelで特定列の検索&書式変更をしたい

    ExcelにてA列に入力されている項目をB列から検索して一致するものがあれば、 セルの色を変えるということをしたいのですが、VBAではどのようなコードになりますでしょうか。 よろしくお願いします。

  • MS-ACCESSで、レコードセットを取得したい。

    MS-ACCESS2000での質問です。 VBAのコードで、任意のテーブルから、レコードセットを取得して、ADO.Recordset変数に代入したいのですが、どのような記述をすれば、出来ますでしょうか? 最終的にはそのレコードセットの各レコードに操作をしたいのです。 よろしくお願いします。

  • Access 文字列検索

    Aというテーブル(フィールド数:4、データ数:不定)とBというテーブル(テーブル構造はAと全く同じ)があります。 フォームでテキストボックスに文字列を入力しコマンドボタンをクリックすると、 Aの全フィールドの全データから入力された文字列を検索し、 Bのデータを全削除してから、該当したデータをBに追加するような機能を作りたいです。 ExcelのVBAは多少わかりますが、Accessはほとんどわからない初心者です。 どなたか親切な方、教えて下さい。 宜しくお願い致します。

  • SQLで半角文字⇒全角変換し特定の文字列を取りたい

    以前もSQLで出来ないか似たような質問をして、頂いた回答で出来るかとと思いましたが、質問の内容では足りないことが分かり再度質問致します。 テーブルA(置き換えをかけたい文字列が入っています) 項目名:A_Z 1件目:(株)あカあイa  2件目:いケ"いコ"い(学)  3件目:う(有)う(株) テーブルB(置き換える文字列が入っています) 項目名: B_A    B_B     (株)  なし     (有)  なし      カ    カ      ケ"    ゲ      a a 処理結果 1件目:あカあイa  2件目:いゲいコ"い(学)  3件目:うう SQLでテーブルAの文字列をテーブルBの項目B_Aの内容に該当する文字列をテーブルBの項目B_Bに置き換えを行い、テーブルAを更新(UPDATE)したいです。(テーブルBの項目B_B部分の登録内容「なし」は置き換えではなく取り除きを行いたいものです。登録は '' で登録しています。) 簡潔に言うと、テーブルAの内容の半角文字を全角変換し、特定文字列を取り除く処理を行いたいです。 取り除きたい文字列は、1つのレコード上に2つ以上あるパターンもあります。(テーブルAの3件のように) 初心者の為、どう書いたらよいのか全く分からず困っております。 出来ればMySQLとSQL Serverでの書き方ををご教授願います。

    • ベストアンサー
    • MySQL
  • Accessで計算値を項目へセットする方法。

    こんにちは。 非常に初歩的な質問で申し訳け御座いません。 Accessで計算値を項目へセットする方法についてお伺い致します。 A,B,Cのテーブル項目があったとして、フォームからA,Bへ入力した値をA*Bを計算してCへセットする場合に、これを実現できる方法(手段)を知りたいと思います。 マクロとVBAでは可能と思いますが、こちらの方法は除外しまして式ビルダを使って可能なのでしょうか。 (実は前から漠然と出来ると思っていたのですが、出来ないような気がしてきました。私の勘違いのではと思っています。) Accessのご経験豊富な方のご意見を宜しくお願い致します。

  • access追加クエリーでform入力項目値をセットする方法

    Access2002で、システムを構築中です。 いろいろ調べたのですが、初歩的過ぎるのは、意味が理解できてないのか、まったく判らなかったので、教えてください。 FORMから、年4桁をコンボボックスで選択させ、 Aテーブルの項目に、この年項目を追加したレイアウトで、 Bテーブルにデータを追加しようとしています。 Aよりレコードを読み込み、新しい項目にこの画面入力値をセットして全レコード同じ値として追加し、Bテーブルに書き込む処理を、ACCESSのクエリーでやりたいと考えています。 この画面の値のセットの仕方がわからず苦労しています。 動作イメージは、 フォームAのコンボボックスで値1を選択 コマンドボタンを押すと、クリックイベントでVBAへ。 VBA内では、 1 テーブルAから、テーブルBのデータを上記のように編集し、   追加する追加クエリを起動。 2 テーブルAのデータをクリア 以上です。 よろしくお願いします。

  • 文字列を検索しその列をコピーする(VBA)

    よろしくお願いします。 OS:WINDOWS 2000 PRO 環境:OFFICE 2003 エクセルのVBAについての質問です。 A列には数値コードが入っています。 そのコードは"1"と"2"に分類されてます。 マスターはSHEET1で、このマスターから コード1はSHEET2に、 コード2はSHEET3に 振り分けたいのですが、どうもうまくいきません・・・ A列にはコード"1" "2"以外に空白セルが存在します。 空白セルは無視したい。。。 それとこのデータはDBから抽出するのですが、 抽出したデータは規則性はありません。 抽出するごとに"1"と"2"と"空白"はランダムなので、 LOOP等のマクロを調べてやってみたのですが、出来なくて週末になってしまいました。 A列からコード1とコード2を検索して、 ヒットしたコードの行ごと各SHEETにコピーして、 なおかつ各シートA列の入力されていない一番下の セルにコピーしたいのですが、検索でヒットした 上から順番に。。。 これをLOOPと組合わせれば、各シートにコピーするのは 問題ないような気がします。。。 Sub AAA_BBB() .Copy Worksheets("Sheet2").Range("A65536").End(xlUp).Offset(1, 0) End With End Sub LOOP等で上記の条件を満たせる方法はないでしょうか。 ご教示を、よろしくお願いします。

  • 特定の文字列が入力されると、その文字列の列すべてを別のシートに抽出する

    特定の文字列が入力されると、その文字列の列すべてを別のシートに抽出する方法について お世話になります。 エクセルについてのご相談なのですが、 「シート1に入力された内容を、表の一番左の番号を元に別シートに引用したい」 というご相談です。 条件として、 ・入力される内容は複数の項目 ・入力されるデータは文字列も数値もある ・シート1は任意の項目でソートをすることもあるが、一番左の番号も同様にソートされるので、データと番号がずれることはない という前提です。 サンプル画像にイメージデータを添付致しました。 このサンプルですと、A4~A12の数字が「左端の番号」になり、別シートでは「左端の番号」を元にB~Fのデータを引用するように作成をしたいと思っています。 説明がわかりにくいかとは思いますが、ご助力頂ければ助かります。 よろしくおねがいいたします。

  • 文字列連結を行いたい

    以下のようなテーブル「TABLE_A」があります。 何とかSQLで抽出結果のようにしたいのですが、 方法が思いつきません。 【TABLE_A】  CODE | HIDUKE  -----|------------  1 | 2005/06/01  1 | 2005/06/02  1 | 2005/06/03  2 | 2005/06/01  2 | 2005/06/03 【抽出結果】  CODE | rst  ---------------------------------------------  1  | 2005/06/01 2005/06/02 2005/06/03  2 | 2005/06/01 2005/06/03  (列「CODE」単位に列「HIDUKE」を文字列連結を行う) どなたかご教授ください。 よろしくお願いいたします。