- ベストアンサー
アクセス2000でデータ抽出できない
アクセス2000でデータ抽出できない サブフォーム上でコンボリストを使用して入力し、その条件にあったものだけを別のコンボボックスに表示したい。 フォーム:[取引名][種別][資材名] ※全てコンボリスト 取引先を選択し、種別を選択し、その2つの条件を満たすものだけテーブルから抽出し、資材名のリストに表示したいのですが、どうしたらできるかわかりません。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
訂正です。 >Private Sub 取引名_AfterUpdate() >Me!資材名.Requery >End Sub >Private Sub 種別_AfterUpdate() >Me!資材名.Requery >End Sub となっていましたが、 Private Sub 取引名_AfterUpdate() Me!cmb資材名.Requery End Sub Private Sub 種別_AfterUpdate() Me!cmb資材名.Requery End Sub です。cmbが抜けていました。
その他の回答 (4)
- piroin654
- ベストアンサー率75% (692/917)
再提出です。 メインフォーム:フォーム1 サブフォームを埋め込むコントロール名:フォーム2 各コンボの名前を、 cmb取引名、cmb種別、cmb資材名 とします。 各コンボボックスのソースがわからないので暫定で テーブル1に各フィールドがあるものとします。 なお、テーブル1はサブフォームのレコードソース とは違うものとします。 cmb資材名の値集合ソースを、 SELECT テーブル1.資材名 FROM 資材テーブル WHERE (((テーブル1.取引名)=[Forms]![フォーム1]![フォーム2].[Form].[cmb取引名]) AND ((テーブル1.種別)=[Forms]![フォーム1]![フォーム2].[Form].[cmb種別])); とします。 ここで、フォーム2はサブフォームそのもではなく、 サブフォームを埋め込むコントロール名です。 メインフォームにサブフォームを設定するとき におくコントロールを指します。サブフォーム名 と同じにプロパティで設定していてもいいです。 サブフォームのcmb取引名、cmb種別の更新後処理に以下を設定します。 Private Sub 取引名_AfterUpdate() Me!資材名.Requery End Sub Private Sub 種別_AfterUpdate() Me!資材名.Requery End Sub 一つの案です。
- piroin654
- ベストアンサー率75% (692/917)
勘違いしていました。 >サブフォーム上でコンボリストを使用 メインフォームと思っていました。 #2はスルーしてください。
- piroin654
- ベストアンサー率75% (692/917)
各コンボの名前を、 cmb取引名、cmb種別、cmb資材名 とします。 資材テーブルに資材名のフィールドがあるとします。 cmb資材名の値集合ソースを、 SELECT 資材テーブル.資材名 FROM テーブル1 WHERE (((テーブル1.取引名)=[Forms]![フォーム1]![cmb取引名]) AND ((テーブル1.種別)=[Forms]![フォーム1]![cmb種別])); とします。 cmb取引名、cmb種別の更新後処理に以下を設定します。 Private Sub cmb取引名_AfterUpdate() Forms!フォーム1!cmb資材名 = "" Forms!フォーム1!cmb資材名.Requery End Sub Private Sub cmb種別_AfterUpdate() Forms!フォーム1!cmb資材名 = "" Forms!フォーム1!cmb資材名.Requery End Sub で、どうでしょうか?
- Hardking
- ベストアンサー率45% (73/160)
対応策の一つとして下記します。 [取引名][種別]コンボボックスのいずれか選択変更 が発生した際に、該当テーブルをWHERE句指定でSELECT文で検索する。 [取引名]_Change() { SELECT 資材名 FROM テーブル名 WHERE 取引名 = [取引名]コンボボックスの選択肢 AND 種別 = [種別]コンボボックスの選択肢 [資材名]コンボボックス.RowSource = 資材名 } [種別]_Change() { SELECT 資材名 FROM テーブル名 WHERE 取引名 = [取引名]コンボボックスの選択肢 AND 種別 = [種別]コンボボックスの選択肢 [資材名]コンボボックス.RowSource = 資材名 }
お礼
早い返答ありがとうございました まだ、アクセス初心者なので、参考にしてやってみます ありがとうございました