• ベストアンサー

アクセスで検索ボタンを作りたいです。

アクセスを勉強中の初心者です。 商品の在庫管理をしているのですが、フォームのヘッダーにコマンドボックスを作り、そこに商品コードを入れて検索ボタンを押すと、下に商品の情報が表示されるように作りたいのですがわかりませんので、教えてください。  

  • flow
  • お礼率38% (34/89)

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

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

一番簡単な方法です。 FORMに適当なTEXT BOXみたいなものを作って名前を 仮に「商品コード」とします。 そのソースをテーブルの「商品コード」に設定します。テーブル名が「商品」としたら検索ボタンを作成してクリック時のイベント・プロシージャに以下の様に記述します。  Me.RecordSource = "商品" DoCmd.GotoControl "商品コード" DoCmd.RunCommand acCmdFind

その他の回答 (2)

  • pikakoma
  • ベストアンサー率40% (195/477)
回答No.2

No.1です。補足をありがとうございます。 コンボボックスを使う方法だと、フォームの形状は一覧表形式でも、単票形式でも同様にできるので簡単なんですが、商品コードの種類が多い時はリストから探すよりも入力した方がわかりやすいかもしれません。(ちなみにコンボボックスには入力もできますが。) >お手数ですが、よければ教えていただけないでしょうか? これはコンボボックスを使わない方法をということでしょうか。フォームのヘッダー部分にテキストボックスを作成して商品コードを入力して、検索用のコマンドボタンをクリックしたら、該当の商品のデータが表示されるということでいいですか。 私はモジュールは嫌いなので(というかスキルがないので)出来る限りは、マクロで済ませてしまいます。モジュールを試してみたいということでしたら、他の方の回答をお待ち下さい。 コマンドボタンとマクロの組み合わせだと、以下のような感じになると思います。 1.元データ(テーブル/クエリ)から、フォームに表示したいフィールドを選択したクエリを作成しておきます。 2.1で作成したクエリを元に、単票形式のフォームを作成します。 3.2のフォームのヘッダー部分にテキストボックスと、コマンドボタンを配置します。 4.1のクエリを変更して、商品コードの抽出条件のところに、3で作成したフォームのテキストボックスを指定します。([Forms]![フォーム名]![テキストボックス名]) 5.再クエリするというマクロを作成します。 6.5のマクロを3で作成した、コマンドボタンに割り付けます。 以上です。 フォームを開くと、初めはテキストボックスがカラなので該当するデータがなく何も表示されませんが、商品コードを入力してコマンドボタンを押すと、クエリが再実行されて、フォームの内容が更新されるという仕組みになります。

  • pikakoma
  • ベストアンサー率40% (195/477)
回答No.1

Accessのバージョンがわかりませんが、2000以降として回答させていただきますね。 一番簡単なのは、コンボボックスの検索機能を使う方法です。 フォームをデザインビューで表示して、ツールボックスの[コンボボックス]ボタンをクリックして、ヘッダー部分にコンボボックスを作成します。 この時ツールボックスの[コントロールウィザード]ボタンが押し込まれた状態になっていることを確認してから、[コンボボックス]ボタンを使ってください。 コンボボックスを作成すると、ウィザードが起動してますので、初めの画面で選択肢の3つ目「コンボボックスで選択した値に対応するレコードをフォームで検索する」をオンにして、後はウィザードに従うだけです。 コマンドボタンを作成する方法ですと、検索用のクエリを作成してそれをコマンドボタンに割り付けるとか、マクロやモジュールを書くということになり、初心者の方だとちょっと敷居が高いかなと思います。 この方法なら簡単です。

flow
質問者

補足

回答ありがとうございます。 やはり、コンボボックスを使ったほうが楽ですよね(-_-;) いちを本を見ながらですが、フォームに一覧を表示させて状態で検索ボタンを押して検索をする事はできたのですが、一覧を表示させずにできたらと思いました。 お手数ですが、よければ教えていただけないでしょうか?

関連するQ&A

  • accessで・・・(検索)

    初心者です。 accessで商品情報のデータベースを作りました。 フォームで一商品一画面にして表示をしているのですが、 上部をあけて検索テキストBOXを作り、【検索】ボタンを右に設置し、 任意の商品コードまたは商品名を入力してボタン押下で下画面に表示させたいです。 クエリは、商品コード、商品名の2項目で作成してみましたがこれも間違っている気がします。 どなたか初心者でも作れるフォームを教えてください。

  • Access2002 のコマンドボタンでエラー

    Access2002でフォームを利用して表紙を作ろうとしているのですが、コマンドボタンを配置してフォームを開けるようにしたいと思っています。 クエリーも開けないので一度そのクエリーのフォームをつくりそれを開くためのコマンドボタンを用意しました。 ところがボタンを配置するごとの確認していくと途中でエラーが出てフォームを開けなくなります。 すると今まで開けたフォームも同様に開けなくなってしまいます。 Accessを使い始めたばかりの初心者ですが、どなたか教えて下さい。 また、Accessの仕組みは大体わかったのですが、顧客管理や商品管理など行ううえでステップアップしやすい参考書籍・webなどありましたら是非教えて下さい。 宜しくお願いします。

  • ACCESSあいまい検索から入力まで

    VBAいじり始めて数日の超初心者です。 お知恵をおかしください。 ACCESS2000です あいまい検索をしたデータを選択して入力までできるようにしたいと考えていますが、検索の時点でうまくいきません。 関係のある項目 テーブル1 「入力テーブル」     2 「M_商品」 ……「JANコード」             ……「商品名」 フォーム1 「入力フォーム」→コマンドボタンで商品検索のフォームが開く     2 「商品検索」     3 「検索結果」……「JANコード」             ……「商品名」 入力テーブルとM_商品にはリレーションシップがかけてあります。 「M_商品」の中の「商品名」にフィルタをかけ、入力フォーム内に入力したいです。 商品検索のフォームには 非連結のテキスト「txt商品名」と「一致選択」という名のオプショングループ(3つの選択があり、部分一致と前方一致と後方一致です)、検索用のコマンドボタン(cmd検索)があます。 これで検索を実行してみると、コンパイルエラー;SubまたはFunctionが定義されていません、とでて、VBA側のPrivate Sub cmd検索_Click() が黄色くなって、「TakeOut」がグレーになった状態なります。

  • access 検索フォームで検索が出来ない(コードについて)

    accessにて、薬の在庫管理DBを構築しています。 「薬剤名」で検索をし、フォーム上に表示させたいと思っていますが、 コード記述をしても検索出来ず、かれこれ2~3週間悩み続けております。 一人で四苦八苦しながら作って居るため、 原因が良く分からず、質問させて頂きます。 よろしくお願い致します。m(__)m 視覚的に説明します。              f_薬剤マスター ~フォームヘッダ~ 非連結のtxt 「薬剤検索」    「検索」ボタン     ※2つがあります ~詳細~ 「薬剤ID」 「薬剤区分ID」「薬剤区分名」 「薬剤名」 「包装内容」 「包装量」 「単位」「適用チェック」 とあります。 フォームヘッダの検索ボタンのイベントプロジーシャに Private Sub コマンド20_Click() Me.Filter = "[薬剤名] Like '*" & Me!薬剤検索 & "*'" Me.FilterOn = True End Sub と記述をしていますが、薬剤名を入れて、コマンドボタンを押しても検索がかけられません。 この「f_薬剤マスター」をメインフォームとして、 サブフォーム 「f_仕入れマスター」と 「f_価格マスター」と 言う順で2つ連結させていますがその関係もあるのでしょうかせいなのでしょうか? 尚、この3つのフォームのリレーションは t_薬剤マスター → t_仕入れマスター → t_価格マスター と、いづれも 1対多 でリレーションを組んでいます。 初心者の為何がおかしいのか良くわかりません。 どなたかご教授の程お願い致します。m(__)m

  • アクセスで条件によるコマンドボタンの使い分け。

    いつもお世話になります。 アクセス2003で納品管理を作成中ですが、商品のレコードに「不使用」のチェックボックスと「注文入力」のコマンドボタンがあります。この「不使用」のチェックボックスがOnの場合は「注文入力」のコマンドボタンをクリックできないようにしたいと考えています。 フォームの形式は帳票フォームになっていますのでそれぞれのレコードによってコマンドボタンがクリックできるものと、できないものにしたいのですが、可能でしょうか。(できたらそのレコードは色も暗くしたいのですが。。。) どなたかご教授よろしくお願いいたします。

  • Accessのフォームで、空欄のレコードを検索したい。

    Accessの自己流で使っているものです。 販売管理のデータベースを作ったのですが、 主なフィールドは、 仕入先、商品名、販売日などです。 そこでですが、 コマンドボタンで販売日が未入力のものを検索しようとしましたが、抽出ができません。 仕入先では検索ができました。 検索コマンドボタンと、仕入先抽出のテキストボックスを作り、 検索コマンドボタンのクリック時のマクロビルダで、 [仕入先]=[Forms]![販売フォーム]![仕入先抽出]   [仕入先]  テーブルのフィールド名   [販売フォーム] フォーム名   [仕入先抽出] 抽出したい仕入先を入力するテキストボックス そこで販売日についても抽出を掛けたく思い、 同様に、販売日検索未入力コマンドボタンを作り、 コマンドボタンのクリック時のマクロビルダで、 [販売日] like "is null" [販売日] like is null などやってみましたができませんでした。 少ない情報で申し訳ありませんが、補足情報は随時いれますので宜しくお願いいたします。

  • accessの使い方

    関連書籍を読みアクセスを勉強しているのですが、 いまいちよくわからないことがあります。 「商品情報」、「7月商品」というテーブルを作り、在庫管理をしたいと思っています。 「商品情報」には商品コード、仕入先1、単価1、仕入先2、単価2があり、 「7月商品」には商品コード、仕入先、単価、仕入数、在庫があります。 「7月商品」の入力用フォームを作り、商品コードはコンボボックスを使って「商品情報」の商品コードから選べるようになっています。 「7月商品」で商品コードを選んだ時に、「7月商品」の仕入先をその商品コードの仕入先1,仕入先2から選べるようにしたいのですがどうしたらいいでしょうか? また選んだ仕入先の単価が適用されるようにしたいと思います。 <例> 「商品情報」 001,商品1,A社,100,B社,110 002,商品2,C社,200,D社,210 「7月商品」の入力フォームで商品コードをコンボボックスの中から001を選ぶと、(ここまではできました) 仕入先にA社かB社が選べ、 A社を選ぶと単価に100が、B社を選ぶと単価に110が適用される。

  • 教えて!アクセス2007で、フォームに「検索」を作りたいのです。

    教えて!アクセス2007で、フォームに「検索」を作りたいのです。 フォームヘッダーにテキストボックスを作りそこで名前の検索を作るのにはどうしたら良いでしょうか? 顧客名簿から名前の検索です。 教えて下さい。

  • ACCESSでの検索

    あいまい検索をしたいです。 【現状】 フォームデザインでテキストボックスを作り、検索ボタンを作成 ↓ 【したいこと】 マクロデザインで、「テキストボックスに文字列を入力すると、文字列を含むデータを抽出」 というまくろを組みたい。 [コード]=[Forms]![total]![コード入力]という、完全一致のものはここで教えていただいて作成できたのですが、もうひとつ、あいまい検索もしたいです。 あいまい検索は、「商品名」です。 宜しくお願いします。

  • ADODCを使ったアクセスへの検索の仕方

     こんにちは。いつもお世話になっています。早速ですが、今、VBを勉強中なのですが、  ADODC(adoFind)を使って  datagrid(dgdFind)に  Microsoft Accessのデータを表示し、  テキストボックス(txtFind)と  コマンドボタン( cmdFind)を  それぞれ一つずつ用意し、そのテキストボックスに入力したものをアクセスデータの中から検索して出したいと思っています。(つまりは検索ボタンを作りたいのです。)  検索後のフォーカスは、アクセスのセル内で結構です。  また、何か違うコントロールや、オブジェクトを使っても一向に構わないと思っています。  ちなみにアクセスの表示の方法や、その他コントロールの作り方などはわかっています。ただ、上の検索ボタン(cmdFind)のコード(ここが一番重要なのに。)の書き方がわかりません。  どなたか書き方のわかる方いらっしゃいましたら、どうか教えてください。お願いします。

専門家に質問してみよう