Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1381 / 2272 ツリー ←次へ | 前へ→

【7439】コンボボックスの絞込み 木蓮 06/3/3(金) 13:32 質問[未読]
【7440】Re:コンボボックスの絞込み 小僧 06/3/3(金) 14:24 回答[未読]
【7441】解決しました 木蓮 06/3/3(金) 15:10 お礼[未読]

【7439】コンボボックスの絞込み
質問  木蓮  - 06/3/3(金) 13:32 -

引用なし
パスワード
   はじめまして、よろしくお願いします。

テーブル1
|名前   |文書番号  |コメント |
|キリン  |1,2,3 |あいうえお|
|さる   |1,5,6 |かきくけこ|
|うさぎ  |4,5   |さしすせそ|
|かめ   |5     |たちつてと|

テーブル2
|名前   |文書番号 |コメント |
|りんご  |1,2  |あかさたな|
|バナナ  |3    |いきしちに|
|オレンジ |1,4,6|うくすつぬ|

コンボボックスの絞込みをしたいのですが
テーブル1の文書番号に含まれている番号が
テーブル2の文書番号のいづれか該当すれば
2つめのコンボボックスに表示したいのです

単純に
文書番号 like *" & Me!コンボボックス0.column(1) & "*"
とやってしまうと希望通りの動きになりません。

↓例↓
キリンを選んだ場合
    りんご
    バナナ
    オレンジ

さるを選んだ場合
    りんご
    オレンジ

うさぎを選んだ場合
    オレンジ

かめを選んだ場合
    該当なし

↑例おわり↑

このようにするにはどうすればよいでしょうか。

【7440】Re:コンボボックスの絞込み
回答  小僧  - 06/3/3(金) 14:24 -

引用なし
パスワード
   ▼木蓮 さん:
こんにちは。

>テーブル1
>|名前   |文書番号  |コメント |
>|キリン  |1,2,3 |あいうえお|
>|さる   |1,5,6 |かきくけこ|
>|うさぎ  |4,5   |さしすせそ|
>|かめ   |5     |たちつてと|

ご提示のデータは データベースとしては相応しくない値の持ち方だと思われます。
Web検索等で「データベース」「正規化」をキーワードに調べてみて下さい。

テーブル1
名前    文書番号
キリン    1
さる     1
キリン    2
キリン    3
うさぎ    4
さる     5
うさぎ    5
かめ     5
さる     6

テーブル2
名前    文書番号
りんご    1
りんご    2
バナナ    3
オレンジ   1
オレンジ   4
オレンジ   6

このようなデータであれば、
フォーム上にコンボボックス「cmb1」「Cmb2」を配置。

Cmb1
値集合ソース:SELECT 名前 FROM テーブル1 GROUP BY 名前;

Cmb2
値集合ソース:SELECT テーブル2.名前 FROM テーブル1
       INNER JOIN テーブル2 ON テーブル1.文書番号 = テーブル2.文書番号
       WHERE テーブル1.名前=[Forms]![フォーム名]![Cmb1]
       GROUP BY テーブル2.名前;


の様に設定し、Cmb1の更新後処理に

Private Sub cmb1_AfterUpdate()
  Me.Cmb2.Requery
End Sub

という様なコードを書くとコンボボックスが連動するかと思います。

【7441】解決しました
お礼  木蓮  - 06/3/3(金) 15:10 -

引用なし
パスワード
   小僧さん

早速のお返事ありがとうございます!
希望通りの動きになりました。

独学ではじめたばかりだったので大変助かりました。

1381 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078229
(SS)C-BOARD v3.8 is Free