• 締切済み

access2003コンボBOXの絞込み

部品マスターテーブル内に300件以上のデータがあります。 部品マスターテーブル 品ID  品区分  品コード  品名  ****  ****  ・    a  ・ b *製品仕様のサブフォーム内に部品構成を作るのですが 製品仕様フォーム  製品コード 999   製品名 ZZZ    構成 sub   999  品ID 品区分 品コード 品名  員数 ****   ・   ・ 現在品コードをコンボBOXのリストから入力していますが 300件以上表示され見つけ出すのが大変です。 品区分のカテゴリでANDの絞り込みができれば表示件数は1/10に減ります。レコード入力の際サブフォームからの入力時にできないものでしょうか? 

  • tcom
  • お礼率66% (6/9)

みんなの回答

  • skikichi
  • ベストアンサー率65% (45/69)
回答No.7

「部品ID/CD」の「コントロールソース」を空欄にすると全行が同じになりますので、もともとのデータ項目に戻してください。 部品名以降の列の内容は、区分とコードだけを取り上げて他の項目は省略してクエリビルダを作成しましたので、必要に応じて項目を追加しカスタマイズしてください。 新規にレコードの追加ができないのは、クエリーのリレーションの構成を見直してみてください。 もともと追加できていないと思います。

  • skikichi
  • ベストアンサー率65% (45/69)
回答No.6

まず既存のクエリーを流用されない方がいいと思います。 シンプルに作成しましょう。 「部品ID/CD」の「コントロールソース」を空欄にします。 値集合ソースの欄に記述されている既存のクエリー名を削除します。 空欄になったところで右の「・・・」ボタンを押下。 「T部品マスター」を追加。 (※必要に応じて他のテーブルとリレーションを取る) 「部品区分」と「社内品CD」だけをドロップダウン。 「部品区分」の抽出条件に「=[テキスト26]」と記述し「表示」のチェックをはずす。 以上でクエリビルダの右上のXをクリックしプロパティーの設定を保存する。 「区分」フィールドの更新後処理のイベントに下記記述。 Private Sub テキスト26_AfterUpdate() 部品ID.SetFocus 部品ID.Requery 部品ID.Dropdown End Sub 編集ロックをはずす。 以上です。

tcom
質問者

お礼

お世話様です。 アドバイスの通りやってみましたすると 区分設定後に、部品IDから該当品の社内品コードのリストが自動的にdropdownする様になりました。 しかし、ほかの部分で変な動作をしています。 *社内品コードを選ぶと全ての行のコードが同じ表示になってしまう。 *部品名以降の列の内容が正しく表示されない(前の内容の表示のまま) *サブフォームに新しい行の追加ができない 何処かでリレーションが変に影響しているのかな???

  • skikichi
  • ベストアンサー率65% (45/69)
回答No.5

コンボ2で品区分を選択した瞬間にコンボ1に該当の品区分に一致する品コード一覧のコンボボックスを表示させたいのであれば・・・ コンボ2の「更新後処理」のイベントに下記を記述してください。 Private Sub コンボ2_AfterUpdate() [コンボ1].SetFocus [コンボ1].Requery [コンボ1].Dropdown End Sub もちろん、フォームが違う場合にはフォーム名の指定から記述してくださいね。

tcom
質問者

お礼

お世話になってます。 そうなんです、こんな風にしたかったのです。 品区分をコンボに変え値ソースを品区分マスター にしました。 品区分のイベントから更新後処理に以下のコード記述。 Private Sub 品区分_AfterUpdate() 部品ID.SetFocus 部品ID.Requery 部品ID.Dropdown End Sub 品区分をクリック後に品コードが自動でDropdownリスト表示されましたが 品区分の設定条件が品コード(部品ID)のドロップダウンに反映されず、全件出てきました。 VBAとかコードを使ったことない物で良くわかりませんでした。 もしできましたら、この部分をhomePageにUP(画像掲示板)しましたので診てもれえれば幸いです。 http://tcom.dip.jp

  • skikichi
  • ベストアンサー率65% (45/69)
回答No.4

もしかして、左右にスクロールすれば品コードが現れないですか? ちなみにフィールドを思いっきり広げてみてください。 すべての列が表示されると思いますよ。 もし、品コードだけを表示させたいのであればクエリーで品コード以外の「表示」のチェックをはずしてください。 もしくは、列幅0;0;0;0;2にしてください。 Sample: コンボボックス名「コンボ1」の値集合ソースのクエリーで「品コード」「品区分」を指定し、品区分の抽出条件を「Like ("*" & [コンボ1] & "*")」とし「表示」のチェックをはずす。 「コンボ1」の「キークリック時」のイベントで下記VBAを記述 Private Sub コンボ1_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyRight Then DoCmd.RunCommand acCmdSaveRecord Me.[コンボ1].Requery Me.[コンボ1].Dropdown End If End Sub って感じです。 別のコンボボックス「コンボ2」で品区分を選択し、「コンボ1」で該当の品区分に属する品コードの一覧表示をさせるには、上記のSampleの・・・ 「コンボ1」の値集合ソースのクエリーの品区分の抽出条件を「=[コンボ2]」とすればよいです。

  • skikichi
  • ベストアンサー率65% (45/69)
回答No.3

コンボボックスの列数をたとえば2(品コード、品区分)にして、コンボボックスの一覧に2項目を表示されてますか? そうすれば、品区分で絞り込むことができます。

tcom
質問者

お礼

何度もアドバイス頂き、有難うございます。 コンボBOXに2行表示(品コード・品区分)を表示させ品区分で絞り込むことができました、 でも選択後に表示されるのが品区分の値でした 品コードを表示させたかったのですが?? subformのソース(クエリのフィールド順序)は 部品ID・品区分・分類・部品名・品コード・*** コンボboxのプロパティは 列数5 列幅0;1;0;0;2 連結列1です。 ドロップダウンリストの表示と選択後box内に表示をさせるフィールドの指定がわかりません  絞込みは、同一のコンボbox内でしかできないんですか

  • skikichi
  • ベストアンサー率65% (45/69)
回答No.2

つまり・・・ 品区分の中から、入力した文字列をキーにしてあいまい検索をしてその一覧をコンボボックスとして自動表示することは可能です。 1.コンボボックスの入力フィールドに検索文字列入力   (何文字でも、検索したい文字のどの位置でも可) 2.「→」キー押す(「→」でなくても何のキーでも可) 3.Requery、Dropdownで自動的に絞り込んだ一覧をコンボボックスに表示する。

  • skikichi
  • ベストアンサー率65% (45/69)
回答No.1

ANDの絞込みの具体例がないとやり方が変わってくるのですが。 こんなやり方でもいいですか? コンボボックスの入力フィールドに検索したい文字(たとえば、「ar」を入力し「→」キーを押すと「ar」の文字が含まれるリストをすべてコンボボックスとして表示する。 「sugar,garden,artist」とか。 つまり絞り込み検索ができるわけです。

tcom
質問者

お礼

PC?回線?の調子が変です、何回も送っていたらごめんなさい。 comboBOXに入力し同じようコードを抽出できました、ありがとうございます。 でも、品区分がその他の部品のカテゴリではコードに規則性はなく同手法が使えません 品区分でカテゴリを絞って、カテゴリ内から目的の品コートを見つけることができたら楽ですね。゛

関連するQ&A

  • ACCESS2000 コンボボックス絞込み

    こんにちは。以前に同じ質問をしたのですが、分からなかったので再度質問させて頂きます。 フォームでコンボボックスで入力しているのでが、 1つ目で選択したら2つ目のコンボボックスに1と関連するデーターしか表示しないようにしたいのですが・・。 テーブル 売上区分1  売上区分1ID  オートナンバー  売上区分1   テキスト型 テーブル 売上区分2  売上区分2ID  オートナンバー  売上区分1   数値  売上区分2   テクスト型 ファームの表示はそれぞれ、区分名が表示されるようになってます。 コンボ1で選んだのが、商品区分1IDが1ならコンボ2で表示されるのが、テーブル 売上区分2 の 売上区分1が1のものだけ表示できるようにしたいです。 説明が悪いかもしれませんが、お願いします。 初心者なもので、分かりやすく書いていただければありがたいです。お願いします。  

  • アクセス フィールド入力値での絞り込み

    アクセス初心者です。 現在、社員が取得した資格を管理するツールをアクセスで作成しようと考えています。 これまで、7つのテーブルを作成し、データ入力フォームを作成しました。 (1)資格取得日テーブル:いつ資格を取得したかを示す  【フィールド】取得ID(主キー)、取得社員、取得時部署、取得日 (2)取得資格テーブル:(1)において取得した資格を示す  【フィールド】取得ID、取得情報ID(主キー)、資格ID (3)資格マスタ  【フィールド】資格ID(主キー)、部署、資格分類、資格レベル、資格内容 (4)取得時の部署情報マスタ (5)社員情報マスタ (6)資格分類マスタ (7)資格レベルマスタ これまで、(1)をメインフォームとして、(2)をサブフォームとするフォームを作成し、 (2)の資格IDに対応する情報をサブフォーム上に表示させています。 資格IDを入力すると、残りの情報がコンボボックス(資格内容以外)とテキストボックス(資格内容)に表示されます。 これまでのところ、サブフォームから入力する際に、IDから入力しないと(3)の資格マスタに情報が追加されてしまいます。(ロックすれば良いのかもしれないですが) できれば、(3)で部署と資格分類と資格レベルを選ぶと対応する(3)の資格マスタのIDと資格内容が入力されるようにしたいと思っています。 何か解決策がありましたら教えていただければと思います。よろしくお願いします。

  • ACCESS2000のテーブル構造

    ACCESS2000のテーブルの作り方について質問します。 伝票フォームを作り「取引先コード」「商品区分コード」「商品コード」3項目を入力したら単価が表示されるようにしたいのですが、うまくいきません。 (同じ商品でも取引先により単価が違うので、3つの情報がそろったときにはこの単価になるという形にしたいのです) 現状は「商品区分テーブルの区分コード」と「商品マスターテーブルの区分コード」  「商品マスターテーブルの商品コード」と「単価テーブルの商品コード」をそれぞれ1対多リレーションし、 そして「単価テーブルの単価コード.商品コード取引先コード,単価」で選択クエリを作り、それを伝票のサブフォームにしてみたのですが、商品コードが入力できませんでした・・・ 何冊か本を参考にして作ってみたのですがうまく出来ませんでした お分かりになる方がいらっしゃいましたら教えてくださいよろしくお願いいたします。

  • ACCESS 2007で帳票フォームで絞り込み

    はじめまして、ACCESS初心者なのですが、困っています。 商品マスターというテーブル(商品ID、メーカー名、品名、型式)があって、見積フォームの サブフォームの見積詳細フォーム中で、メーカー名、品名、型式をコンボボックスで選択できるようにしており、以前見積もりしたことのある商品をメーカー名、品名、型式をコンボボックスでテーブルから 絞り込みをしながら参照してくるようにしたいのですが、テーブル内にあるレコードと同じものを 選ぶと新しくレコードが追加されてしまいます。同じ場合は追加したくないのですがどうしたら良いのでしょうか? レコードソースはクエリQ_見積詳細で、  見積詳細テーブル(見積No、注文No、数量、単価、商品ID)と商品マスター(商品ID、メーカー、  品名、型式)を商品IDでくっつけているものです。  コンボボックスは3つあって、  1つ目のメーカーCoのコンボボックスはコントロールソース メーカー  値集合ソースはクエリでQ_メーカー  Q_メーカーは商品マスターのテーブルで  フィールド・・メーカー テーブル・・商品マスター 集計・・グループ化 表示・・ON  フィールド・・品名 テーブル・・商品マスター 集計・・グループ化  表示・・OFF フィールド・・IIf([Forms]![見積データフォーム]![見積データフォーム詳細]![品名IDCo]         _Is Null,True,[商品マスター]![品名]=[Forms]![見積データフォーム]! _[見積データフォーム詳細]![品名IDCo]) テーブル・・なし 集計・・グループ化  2つ目の品名IDCoのコンボボックスはコントロールソース 品名  値集合ソースはクエリでQ_品名  Q_品名は商品マスターのテーブルで  フィールド・・品名 テーブル・・商品マスター 集計・・グループ化  表示・・ON  フィールド・・メーカー テーブル・・商品マスター 集計・・グループ化 表示・・OFF  フィールド・・IIf([Forms]![見積データフォーム]![見積データフォーム詳細]![メーカーCo]         _Is Null,True,[商品マスター]![メーカー]=[Forms]![見積データフォーム]! _[見積データフォーム詳細]![メーカーCo]) テーブル・・なし 集計・・グループ化  3つ目の型式Coのコンボボックスはコントロールソース 型式  値集合ソースはクエリでQ_型式  Q_型式は商品マスターのテーブルで  フィールド・・型式 テーブル・・商品マスター 集計・・グループ化  表示・・ON  フィールド・・品名 テーブル・・商品マスター 表示・・OFF          抽出条件 [Forms]![見積データフォーム]![見積データフォーム詳細]![品名IDCo]  フィールド・・メーカー テーブル・・商品マスター 表示・・OFF          抽出条件 [Forms]![見積データフォーム]![見積データフォーム詳細]![メーカーCo]   上記でやると、絞りこみはできるのですが、型式で同じものが2個表示されたり、レコードが新規  で追加されてしまいます。  よろしくお願いします。

  • Access2000での更新の仕方

    テーブル(歩率マスタ、ワークテーブル)があり、フォーム(テナントマスタ←これにbtn前のレコード、btn次のレコード、btn修正、btn新規、btn歩合入力…etcのコマンドボタンがある。歩率入力(歩合入力にサブフォームとしてsub歩率入力が張り付いている))サブフォームで規定金額、歩率を入力しそれをいったんワークテーブルに格納しておき、テナントマスタで修正ボタンをクリックされたら時点で部率マスタに登録できるようにしたいんです。またそれぞれのビル区分とテナントコードに一致するものを呼び出したいのです!当然、新規ボタンをクリックされたときはサブフォームの規定金額、歩率は空です! あと注文としてはこれをSQL文でできるみたいなのですが これを使って教えてくださると大変ありがたいです! よろしくお願いします!! ど素人なんてゆってることがわからないとこがあるかと思いますが、なんなりとご注文つけてください!! 歩率マスタ:ビル区分、テナントコード、規定金額、歩率 ワークテーブル:規定金額、歩率

  • ACCESS2000の帳票フォーム詳細欄でのコンボボックスについて

    まずは現状から説明します。 以下のテーブルがあります。 [細分類マスタ] 細分類ID(主キー) 細分類 [品目区分マスタ] 細分類ID(主キー/細分類マスタ参照) 品目区分ID(主キー) 品目区分 [品目マスタ] 細分類ID(主キー/細分類マスタ参照) 品目区分ID(主キー/品目区分マスタ参照) 品目ID(主キー) 品目 [台帳テーブル] 台帳明細ID(主キー) 細分類ID(細分類マスタ参照) 品目区分ID(品目区分マスタ参照) 品目ID(品目マスタ参照) 数量 やった作業: 1.台帳テーブルをレコードソースとした台帳フォーム(帳票フォーム)を作成 2.台帳フォームの詳細に 細分類、品目区分、品目のコンボボックスを作成  -------------------------------------台帳フォームの詳細欄イメージ  [細分類▽][品目区分▽][品目▽][数量]  -------------------------------------  コントロール名:cbo_saibunrui,cbo_hinmoku_kubun,cbo_hinmoku 3.それぞれの値集合ソースに  SELECT * FROM 品目区分マスタ WHERE 細分類ID=cbo_saibunrui;  SELECT * FROM 品目マスタ WHERE 細分類ID=cbo_saibunrui AND 品目区分ID=cbo_hinmoku_kubun; を設定(これにより絞込み) 4.コンボボックスがフォーカス取得時に自分自身をリクエリー 現象: 2レコード以降を追加しようとすると、それより以前のコンボボックスの内容が一斉に 変ってしまう。(リクエリーがかかるからあたりまえ?) なんとか、それぞれのレコードのコンボボックスが独立して働くようにしたいのですが。 無理なら、特にこの方法にこだわるのもではありません。 要は台帳フォーム(帳票フォーム)の詳細欄で効率よく品目を選択でき、 その画面上でそれまでに選択した品目が見えていればOKです。 現在納期に追われて非常に困っています。 表現がわからないところは突っ込んでください。すぐに補足します。 よろしくお願いします。

  • access コンボボックスの次

    顧客管理・商品管理の簡略化を目指している初心者です。商品マスター・仕入先・販売先というテーブルを作成、商品情報の入力・閲覧のためのフォームを作ろうと思っています。 1)商品マスターテーブルには、仕入先コードと販売先コードが入っています。フォーム上では仕入先名・販売先名も確認したいのですが、 「商品マスターテーブルにそれらを追加したクエリを作成 → クエリからフォームを作成」 という方法でよいでしょうか。 2)フォーム上で仕入先コードと仕入先名のコンボボックスを設置します。コードを選択すると自動的に次の欄に仕入先名が反映されるようにする方法を教えてください。 おそらく非常に初歩的な質問かと思いますが、マニュアルを見たり検索をかけたりしても要領を得ません。アドバイスをどうぞよろしくお願いいたします。

  • access2003コンボボックスの質問です

    Access2003+sql2005で コンボボックスのテーブルに顧客マスタ(顧客コード+顧客名)を値集合にセットしています。 最大レコード件数を10万にしているのですが、中身はちょうど1万件しか入ってきません。 コンボボックスは1万件が最大なのでしょうか? ご存知の方、教えて下さい。

  • Access フォームの作成 レコードの追加について

    原稿が以下のようになっている、フォームを作成したのですが 入力に手間が掛かるので良案がありましたらお願いいたします。 企業コードxxxx 店名_xxx店 住所_xxxx市xxx村 商品分類_売上構成_ウエア_シューズ_グッズ 野球ソフト_(野球ソフトの構成数値)_(野球ソフトのウエアの構成数値)_・・・ テニス_ バドミントン_ 卓球_ ゴルフ_ ・ ・ ・ 合計_ 分類ID(商品名)は15商品と決まっております 3品目もウエア、シューズ、グッズと決まっております。 原稿は商品名15品目がすべて印字済みです。 エクセルの表のような原稿だと考えていただければよいかと思います。 テーブルは正規化に則り以下のように作成しました。 売上構成テーブル 企業コード_売上構成_分類ID(商品名のID) 3品目(ウエア、シューズ、グッズ) 企業コード_3品目構成比_分類ID_項目ID(3品目のID) 店マスタテーブル 企業コード_店名_電話番号 等 現在は店マスタテーブルをメインフォームにサブフォームを 売上構成、3品目と作成しましたがこのままでは見にくいですし IDをわざわざ入力しなければなりません。(新規のデータの場合) メインフォーム(単票フォーム) サブフォーム(データシート) 一つの企業コードに対して最大15商品、それらに対して3品目は決まっているので ID入力を省くように追加ボタンの作成は出来ないのでしょうか? 企業コードを指定してクリックすると売上構成に1~15までの商品レコード追加。 企業コードを指定してクリックすると3品目項目IDを追加。 入力の並びに関しては以前ご質問したときにVBAで長いコードを 書かなければならないと解答をいただきました。 VBAは殆どさわった事ないので分かりません。(検索に使っている程度です。) 以上のことでもし何かありましたら回答お願いいたします。

  • ACCESS2007でテーブルへの書き込み

    何時も大変お世話になっております。 ご教授をお願い申し上げます。 環境 ・windows7 ・ACCESS2007 過去事例に似たケースが有ったのですが、上手く行かなかったので 書き込みさせて頂きました。 画像の様な画面があります。 入力日・品番・数量・備考・消化区分・支払日は手入力で それ以外の 品名・単価・購買先・勘定区分はDlookUpにて商品マスタと購買先マスタから 引っ張って来ております。 全ての項目は別のテーブルに蓄積させて行く考えでおります。 上手く行かない部分は手入力以外の部分が蓄積させたいテーブルに 書き込まれない事です。 コードで引っ張って来ているので、他でも同様にコードで引っ張ればよいのでは? というお話もあるかと思うのですが、どうしてもテーブルに書き込みたく苦慮しております。 変なやり方かとは思いますが、何とぞアドバイスをお願い申し上げます。