• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access2000 コンボボックスで…)

Access2000 コンボボックスで作家ごとに作品を表示したい方法について

このQ&Aのポイント
  • Accessの初心者がコンボボックスで作家ごとに作品を表示する方法について質問します。
  • Access2000のフォームウィザードから作成した「許諾フォーム」で作家IDと作品IDをコンボボックスに表示したい。
  • 具体的には、作家IDを選択した時に、その作家の作品のみが作品IDコンボボックスに表示されるようにしたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.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 & "'" となります。 では。

nash7342
質問者

お礼

回答ありがとうございます。 お礼が遅くなって申し訳ありません。 教えていただいた方法を試しました。(作品IDフィールドのデータ型は調整数型です。)エラーメッセージを出すこと数回(汗)、なんとかエラーは出なくなったのですが…。どうしてもcbo[作品ID]が空欄になってしまいます(泣)。cbo[作家ID]を更新すると、cbo[作品ID]の値集合ソースが、 SELECT [作品ID] FROM [作品] WHERE[作家ID] = 7 のようになるので、参照はしていると思うのですが…。 もう少し頑張ってみます。 ありがとうございました。

nash7342
質問者

補足

みなさん、回答ありがとうございました。 うっかり締め切るのを忘れていました。申し訳ないです。 まだまだAccess勉強中です。がんばります。 (maruru01さん、補足をお借りしました。ごめんなさい。)

その他の回答 (1)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

[作品ID]コンボボックスのプロパティのフィルタで[許諾フォーム]![作家ID]を指定するば出来るんではないでしょうか。 最近Accessを使ってないのでそれで良かったと思うのですが?

nash7342
質問者

お礼

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