• ベストアンサー

アクセスの抽出について。

アクセスである製品名を入力したら、その製品名のみ抽出するように選択クエリをもとにしたフォームを使用しています。これでも充分機能を果たしているのですが、他の人が使用するのに、入力ではなく、選択肢があれば作業がしやすいとのことで、トグルボタンやコンボボックスなどのように選択して抽出ボタンを押したら抽出されるようにしたいと考えています。どのようにしたらよいのか教えてください。よろしくお願いいたします。

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

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.2

横レス失礼致します。 > アクセスである製品名を入力したら、その製品名のみ抽出するように選択クエリを > もとにしたフォームを使用しています。 既にテキストボックスでその機能を作成されているのでしたら、そのテキストボックスを コンボボックスに変えてやるのが最も簡単かと思います。 (検索の仕組み部分が、現在のものをそのまま流用できるので) とりあえず、製品名がリストアップされているテーブルの名前を「製品マスタ」と仮定して 手順を説明すると、以下の通りです: 1)フォームをデザインビューで開く 2)検索する製品名を入力するのに使用しているテキストボックスを選択 3)メニューで「書式(O)→コントロールの種類の変更(H)→コンボボックス(C)」を選択 4)変更したコンボボックスをダブルクリックするなどして、プロパティシートを開く 5)プロパティシートの『書式』タブで、『列数』が「1」、『列幅』が空欄になっていることを確認  (『列幅』は後で好きなように設定しても可) 6)『データ』タブの『値集合ソース』に以下の通り入力(かぎ括弧内を使用):  「Select 製品マスタ.製品名 From 製品マスタ;」(製品マスタ通りの並び順)  「Select 製品マスタ.製品名 From 製品マスタ Order by 製品マスタ.製品名;」(製品名順) 7)同タブの『連結列』が「1」になっていることを確認  *「製品マスタ」にない製品名を受け付けないようにしたい場合は、同タブの『入力チェック』   を「はい」に設定 8)フォームを保存して閉じる ・・・以上です。 なお、製品名をリストアップしたテーブルまたは(それに並べ替えを行った)クエリがない (→各テーブルに製品名を直接入力している)場合は、『値集合ソース』を以下のように します(但し、それだとデータベースが正規化されていないということで、あまりよくない  状況ということになるのですが・・・とりあえず当面の対処法として): 「Select Distinct 出荷台帳.製品名 From 出荷台帳 Order by 出荷台帳.製品名;」

その他の回答 (1)

noname#140971
noname#140971
回答No.1

質問内容が、幾通りにも解釈できます。 1、特定の製品名に対応するレコードを表示する。 ・<抽出する製品名:[_____________]>という製品名を入力するテキストボックスをフォームの下部等に配置。 ・<抽出する製品名:[CSM_______]>とユーザが入力する。 ・CSM001、CSM002、CSM003という製品名を持つレコードを表示する。 2、製品名の一部がマッチする製品名を表示し選択する。 ・<抽出する製品名:[_____________]>という製品名を入力するテキストボックスをフォームの下部等に配置。 ・<抽出する製品名:[CSM_______]>とユーザが入力する。 ・CSM001、CSM002、CSM003という製品名をコンボボックスのアイテムにセットする。 ・ユーザがコンボボックスから選んだ一つのレコードのみを表示する。 3、製品名が30程度に過ぎないのでコンボボックスに全製品をフォームロード時にセットする。 ================================================================================== >アクセスである製品名を入力したら、その製品名のみ抽出するように選択クエリをもとにしたフォームを使用しています。 参照のみが目的のフォームであれば、最初は空白フォームを表示。 次に、上述の1,2,3の何れかで抽出表示。 多分、今は、<・・・・ 製品名=[抽出する製品名を入力して下さい]・・・>としているのでしょう。 これを、フォーム参照方式にということでしょうが、やっぱし、ちと方向性が曖昧です。

ayanohina
質問者

補足

説明不足で大変申し訳ありません。上記の3番です。ある商品名(例えばチョコレート)を入力したら、過去のチョコレートに関する詳細のレコードが表として表示されます。またそのレコードをクリックしたら、その1つのレコードの詳細入力画面が表示されます。このように作ってあるのですが、初めから開くときに、[抽出する製品名を選択して下さい]でチョコレート、クッキー、アイス・・・などが表示された中でトグルボタンかコンボボックスで1つを選択して、フォームを開きたいのです。 ただ誰でもワンタッチですぐにできるように、(入力が苦手な人もいますので)、選択方式でしたいと思っています。

関連するQ&A

  • ACCESSのクエリの抽出

    ACCESS2003を使っています。フォームのコンボボックスに入っているデータを見てクエリで抽出したいと思っています。 フォームのコンボボックスにデータが入っているときは、そのデータで抽出を行い、nullのときは抽出をやめてすべてのデータを表示させたいです。 抽出項目には、null値はありません。 クエリの抽出欄に下記の式を入れましたがうまくいきません。 IIf(IsNull([Forms]![フォーム名]![コンボボックス名])=true , Is Not Null , [Forms]![フォーム名]![コンボボックス名]) コンボボックスにデータが入っている場合は、抽出はうまくいくのですが、nullのときは、何も表示されません。 どこか式が違っているのでしょうか? よろしくお願いします。

  • Access フォームコンボボックス空白をクエリで抽出したい

    現在access2000を使って、 フォーム1内にコンボボックスを作って コンボボックス内に1,2,3 と項目を入れています。 一方、クエリを使って、上記フォーム内のコンボボックスをつなげて1,2,3をそれぞれ抽出することはできるのですが、 1から3まで全てをiif関数などで 抽出したいと考えてします。 僕が考えた関数は iif(isnull([フォーム1][コンボ1]),is not null ,[フォーム1][コンボ1]) とクエリ抽出条件内に入力すると、結果は、 1、2、3をそれぞれフォームコンボボックスで選択すれば、クエリに反映されるのですが、コンボボックス内を「空白」の状態にすると、1,2,3すべてがクエリで抽出されるのではなく、何も抽出されないという結果になってしまいます。 どうすれば、クエリで1から3すべてを抽出することができるのでしょうか?多分、iif関数内の「空白」は空白として処理されないような気がします。 よろしくお願いします。

  • アクセス2000でデータ抽出できない

    アクセス2000でデータ抽出できない サブフォーム上でコンボリストを使用して入力し、その条件にあったものだけを別のコンボボックスに表示したい。 フォーム:[取引名][種別][資材名] ※全てコンボリスト 取引先を選択し、種別を選択し、その2つの条件を満たすものだけテーブルから抽出し、資材名のリストに表示したいのですが、どうしたらできるかわかりません。

  • access クエリコンボボックスについて

    フォームのメニュー画面でレポート印刷ボタンを作りました。 印刷ボタンを押すと[抽出する都道府県は?] とパラメーター入力が表示されるようにしてあるのですが、 それを入力式ではなく、コンボボックスにして選択式にしたいのですが、 どのようにすれば良いのでしょうか? コンボボックスにマクロをつけて クエリの抽出条件のところに[forms]![フォーム名]![コンボ名] を入力しても、実行したときになにも抽出されません。 なにがどのように違っているのでしょうか? 説明が分かりにくくて申し訳ないのですが、 わかる方いらっしゃいましたらぜひ教えていただきたいです。 よろしくお願いいたします。

  • アクセスでクエリーによる抽出方法

    アクセスの超初心者です。 クエリーのデータをフォームのコンボボックス等のデータを選ぶことにより抽出したいのです。クエリーの抽出条件にフォームのコンボボックスを割り当てて抽出することはできるのですが、例えばクエリーデータは下記のようになっています。  A  B  石川  100 東京  200   沖縄  150 フォームのコンボボックスで石川を選べば  "石川" "100"と表示できますが、コンボボックスに”すべて”という項目をつけてその”すべて”をクリックするとクエリーが全表示になるようにしたいのです。(そのクエリーにはすべてという項目はない) 長くなりましたがおわかりいただけたでしょうか。よろしくお願いします。 また、クエリーを使わず別の抽出方法がありましたら教えてください。というのもいろいろな抽出条件をするのにそのつどクエリーを作らなければならないからです。よろしくお願いします。

  • Accessのフォームで日付の範囲での抽出

    初心者です、Access2000/WinXPで使用しています、Accessのフォームで日付の範囲での抽出仕方が解らなくて困っています、日付をそれぞれコンボボックスで指定しています、コンボボックスAとコンボボックスBの日付間での抽出なのですが、それを一つのコマンドボタンで抽出したいのです、 簡単に説明します。 メニュー抽出:フォームの コンボボックスA:集合ソースメニュー/総合抽出クエリ コンボボックスB:集合ソースメニュー/総合抽出クエリ txt2(コンボボックス):集合ソースメニュー/総合抽出クエリ コマンド4(これは検索と言う名前でtxt2で指定した名前を抽出するのに使っています) Private Sub コマンド4_Click() 'レコードを抽出 Me.Requery End Sub と、してあります このコマンド4でコンボA~コンボBの期間のtxt2の品目を総合抽出クエリから抽出するにはどうすればよろしいでしょうか?宜しくお願いいたします。

  • Access2003でコンボボックスからデータを抽出したい

    自己啓発でAccess2003を勉強しています。 Access2003でコンボボックスで名前を選択して、データ(住所)を抽出したものをリストボックスに表示させたいのですがどこがまちがっているかわかりません。こんなことで3週間ぐらい悩んでいます。 回答またはアドバイスをお願いします。 もしくはもっと簡単なやりかたがあればお願いします。 (1)「氏名」、「住所」のテーブルを作成。テーブル名は「01データ」 (2)「氏名」、「住所」のクエリを作成。クエリ名は「クエリ1」 (3)フォームでコンボボックスとリストを作成。フォーム名は「印刷」 ⇒コンボボックスの名前は「検索」。 ⇒値集合ソースはSELECT [01データ].ID, [01データ].氏名 FROM 01データ; これで「氏名」が選択できた。 (4)クエリの「氏名」抽出条件にLike [forms]![印刷]![検索] (5)検索するマクロを作成。マクロ名「M検索」 アクションは 全レコードの表示 フィルタの実行 ⇒Where条件は[Forms]![印刷]![検索]=[クエリ1]![氏名] (6)マクロ「M検索」をコンボボックスのプロパティ「イベント」タブから変更時に設定する。 (7)フォーム「印刷」を開き、コンボボックスで氏名を選択すると『クエリ1!氏名』と表示されてしまいます。 (8)フォーム「印刷」のリストボックスは全レコードが表示されている。

  • クエリの抽出条件

    クエリの抽出条件を手入力では無く、コンボボックス方式で プルダウンでリストを選びたいと思い下記の抽出条件を入力 [Forms]![フォーム名]![コンボ名] しかし、パラメータ入力時の名前が、Forms!フォーム名!コンボ名と変わるのみで プルダウンになりません クエリを過去のデータ検索のみで使用したいと思ってます。 ネットをくぐると、メインフォームを開いてとありますが、それでも駄目です。 また、クエリー検索だけで、メインフォームを開かないでプルダウン方式には 出来ないものでしょうか よろしくお願い致します

  • Accessのクエリ

    初めまして。Accessのクエリについての質問です。 Access2003を使っています。 検索フォームを作り、その検索フォームにテキストボックスを2つ作り、そのテキストボックスに検索したい言葉を入力し、コマンドボタンで作った検索ボタンを押すとマクロでフィルタの実行がされデータを抽出できるというものを作りました。フィルタには選択クエリを使用しています。抽出したい2つのフィールドの抽出条件にあいまい条件のLike "*" & [Forms]![フォーム名]![テキストボックス名] & "*"を入れています。 今はテキストボックスが2つですが、もっと増やしていろんな条件で検索出来るようにしたいので、3つ目のテキストボックスを作り、抽出条件も同じように入れました。ですが、そうすると今までちゃんとできていた最初の2つのテキストボックスによる抽出が違った結果となりでてきました。このとき、新しく作った3つ目のテキストボックスは空欄なので最初と同じ結果が出ると思ったのですが、これは抽出条件が3つはできないということでしょうか?どなたか教えてください。

  • アクセスである文字を含む検索

    ACCESS2000を使っています。 あるデータテーブル「発注書テーブル」があって、ここでは「(1)ID」「(2)顧客名(法人)」「(3)発注商品」「(4)納品済チェック」の4つフィールドがあるとします。 作業はフォームで行います。フォーム名は「発注書フォーム」。 「(2)顧客名」から検索をかけたくて、検索コマンドボタンをつくり、「検索フォーム」を発注書フォームとまったく同じ形態でつくり、そこにとべるようにしました。 「検索フォーム」には「検索」というテキストボックスを作ります。 「検索クエリ」というクエリを作り、発注書テーブルを素とし、すべてをデザインビューで表示するようにしました。 そして、「(2)顧客名」の抽出条件に[Forms]![検索フォーム]![検索]を入力します。 すると、「検索フォーム」の「検索」をコンボボックスにして、顧客名をすべて表示させ選択した場合は、「検索フォーム」では、選択した顧客の情報が表示されるようになりました。 が、しかし、「検索」をコンボボックスではなく、テキストボックスで、しかも顧客名の一部だけを入力したら、その文字を含むすべてのレコードを表示してほしいのです。 そこで、「検索クエリ」の「(2)顧客名」抽出条件にlike"*[Forms]![検索フォーム]![検索]*"と入力してみました。 そして「検索フォーム」の「検索」テキストボックス(非連結)に顧客名の一部を入力したところ、ぜんぜん絞りこみ抽出してくれません。 もちろん、クエリ上でも絞り込んでいない模様です。 どうしたら文字の一部からその文字を含む顧客名のレコードを全て抽出し、表示させることができるでしょうか? 細かくてすみませんが、かなり困ってます。 どうかわかる方、教えてください。 まったくちがう方法(別の手法)でもかまいません。 この説明でわからない部分がありましたら補足しますのできいてください。 よろしくお願いします。

専門家に質問してみよう