
コンボボックスが2つあり、cbo回線区分でAAを選択するとcbo名称にはAA条件クエリの名称フィールドの名称が表示され、名称を何か選択すると、AA条件クエリの中から一致するレコードが抽出され、またcbo回線区分でBBを選択するとcbo名称にはBB条件クエリの名称フィールドが表示されBB条件クエリの中の一致するレコードを抽出しにいくということは出来ますでしょうか?
わかりにくい説明ですいませんが、コンボボックスにより検索したいクエリを切り替えることは出来るかということなんですが。。。
コンボボックス名 cbo回線区分、cbo名称
クエリ名 AAクエリ、BBクエリ
色々試してはいるんですがうまく行かないので、ご教授願います(If Else・・・を使ったんですが間違いでしょうか?)
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
再びmaruru01です。
>全部で6種類の回線区分からの各月別テーブル
テーブルのデザイン(フィールドの数と種類)は回線区分ごとに違うのでしょうか?
また、各月別にテーブルを作っているのでしょうか。それらもやはり、テーブルのデザインは同じじゃないですか?
もし、テーブルデザインが同じなら、1つのテーブルに統合した方がずっと簡単で管理し易いと思います。
そうすれば、cbo名称のリストについても、値集合ソースに、
"SELECT 名称 FROM テーブル名 WHERE 回線区分 = '" & Me!cbo回線区分.Value & "'"
にすればいいですし、
新しいフォームを開いて抽出したデータを表示させるなら、そのフォームのレコードソースに、そのテーブルを設定しておき、
DoCmd.OpenForm "フォーム名", , , "回線区分 = '" & Me!cbo回線区分.Value & "' AND 名称 = '" & Me!cbo名称.Value & "'"
とすればいいだけですから。(No.2にも書きましたが。)
データテーブルは出来るだけ分割しない方がいいと思いますよ。
この回答への補足
大変申し訳ありません。テーブルのデザイン(フィールド数)は各回線区分によって違うのです。また相手先からいただくデータも回線別、更に月別となっているため私のほうではクエリでA回線の3月4月を合わせたクエリを作成しています。
テーブルだと簡単なんですけど、最終的にレポートで請求書を作成するのに、細かく分けての請求になるので。。。
No.2
- 回答日時:
こんにちは。
maruru01です。まず、2つのコンボボックスで段階抽出するのは、
cbo回線区分のChangeイベントに、
If Me!cbo回線区分.Value = "AA" Then
Me!cbo名称.RowSource = "AAクエリ"
ElseIf Me!cbo回線区分.Value = "AA" Then
Me!cbo名称.RowSource = "BBクエリ"
End If
で出来ます。
ところで、2つのクエリはぜんぜん違う内容ですか?
もしかして、同じテーブルから回線区分によって条件抽出してるだけじゃないですか?
それなら、もっと簡単に、cbo名称の値集合ソースに、
"SELECT 名称 FROM テーブル名 WHERE 回線区分 = '" & Me!cbo回線区分.Value & "'"
とするだけでいいですが。
あと、レコードの抽出先はどこですか。
現在のフォームに表示されているデータを絞り込む(フィルタリング)のなら、
Me.RecordSource = "AAクエリ"
Me.Filter = "名称 = '" & Me!cbo名称.Value & "'"
Me.FilterOn = True
とすればいいし、新しくフォームを開くなら、そのフォームのLoadイベントに、
Me.RecordSource = "AAクエリ"
Me.Filter = "名称 = '" & Me!cbo名称.Value & "'"
Me.FilterOn = True
とすればいいです。
(もちろん、クエリ名はcbo回線区分によって変えられるようにします。)
ただし、1つのテーブルから、回線区分と名称で抽出しているだけなら、そのフォームのレコードソースにそのテーブルを設定しておき、
DoCmd.OpenForm "フォーム名", , , "回線区分 = '" & Me!cbo回線区分.Value & "' AND 名称 = '" & Me!cbo名称.Value & "'"
でフォームを開けばいいですが。
この回答への補足
回答ありがとうございます。
テーブルは月別の回線区分になっています。
3月A回線区分、4月A回線区分
3月B回線区分、4月B回線区分・・・・と全部で6種類の回線区分からの各月別テーブルです。
時間がかかってしまいますが回答頂いた方法でやってみます。またご不明な点はご教授願います。
No.1
- 回答日時:
こんにちは
おみうけしますに、要するに表示される結果をクエリ毎にしたい
のだと思います。ですからそれぞれのクエリに対するサブフォームを
作成し表示を切り替えれば実現できるのではないでしょうか。
AAクエリ、BBクエリそれぞれをコントロールソースとする
フォームを作成。
コンボボックスがあるフォームにサブフォームとして貼り付けます
可視プロパティを"いいえ"にしておきます
cbo回線区分で選択された時の[イベント プロシージャ]で
with AAフォーム
If .Visible = True Then
.Visible = False
Else
.Visible = True
End If
end with
with BBフォーム
If .Visible = True Then
.Visible = False
Else
.Visible = True
End If
end with
で表示を切り替えます
これでどうでしょうか?
この回答への補足
回答ありがとうございます。
私が回線区分は6つあるですが、やなり6回IF Elseを繰り返さないといけないのでしょうか?何か簡潔な方法がありましたらご教授願います。初心者で本当にすいません
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESSでVBAから選択クエリの抽...
-
AccessでIDを入力したら他の項...
-
Accessでフィルタの実行アクシ...
-
ACCESS フォームで抽出したデー...
-
ACCESS2007 マクロ クエリのパ...
-
ACCESSで、EXCELのような、sumi...
-
ACCESSのレポートにフォームの...
-
エクセルで、抽出したデータだ...
-
ExcelのComboboxでマウスのスク...
-
Access サブフォームでの選択行...
-
Accessでデータを更新したらそ...
-
(ACCESS)条件に応じて、テキ...
-
前のレコードの値を自動で入れたい
-
Accessでレコードの複製
-
Access チェックボックスを利用...
-
ACCESS 複数のフォームから同一...
-
インデックスまたは主キーにはn...
-
入力した値をコンボボックスに...
-
【AccessVBA】レコードセットOp...
-
ACCESSのクエリー抽出条件にIIF...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSでVBAから選択クエリの抽...
-
クエリ実行結果0件の場合のフ...
-
AccessでIDを入力したら他の項...
-
ACCESS フォームで抽出したデー...
-
ACCESSで、フォームで抽出した...
-
クエリーの結果をフォームに表...
-
アクセスのフォームに連番を表...
-
ACCESS2003のグループ化のエラ...
-
ACCESSで、EXCELのような、sumi...
-
Access2016埋め込みマクロでの...
-
Accessでフィルタの実行アクシ...
-
サブフォームを利用したクエリ...
-
ADOレコードセットのコピー
-
VarChar型をINT型に変換するには
-
Access 抽出したフォームをフ...
-
Accessクエリの抽出条件にフォ...
-
ACCESSのレポートにフォームの...
-
Accessで月ごとのレポートを出...
-
access クエリでIIF文で抽出条...
-
ACCESS2007 マクロ クエリのパ...
おすすめ情報