電子書籍の厳選無料作品が豊富!

こんにちは。Accessは…初心者です。
フォーム上のコンボボックスについての質問です。よろしくお願いします。
Windows2000/Access2000です。

次のようなテーブルがあるとします。
「作家」…作家ID,作家名
「作品」…作品ID,作家ID(「作家」テーブルから[作家名]を引っ張ってきます)作品名
「許諾」…許諾ID,作家ID(「作家」テーブルから[作家名]を引っ張ってきます),作品ID(「作品」テーブルから[作品名]を引っ張ってきます),許諾情報


「許諾」テーブルを元にして、フォームウィザードから単票形式で「許諾フォーム」を作成しました。

このとき[作家ID]と[作品ID]は自動的にコンボボックスになりますが、[作品ID]コンボボックスに、[作家ID]コンボボックスで選択した作家の作品のみを表示したいのです。
([作家ID]でAさんを選択したら[作品ID]にAさんの作品だけが表示されるようにしたい、ということです。)

似た内容の質問を参考にしたり、いろいろなAccessのサイトを検索したりして試したのですが、イマイチ???でした。
何かよい方法がありましたらご教示ください。
お願いします。

A 回答 (2件)

こんにちは。

maruru01です。

(コンボボックス名とテーブルのフィールド名が同じでややこしいので、コンボボックスには先頭に"cbo"とつけます。)
まず、cbo[作品ID]コンボボックスを非連結にします。
そしてcbo[作家ID]のクリック時イベントと変更時イベントに次のようにコードを書きます。

Me!cbo[作品ID].RowSource = "SELECT [作品ID] FROM [作品] " & _
              "WHERE [作家ID] = " & CLng(Me!cbo[作家ID].Value)

こんな感じでしょうか。ただし、これは[作品]テーブルの[作家ID]フィールドのデータ型が長整数型の場合です。文字列型(テキストとかメモ)の場合は、

Me!cbo[作品ID].RowSource = "SELECT [作品ID] FROM [作品] " & _
              "WHERE [作家ID] = '" & Me!cbo[作家ID].Value & "'"

となります。
では。

この回答への補足

みなさん、回答ありがとうございました。
うっかり締め切るのを忘れていました。申し訳ないです。

まだまだAccess勉強中です。がんばります。

(maruru01さん、補足をお借りしました。ごめんなさい。)

補足日時:2002/05/16 12:00
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
お礼が遅くなって申し訳ありません。

教えていただいた方法を試しました。(作品IDフィールドのデータ型は調整数型です。)エラーメッセージを出すこと数回(汗)、なんとかエラーは出なくなったのですが…。どうしてもcbo[作品ID]が空欄になってしまいます(泣)。cbo[作家ID]を更新すると、cbo[作品ID]の値集合ソースが、

SELECT [作品ID] FROM [作品] WHERE[作家ID] = 7

のようになるので、参照はしていると思うのですが…。

もう少し頑張ってみます。
ありがとうございました。

お礼日時:2002/05/02 15:30

[作品ID]コンボボックスのプロパティのフィルタで[許諾フォーム]![作家ID]を指定するば出来るんではないでしょうか。


最近Accessを使ってないのでそれで良かったと思うのですが?
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
お礼が遅れて、申し訳ありません。

う~ん、それだけだと何か足りないらしいんです。いろいろ試してはいるのですが…。エラーメッセージやヘルプにある用語の意味がよく分からないので、もどかしいです。
ありがとうございました。

お礼日時:2002/05/02 15:08

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

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