ついに夏本番!さぁ、家族でキャンプに行くぞ! >>

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

このQ&Aに関連する最新のQ&A

A 回答 (7件)

「部品ID/CD」の「コントロールソース」を空欄にすると全行が同じになりますので、もともとのデータ項目に戻してください。



部品名以降の列の内容は、区分とコードだけを取り上げて他の項目は省略してクエリビルダを作成しましたので、必要に応じて項目を追加しカスタマイズしてください。

新規にレコードの追加ができないのは、クエリーのリレーションの構成を見直してみてください。
もともと追加できていないと思います。
    • good
    • 0

まず既存のクエリーを流用されない方がいいと思います。


シンプルに作成しましょう。

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

「区分」フィールドの更新後処理のイベントに下記記述。
Private Sub テキスト26_AfterUpdate()
部品ID.SetFocus
部品ID.Requery
部品ID.Dropdown
End Sub

編集ロックをはずす。

以上です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/04/07 13:00

コンボ2で品区分を選択した瞬間にコンボ1に該当の品区分に一致する品コード一覧のコンボボックスを表示させたいのであれば・・・



コンボ2の「更新後処理」のイベントに下記を記述してください。

Private Sub コンボ2_AfterUpdate()
[コンボ1].SetFocus
[コンボ1].Requery
[コンボ1].Dropdown
End Sub

もちろん、フォームが違う場合にはフォーム名の指定から記述してくださいね。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/04/05 20:12

もしかして、左右にスクロールすれば品コードが現れないですか?


ちなみにフィールドを思いっきり広げてみてください。
すべての列が表示されると思いますよ。

もし、品コードだけを表示させたいのであればクエリーで品コード以外の「表示」のチェックをはずしてください。
もしくは、列幅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]」とすればよいです。
    • good
    • 0

コンボボックスの列数をたとえば2(品コード、品区分)にして、コンボボックスの一覧に2項目を表示されてますか?



そうすれば、品区分で絞り込むことができます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/04/05 13:06

つまり・・・


品区分の中から、入力した文字列をキーにしてあいまい検索をしてその一覧をコンボボックスとして自動表示することは可能です。

1.コンボボックスの入力フィールドに検索文字列入力
  (何文字でも、検索したい文字のどの位置でも可)
2.「→」キー押す(「→」でなくても何のキーでも可)
3.Requery、Dropdownで自動的に絞り込んだ一覧をコンボボックスに表示する。
    • good
    • 0

ANDの絞込みの具体例がないとやり方が変わってくるのですが。



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

つまり絞り込み検索ができるわけです。
    • good
    • 0
この回答へのお礼

PC?回線?の調子が変です、何回も送っていたらごめんなさい。
comboBOXに入力し同じようコードを抽出できました、ありがとうございます。

でも、品区分がその他の部品のカテゴリではコードに規則性はなく同手法が使えません

品区分でカテゴリを絞って、カテゴリ内から目的の品コートを見つけることができたら楽ですね。゛

お礼日時:2005/04/04 15:05

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング