アプリ版:「スタンプのみでお礼する」機能のリリースについて

コンボボックスが2つあり、cbo回線区分でAAを選択するとcbo名称にはAA条件クエリの名称フィールドの名称が表示され、名称を何か選択すると、AA条件クエリの中から一致するレコードが抽出され、またcbo回線区分でBBを選択するとcbo名称にはBB条件クエリの名称フィールドが表示されBB条件クエリの中の一致するレコードを抽出しにいくということは出来ますでしょうか?
わかりにくい説明ですいませんが、コンボボックスにより検索したいクエリを切り替えることは出来るかということなんですが。。。

コンボボックス名 cbo回線区分、cbo名称
クエリ名 AAクエリ、BBクエリ

色々試してはいるんですがうまく行かないので、ご教授願います(If Else・・・を使ったんですが間違いでしょうか?)

A 回答 (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月を合わせたクエリを作成しています。
テーブルだと簡単なんですけど、最終的にレポートで請求書を作成するのに、細かく分けての請求になるので。。。

補足日時:2002/09/30 15:19
    • good
    • 0

こんにちは。

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種類の回線区分からの各月別テーブルです。
時間がかかってしまいますが回答頂いた方法でやってみます。またご不明な点はご教授願います。

補足日時:2002/09/27 10:05
    • good
    • 0

こんにちは



おみうけしますに、要するに表示される結果をクエリ毎にしたい
のだと思います。ですからそれぞれのクエリに対するサブフォームを
作成し表示を切り替えれば実現できるのではないでしょうか。

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を繰り返さないといけないのでしょうか?何か簡潔な方法がありましたらご教授願います。初心者で本当にすいません

補足日時:2002/09/27 10:14
    • good
    • 0

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

関連するカテゴリからQ&Aを探す