テキストボックスで入力された文字を抽出する方法

このQ&Aのポイント
  • 入力用フォームAに配置された複数のチェックボックスとテキストボックスから、テキストボックスに入力された文字のみを抽出する方法について教えてください。
  • 入力用フォームAのチェックボックスとテキストボックスは別々のフィールドにすることができず、表示用フォームBのフィールド1にまとめて表示されています。テキストボックスで入力させた文字だけを抽出する方法を教えてください。
  • チェックボックスとテキストボックスがひとつのフィールドにまとめられており、テキストボックスで入力された文字を抽出する方法がわかりません。どのようにすれば良いでしょうか?
回答を見る
  • ベストアンサー

チェックボックス以外の文字を抽出

入力用フォームAに複数のチェックボックスとひとつのテキストボックスを配置し、 チェックの入っている項目とテキストボックスに入力した文字を 表示用フォームBの「フィールド1」にまとめて表示させています。 以下のようなイメージです。 <入力用フォームA> ■A □B ■C 【あいうえお】 <表示用フォームB> フィールド1【A C あいうえお】 表示用フォームBのフィールド1から、 テキストボックスで入力させた文字だけ(”あいうえお”) 抽出するにはどうしたらいいでしょうか? 入力用フォームAのチェックボックスとテキストボックスを それぞれ別のフィールドにして、 表示用フォームBで&でつなげて表示させるような構造だったら簡単なのでしょうが チェックボックスもテキストボックスも ひとつのフィールドにまとめてしまっているので どうしたらいいか分かりません。 ご教授よろしくお願いいたします!

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

要は、表示用フォームBのテキストボックスの値 フィールド1【A C あいうえお】 を頼りに 入力用フォームに「あいうえお」とあるレコードを探し出したい。 そのためには、【A C あいうえお】から「あいうえお」だけを切り出す必要がある。 ということでしょうかね。 こちらで、【A C あいうえお】を見た限りでは 【A□C□あいうえお】のように半角スペースで区切られていますが 実際のも必ずそうですか? (上記□は半角スペースのつもりです) A~Z?までのチェックボックス名は半角一文字ですか? 「あいうえお」部分には、実際には半角全角問わずアルファベットやスペースが使われる可能性がありますか? 以上3点のご確認を願います。 別案としては、【A C |あいうえお】みたいに仕切り役の | などを入れられれば 関数だけで、 strFind = mid("A C |あいうえお",instr("A C |あいうえお","|")+1) strFindに「あいうえお」が切り出せるのですけどねー。 したら forms!入力用フォームA.recordset.findfirst ("あいうえおの入っているテキストボックス名 = '" & strFind & "'" ) でそのレコードに飛んで行ってくれるハズ。 (「あいうえお」が一意の場合に有効です。複数ある場合は最初にしか行きません) 複数あるときには、Filter を使えば・・と思います。 勘違い回答かも知れないので、とりあえずこの辺でひとまず。

masunona
質問者

お礼

ありがとうございます! スペースで区切っていましたが、テキストボックスは自由記入欄なもので、誰に何を入れられるかわかりません・・・。でも「|」であれば誰も入れないと思いますので、それで区切るようにしたいと思います! 早速ためしてみます!

masunona
質問者

補足

すみません・・・いただいたものをヒントに色々試してみたのですが・・・ レコードを探し出すのではないんです・・・すみません。 たとえば 田中さんに、入力用フォームAを使って A C あいうえお と入力し、 あとで変更があった場合 入力用フォームBをふたたび開いて、 A C かきくけこ などと入力しなおしたいんです。 入力しなおす場合に、 入力用フォームBをそのまま開いても何も入力されていない状態 (チェックボックスにチェックは入っておらず、テキストボックスも空の状態) で開いてしまいますが、 チェックボックスの該当のところにはチェックを入れて(←これはできてます) テキストボックスには、全開入力した内容が入っている状態にしたいです。 ちなみにテキストボックスには空欄、英語、数字等何でもはいる可能性がありますが ”|”は入る可能性が非常に低いので、 ”|”で仕切ることは可能です! もしよろしければ、またよろしくお願いいたします!

その他の回答 (2)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.3

なんどか読み返してみましたが、 やはりチェックボックス部分とテキストボックス部分は テーブルの別個のフィールドに格納すべきです。 >チェックボックスについては、 >フォームの読み込み時のイベントで >If Forms!フォームB![フィールド1] Like "*" & "A" & "*" Then >Me.A.Value = True >End If とされていますが、 フィールド1が、「A B Good Morning」とあれば チェックボックスは、A B D G I M N O R とチェックが入ってしまいませんか? 一つのフィールドに複数の意味を持たせるのは無理があります。 特にテキスト部分が「なんでもあり」なのですから バグの原因を潜ませることになるかと思います。 >A C |かきくけこ とあった場合にユーザーが誤って A |あいう とチェックボックス部分を消してしまう可能性もあります。

masunona
質問者

お礼

チェックボックスを、A B C としたために紛らわしくなってしまってすみません。 実際はアルファベットではなく ■調停 □訴訟 ■控訴 【遺産分割】 という感じで、 表示用フォームには 調停 控訴 遺産分割 と入るようになっています。 表示用フォームを誤って直接操作されても 開くときのVBAでチェックボックスを入れるようにしているので (表示用フォームの内容を判断してチェックを入れるようにVBAをくんでる) それは問題ないとは思ったのですが・・・ 私の考えていることに限界があるようですので 別の方法も検討してみたいと思います。 ありがとうございました!

masunona
質問者

補足

教えていただいた関数などを利用して、 なんとかテキストボックスの内容だけ抽出する方法に成功しました。 しかし次の問題が出てきてしまいました。 http://oshiete.goo.ne.jp/qa/8229369.html もしよろしければまた教えていただければと思います。 ありがとうございました!

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

状況がよくわかりません。 テキストボックスに、"あいうえお"と入っていて フィールド1の、"あいうえお"を含むレコードだけを抽出・・・ということ?かな? 表示用フォームBの説明も欲しいです。 レコードソースがテーブルなのかクエリなのか。。。

masunona
質問者

お礼

お返事ありがとうございます! 説明不足で申し訳ありません。 会員の住所録を作成しています。 表示用フォームBは単票フォームです。 リストボックスを配置していて、そこに氏名一覧を表示させ、 氏名をクリックすると会員情報の詳細情報が表示されるようになっています。 さらにボタンを配置して、ボタンをクリックすると 入力用フォームAが開くようになっています。 入力用フォームAのチェックボックスにはそれぞれ ■Aには”A” □Bには”B” ■Cには”C” と名前を付けています。 表示用フォームBのフィールド1には フォームAの「チェックの入っているもの」&「テキストボックスの内容」 が入るようにして、 入力用フォームAで 該当箇所にチェックを入れたりテキストボックスに書き込んだりしてフォームを閉じると、 表示用フォームBのフィールド1に「A C あいうえお」と表示されるようにしています。 表示用フォームBのフィールド1の内容を変更したいと思ったとき、 入力用フォームAを開くと、 ■A □B ■B 【あいうえお】 と入力されている状態にしたいんです。 チェックボックスについては、 フォームの読み込み時のイベントで If Forms!フォームB![フィールド1] Like "*" & "A" & "*" Then Me.A.Value = True End If ・・・ として、フォームAを開いた時に該当箇所にチェックが入るようにできたのですが、 テキストボックスに、以前入力した内容を表示させる方法がわかりません。 表示用フォームBのレコードソースはクエリです。 よろしくお願いいたします!

関連するQ&A

  • テキストボックスにクエリ結果を表示させたい

    フォームにテキストボックスAがあり、そこに入力した文字(下記テーブルのフィールド1の文字)をクエリーの「抽出条件」にし、同じフォーム上のテキストボックスBに表示しようと思っています。 クエリを開くとパラメータの入力を求めてきて、入力するとうまく抽出されます。 テーブルは フィールド1|フィールド2   A   |  10   B   |  20   C   |  30   D   |  40 のような簡単なものです。 テキストボックスBのコントロールソースに 「=[○×クエリ]![フィールド2]とやっても「#Name?」と表示されてしまいます。 どのようにやればよいのでしょうか?

  • テキストボックスの内容でチェックボックスの既定値

    下記質問の続きです。 http://okwave.jp/qa/q8186736.html Accessで、 チェックボックスにチェックを入れることで テキストボックスに文字を表示させています。 そのフォームをいったん閉じると、 テキストボックスには 前回チェックボックスで入力した文字が反映されているのですが チェックボックスのチェックがすべて外れてしまっています。 フォームを開いたとき、 テキストボックスの内容によって、 配置したチェックボックスにチェックを入れたいです。 テキストボックスに 「A C」 と入っていたら ■A □B ■C □D □E としたいです。 (開いたあとは、また別の所にチェックを入れたり外したりします) チェックボックスのプロパティ「既定値」のところに IF([テキストボックス] like "*"&"A"&"*",ture,false) などとしてみたのですがうまういきませんでした。 ご教授お願いいたします!

  • チェックボックスの配置順にテキストボックスに表示

    accessのフォームにチェックボックスを配置し チェックされたものをテキストボックスに表示させています。 ■A ■B □C □D ■E となっていたら、テキストボックスに A B E と表示させています。 チェックボックスの真ん中に新しくチェックボックスを追加すると テキストボックス内には、追加したものが最後に表示されていまいます。 ■A ■B □C ■Z □D ■E とすると、テキストボックスには A B Z E と表示させたいのに A B E Z 表示されてしまいます。 いちから順番どおりに作り直せばいいのですが かなりたくさんチェックボックスがあるうえに 上司から、この先も何度も作り直しを指示されそうです・・・。 できれば簡単に、配置した順にテキストボックスに表示されるようにしたいです。 チェックボックスの配置順に テキストボックスに文字を表示させる方法を教えてください!

  • VBA チェックボックスをチェックした名前のみ抽出

    数百名のリストからチェックした名前のみ抽出したいと思いまして。 1.シート1のA、C、E…奇数列にフォームのチェックボックスを配置 2.B、D、F…偶数列に名前を並べる 3.チェックボックスでクリックし、チェックマークが出る 4.マクロでSheet2のA列から抽出された名前を並べる 宜しくお願いします。

  • チェックボックスの内容をテキストボックスに表示

    フォームにチェックボックスをいくつか作成しました。 チェックした内容をテキストボックスに羅列して表示するには どうしたらいいのでしょうか? □A □B □C ・ ・ ・ とあり、AとCにチェックを入れたら テキストボックスに「A C」と表示させるようにしたいです。 お願いいたします!

  • リンクボタンからチェックボックスに

    こんにちは。はじめて質問させていただきます。 html(XHTML)で書かれたテキストリンクを押すと お問い合わせフォームが立ち上がります。 フォーム内には名前やメール入力欄があり、いくつかチェックボックスも配置しています。 そこで Aというテキストリンクから来た場合→あらかじめAのチェックボックスにチェックを入れた状態で立ち上がる。 Bのテキストリンクから来た場合→Bにチェックが入っている。 こんなことって可能でしょうか。 どうかお力をお貸しください。よろしくお願いいたします!

  • ACCESSのテキストボックス内の任意の文字

    お世話になります。 宜しくお願い致します。 ACCESS2010についてになります。 [フォームA]の[テキストボックスa]に、ある文字が含まれていたら、[テーブルB]の[フィールドb]を検索して、[フィールド'c]の値を[フォームA]の[テキストボックス'a]に表示させたいと思います。 (例) 『信長』が入っていたら、検索結果を表示させる。 [フォームA] [テキストボックスa] 『徳川家康』 ⇒  検索しない。 『織田信成』 ⇒  検索しない。 『織田信長』 ⇒  [テーブルB][フィールドb]を検索する。 [テーブルB] [フィールドb] [フィールド'c] 明智光秀 あけちみつひで 織田信長 おだのぶなが ⇒ 結果を表示する。 [フォームA] [テキストボックス'a] おだのぶなが おわかり頂けますでしょうか。 上手く表現できずにすみません。 お手数ですが、ご教示頂ければと思います。 宜しく、お願い致します。

  • クエリーで全部のデータを抽出する方法

    アクセスのクエリーでデータを抽出する時、具体的にはフォームでデータを入力し抽出するのですが、たとえばフォームのテキストボックスに数字を入れないとそのクエリーのフィールドは抽出がかからないようにしたいのです。(抽出フィールドが1つなら数字をいれなければクエリーのデータすべてが表示される) ----------------------------------- フィールド   A      B     c テーブル   テーブル1 テーブル1 テーブル1 抽出条件    []    [] または    ---------------------------------- 上はクエリーのデザインですがクエリーをひらくと抽出条件をきいてきますがA列は何も入力しないでB列では1と入力するとBの列に1の入ってるレコードを表示させたいのです。(もし空欄が無理ならAの列の時何かある文字を入力すると全部表示になる、でもいいです。) まわりくどくなりましたが、アクセス超入門者です。よろしくおねがいします。

  • Accessで複数条件抽出

    Accessで複数条件抽出をする方法を教えてください。 フォーム内に[A]、[B]のテキストボックスがあり、検索用のテキストボックス[C]を設けており、[C]入力した文字が[A]または[B]に入力されているデータと一致するものを抽出したいのですが、以下のようなコードではうまくいきません。 Me.Filter="A='" & Me![C] & "'" Or "B='" & Me![C] & "'" どのようにすればうまく抽出できるか教えてください。

  • VBA チェックボックスをチェックした項目のみ抽出

    1.シート1のA列にフォームのチェックボックスを配置 2.B列に名前を並べる 3.チェックボックスでクリックし、チェックマークが出る 4.マクロでシート2のA列から抽出された名前を並べる 以上のことをしたいと思い、検索しましたところ、似たようなものが見つかりました。 https://okwave.jp/qa/q5065347.html ただ、このVBAは抽出先がG列です。抽出先はシート2のA列にしたいのです。 .Cells(i, "G").Value = cb.TopLeftCell.Offset(, 1).Value これをどうしたら良いでしょうか? 宜しくお願いします。

専門家に質問してみよう