Accessでのあいまい条件抽出について教えてください

このQ&Aのポイント
  • Windows 7のOSとAccess 2010の環境で商品データ管理をしています。商品テーブルには、仕入先品番A・B・Cの3つのフィールドがあります。仕入先によって品番が異なるため、必要なフィールドとなります。フォームには非連結のテキストボックスとボタンが配置されています。テキストボックスに入力した値が含まれる全てのレコードを仕入先品番3フィールドから抽出するVBAコードについて知りたいです。
  • Accessでの商品データ管理中の問題です。商品テーブルには仕入先品番A・B・Cの3つのフィールドがあります。仕入先ごとに品番が異なるため、必要な情報を取得するためには3つのフィールドから抽出する必要があります。現在、フォームにはテキストボックスとボタンが配置されており、テキストボックスに入力した値が含まれるレコードを抽出するVBAコードを作成したいと考えています。解決策について教えてください。
  • Accessでの商品データ管理についての質問です。商品テーブルには仕入先品番A・B・Cの3つのフィールドがありますが、同じ商品でも仕入先によって品番が異なるため、各フィールドから情報を取得する必要があります。フォームにはテキストボックスとボタンが配置されており、テキストボックスに入力した値が商品テーブルのフィールドから抽出されるVBAコードについて知りたいです。解決方法を教えてください。
回答を見る
  • ベストアンサー

accessあいまい条件抽出についてご教示ください

OS:Windows 7 Soft:access2010 商品データ管理を作成しております。 商品テーブルには、仕入先品番A・B・Cの3フィールドがあります。 (同商品でも仕入先により品番が異なるため必要なフィールドになります) フォームに非連結のテキストボックスとボタンを配置しました。 テキストボックスへ入力した値が含まれる全てのレコードを仕入先品番3フィールドから抽出されるVBAコードをご存知でしたらご教示頂きたくお願い致します。 フィールドが1つの場合は成功しましたが、複数のフィールドでは参考資料で調べても自力での解決が不可能な状況であります。 以上、宜しくお願い申し上げます。

  • agman
  • お礼率25% (1/4)

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

  • ベストアンサー
回答No.1

> フィールドが1つの場合は成功しましたが、 このコードを提示してもらった方が、それを元に回答できるので楽なんですが。 現状だと、テキストボックス名や、抽出結果をどこに表示するのか、などの情報が不足しています。 とりあえず、 商品テーブルと連結した帳票フォームのフォームヘッダーに非連結のテキストボックス(txt仕入先品番)と コマンドボタンが配置してあると仮定して回答しますね。 コマンドボタンのクリック時のイベントプロシージャに下記のコードを記述します。 Me.Filter = "取引先品番A='" & Me.txt取引先品番 & "' OR 取引先品番B='" & Me.txt取引先品番 & "' OR 取引先品番C='" & Me.txt取引先品番 & "'" Me.FilterOn = True 上記は、フィールド値とテキストボックスの値か完全一致の場合の例ですが、部分一致の場合は、 Me.Filter = "取引先品番A & ' ' & 取引先品番B & ' ' & 取引先品番C Like '*" & Me.txt取引先品番 & "*'" Me.FilterOn = True

agman
質問者

お礼

hatena1989様 ご指導の通り記述しましたら成功致しました。 迅速な回答と私のような素人でも分かり易いご説明で大変助かりました。 誠にありがとうございました。

関連するQ&A

  • Accessで、条件に一致するレコード抽出を、2段階できたら3段階でしたい。

    Access初心者のものです。 Accessで商品管理のデータベースを作成しています。 主なテーブルの内容は、 商品番号、商品名、メーカー名、仕入数、仕入単価、販売数、販売単価、などです。 今度は、在庫一覧のフォームを帳票フォームで作りました。そこで、入荷数、販売数などを入力し、現在庫状況をみれる形にしました。 そこでですが、そのフォームである特定の商品を探す際にメーカー名という一つのフィールドに関して抽出する方法はある本を見て抽出することができました。 以下は本をみていれたものです。    ----------------------------------------- 「仕入先抽出_コマンド」 → 抽出開始の為のコマンドボタン 「仕入先抽出条件」 → 抽出したい仕入先名を入力するテキストボックス名 「仕入先」 → 抽出をかける仕入先のフィールド Private Sub 仕入先抽出_コマンド_Click() If IsNull(Me!仕入先抽出条件) = True Then Beep MsgBox "抽出する仕入先を選んでください。", _ vbOKOnly + vbInformation, "抽出仕入先チェック" Me!仕入先抽出条件.SetFocus Exit Sub End If Me.Filter = "仕入先 = '" & Me!仕入先抽出条件 & "'" Me.FilterOn = True If Me.Recordset.RecordCount = 0 Then Beep MsgBox "仕入先抽出条件と一致するレコードは存在しません!", _ vbOKOnly + vbInformation, "レコードなし" Me!仕入先抽出.SetFocus End If End Sub    ----------------------------------------- ここで抽出したものから更に、メーカー名で抽出をかけて絞り込みしたいと考えております。 できれば2段階、3段階(商品情報は仕入先、メーカー名以外にもあるので…)といきたいのですが、何か方法がありますでしょうか? 宜しくお願致します。

  • ACCESS フォームで抽出条件の違うレコード表示

    宜しくお願いします。 ACCESSでレコードソースをQ_Bとするフォームに、ヘッダー部分に別のクエリ(Q_Aとします)のデータを表示させようと思っています。 Q_Aのデータを元にフォーム内でnoごとに表示するテキストボックス(リストボックスなどでも可)を変えて表示させたいのですがうまくいきません。 Q_Aは No 日付 1 1/15 2 2/1 3 2/5 4 3/12 ・・・レコード数は10あります。 Q_Aの日付フィールドのみ一定期間ごとに変更します。 ですので、一つのテキストボックスには例えば Noのフィールドの「1」のレコードが表示されるようにしたいのです。 Q_Aを元に、レコード数10が個別に表示されるテキストボックス等を、VBAなど?で抽出条件を指定しておきフォームを開いた際に表示できるようにしておきたいのですが、どのような方法があるかご教授願えますでしょうか? よろしくお願い致します。

  • ACCESS2010テキストボックス値を抽出条件に

    ACCESS2010にて、フォームに作ったテキストボックスの入力値(数字3桁)をクエリの抽出条件にしたいと考えています。 ただ、そのテキストボックスの数が30個の為、クエリデザイン画面の抽出条件欄にorを用いた条件式で設定することが出来ませんでした。(文字数上限超?) そこで、VBAを用いて抽出条件を設定しようと考えているのですが、初心者のため全く勝手が分かりません。VBAでの設定方法やVBA以外での抽出方法があれば教えて頂けないでしょうか。 尚、テキストボックスには商品コード(数字3桁)を入力し、売上データを集計したクエリにおいて、フォームのテキストボックスに入力された複数の商品コードを抽出条件に設定したいと考えております。 以上、どうかお願い致します。

  • Access2003 フォームを開くときの抽出設定について

    WindowsXP SP3+Access2003 環境です。 メニューフォームからデータのあるフォームを開こうと考えています。 ボタンウィザードでボタンを用意しようと思い、ウィザードの抽出条件としてメニューフォーム上のテキストボックス[txt_出庫用商品名]を設定しました。 データフォームの[商品名称]というフィールドと全てマッチすると抽出されるのですが、抽出したい文字列を【含む】場合の書式がうまく書けません。 (=ワイルドカードの配置がわかりません) ウィザードから自動的に記述されている以下について、"Me![txt_出庫用商品名]"を【含む】データを抽出する場合の記述を教えてください。 stLinkCriteria = "[商品名称]=" & "'" & Me![txt_出庫用商品名] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria よろしくお願い致します。

  • Accessマクロの抽出でどうしたらいいでしょうか?

    図のようにフォームには商品テーブルのフィールドを配置しています。 上のテキストボックスには、[商品グループ]の値と等しいレコードを抽出するよう入力します。 [抽出]ボタン:フィルタを実行 [解除]ボタン:フィルタを解除して、すべてのレコードを表示 それぞれクリック時のイベントに割り当てたマクロは以下です。 《マクロ名》《アクション/引数》  《値》  抽出    フィルタの実行         Where条件式     [商品グループ]=[Forms]![抽出]![txtキー]  解除    全レコードの表示        値の代入         アイテム      [txtキー]         式         NULL このようにしましたが、フィルタはフォームの起動時初回は出来ますが、[解除]ボタンを押して[抽出]ボタンを押すと再度の抽出はできません。 初回の1回だけは抽出できるんですけど・・・続けて抽出できるようにするにはどうしたらいいでしょうか?

  • (access )任意の数字以上でクエリ抽出したい

    フォーム上にテキストボックスと、サブフォームのクエリを配置しております テキストボックス(textbox1)に数字を入力し、その数字以上のフィールドを抽出したいのですが、上手く行きません 現在クエリの抽出条件に以下の式を入力していますが、レコードが一切表示されません。 (抽出はできますが) >=([Forms]![フォーム名]![textbox1]) どなたかご教授お願い致します

  • ACCESS クエリの抽出条件

    毎度お世話になります。 クエリをレコードソースとするフォームから、コマンドボタンでアクションクエリを実行するときの抽出条件の書き方を教えて頂けないでしょうか? 二つのテーブル(別のACCESSファイルからリンク)を基にパラメータクエリを作っています。 そのクエリを基にフォームを作っています。 さらに、そのフォームに追加クエリを実行するボタンを置いています。 フォームに表示してあるレコードだけ(パラメータで抽出されたレコードだけ)、他のテーブルに追加しようと思っているのですが、実行ボタンを押すともう一度パラメータが出てきてしまいます。 多分テキストボックスの値を読み取る際にレコードソースがテーブルでないのが問題じゃないかと思うのですが。。。 テーブル:Container / Items クエリ:From_Con(パラメータは[Container]フィールド) フォーム:From_Con(テキストボックス名は[txtContainer]) 追加クエリ:From_Con_App(抽出条件は[Forms]![From_Con]![txtContainer]としてみたがうまく動きません。) デザインビューの抽出条件を使う方法? SQLを使う方法? QueryDefを使う方法? いろいろありそうですが、ネットで検索してもヒットしません。 分かりにくい説明で申し訳ありませんがご教授願います。

  • Access コンボボックスを使って抽出

    Access2000・Windows2000を使用しています。 レコードの抽出をしたいと思います。テーブルは1つ、フィールドには日付・商品名・業者名・単価・・・とあります。フォームで「商品名から抽出(コンボボックスから商品を1つ選ぶ)」または「業者名から抽出(コンボボックスから業者を1つ選ぶ)」(コンボボックスから商品を1つ選ぶ)出来るようにし、なおかつ今月のレコードのみ表示させたいのですが、まずそのテーブルを1つ作成した時点でつまづいてしまっています。 どなたかご教授お願いします。

  • アクセス クエリー 抽出条件について

    アクセス クエリー 抽出条件について たとえば文字列で5桁の仕入先コードフィールドが有るとします。で1と3と5を除くレコードを表示させたいときは 抽出条件をどの様に設定したらよろしいでしょうか?

  • ACCESS2000 抽出されたレコードのテキストボックスに値を一括で

    ACCESS2000 抽出されたレコードのテキストボックスに値を一括で代入したい 宜しくお願い致します。 テーブルには、商品名、金額、数量、出荷予定日、出荷確認の5つのフィールドが あり、当日に出荷する予定の商品をクエリで抽出し、該当するレコードをフォームに 表形式で表示させています。 出荷後、出荷確認のテキストボックスに”済み”と入れたいので、現在、フォーム の隅に、既定値を”済み”としたテキストボックスを作り、フォーム内のコマンド ボタンを1回押すごとに、マクロ(値の代入)を実行させ、出荷確認に”済み”を代入 させています。 しかし、この方法だと、抽出されたレコードが100件あると、100回押さないといけ ません。一括で代入させる方法を探しているのですが、見つかりません。素人故、 複雑な事は出来ませんので、簡単な方法がありましたら、ご教授ください。 また、一度代入したものを、一括で消す方法も合わせてご教授いただければ幸い です。 宜しくお願い致します。

専門家に質問してみよう