Microsoft Access ClubAccess超初心者対象ForumAccess初級者対象ForumAccess初・中級者対象ForumAccess VBA Tips ForumDAO、ADO、SQL Forum

     

No56127.サブフォーム内での2つのコンボボックスの連動について

タイトルサブフォーム内での2つのコンボボックスの連動について
記事No: 56127
投稿日: 2005/08/22(Mon) 20:46
投稿者: あやりん
OS:win98
Access Version:access2000

いつもお世話になっています。

SampleFile192のようなコンボボックスの連動をサブフォーム内でやりたいのです。

過去ログを読ませていただきいろいろやってみましたがエラーになります。

フォームとサブフォームはいずれも単票フォームです。

  コンボボックスAの値集合ソースに
  SELECT [Table].都道府県 FROM [Table] GROUP BY [Table].都道府県;
  
  コンボボックスBの値集合ソースに
SELECT [Table].商品名 FROM [Table] WHERE ((([Table].都道府県)="コンボボックスA"));

  コンボボックスAの更新後処理イベントに
  DoCmd.Requery "コンボボックスB"
  DoCmd.GoToControl "コンボボックスB"
とすると、
  ”オブジェクトまたはクラスがこのイベントセットをサポートしてません”とエラーが出ます。
  
  また、2000だとサブフォームで再クエリできないとのことで、下記を参照し
  http://support.microsoft.com/default.aspx?scid=kb;ja;414110
  コンボボックスAの更新後処理イベントに
  me!コンボボックスB.requery
としても
  ”オブジェクトまたはクラスがこのイベントセットをサポートしてません”とエラーが出ます。

 なにか良い方法がありましたらご教示ください。よろしくお願いしますm(__)m。

  

タイトルRe: サブフォーム内での2つのコンボボックスの連動について
記事No: 56130
投稿日: 2005/08/22(Mon) 21:00
投稿者: hatena
>   コンボボックスBの値集合ソースに
> SELECT [Table].商品名 FROM [Table] WHERE ((([Table].都道府県)="コンボボックスA"));

今回のエラーに関係有るかどうかは分かりませんが、ここは、

SELECT [Table].商品名 FROM [Table] WHERE ((([Table].都道府県)=[コンボボックスA]));

か、

SELECT [Table].商品名 FROM [Table] WHERE ((([Table].都道府県)=[Forms]![メインフォーム名]![サブフォーム名]![コンボボックスA]));

としないと正常に動かないと思います。

タイトルRe: サブフォーム内での2つのコンボボックスの連動について
記事No: 56131
投稿日: 2005/08/22(Mon) 21:01
投稿者: TWEST
> SELECT [Table].商品名 FROM [Table] WHERE ((([Table].都道府県)="コンボボックスA"));

ここは、
SELECT [Table].商品名 FROM [Table] WHERE ((([Table].都道府県)=コンボボックスA));
ではないですか?
""でくくると単なる文字列になってしまいますので、「コンボボックスA」という都道府県を抽出することに
なります。

>   コンボボックスAの更新後処理イベントに
>   DoCmd.Requery "コンボボックスB"
>   DoCmd.GoToControl "コンボボックスB"

A,B両方のコンボボックス共に同じフォーム上に有るのなら

Me!コンボボックスB.Requery

です。

タイトルRe^2: サブフォーム内での2つのコンボボックスの連動について
記事No: 56133
投稿日: 2005/08/22(Mon) 21:17
投稿者: あやりん
hatenaさん、TWESTさんありがとうございます。

 コンボボックスBの値集合ソースを
SELECT [Table].商品名 FROM [Table] WHERE ((([Table].都道府県)=[コンボボックスA]));

 に直してみました。

  コンボボックスAの更新後処理イベントに
Me!コンボボックスB.Requery

 としてみましたが、同じエラーでした。

 また、
 コンボボックスBの値集合ソースを
SELECT [Table].商品名 FROM [Table] WHERE ((([Table].都道府県)=[Forms]![メインフォーム名]!
 [サブフォーム名]![コンボボックスA]));
 としてもだめでした。

 なにか他におかしいところがあるでしょうか?
 
 

タイトルRe^3: サブフォーム内での2つのコンボボックスの連動について
記事No: 56134
投稿日: 2005/08/22(Mon) 21:21
投稿者: TWEST
普通にAccessのmdbですよね?  

タイトルRe^3: サブフォーム内での2つのコンボボックスの連動について
記事No: 56135
投稿日: 2005/08/22(Mon) 21:23
投稿者: みるく
(1)
>   コンボボックスAの更新後処理イベントに
> Me!コンボボックスB.Requery
>
Me.コンボボックスB.RowSource = Me.コンボボックスB.RowSource
に変えたらどうなりますか?

(2)
> SELECT [Table].商品名 FROM [Table] WHERE ((([Table].都道府県)=[Forms]![メインフォーム名]!
>  [サブフォーム名]![コンボボックスA]));
>
WHERE条件句の右辺が変です。

... = [Forms]![メインフォーム名]![サブフォームコントロール名].Form![コンボボックスA]

タイトルRe^4: サブフォーム内での2つのコンボボックスの連動について
記事No: 56137
投稿日: 2005/08/22(Mon) 21:48
投稿者: あやりん
TWESTさん、みるくさんへ

みるくさんの(1)の方法で何とかできました。助かりました。
ありがとうございます。

また、何かありましたらよろしくお願いします。

タイトルみるくさんに質問
記事No: 56141
投稿日: 2005/08/22(Mon) 22:34
投稿者: TWEST
> Me.コンボボックスB.RowSource = Me.コンボボックスB.RowSource
> に変えたらどうなりますか?

どういうことか分からないのです。(^^;
申し訳ありませんが、よろしかったら説明していただけませんか?

'ありやんさんは理解できているのですか?


このAccessフォーラム過去ログ集は、Microsoft Access Club が運営しています

cPanel と PLESKをインストールした専用・共有レンタルサーバーを銀行振込でご提供中。契約書は一切不要です。
cPanel や PLESKをインストールした専用・共有レンタルサーバー
まずは1ヶ月から...。
日本国内の銀行振込がOK、契約書は不要です。

 

ページの先頭へ 前ページへ戻る