• ベストアンサー

ACCESS VBA

ACCESS2000を使用しています。 行いたい処理があるのですが方法がわかりません。 方法を知ってる方がいればアドバイスの程よろしくお願い致します。(VBAでも全然OKです) リストボックスのリレーション 例えば左側のリストボックスで4種類の選択肢のいずれかを選び、それに応じたテーブル内容を右側のリストボックスに表示する方法 (右側に表示させたいテーブル4種類は既に作成しています) ↓行いたい処理  季節の商品一覧から「夏の商品一覧」を選んだ場合 左リストボックス  右リストボックス ------------ -------- |春の商品一覧 | |Tシャツ| |夏の商品一覧 | |短パン | |秋の商品一覧 | |~~~ | |冬の商品一覧 | |~~~ | ------------

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 [春の商品一覧][夏の商品一覧][秋の商品一覧][冬の商品一覧]というテーブル名で、 左が[lst一覧選択]、右が[lst一覧リスト]という名前のリストボックスとします。 [lst一覧選択]のクリックイベントに書きます。 Private Sub lst一覧選択_Click()   Dim SelectData As String   With Me!lst一覧選択     SelectData = .Column(0, .ListIndex)   End With   With Me!lst一覧リスト     Select Case SelectData       Case "春の商品一覧"         .RowSource = "春の商品一覧"       Case "夏の商品一覧"         .RowSource = "夏の商品一覧"       Case "秋の商品一覧"         .RowSource = "秋の商品一覧"       Case "冬の商品一覧"         .RowSource = "冬の商品一覧"       Case Else         .RowSource = ""     End Select   End With End Sub 予め、右の[lst一覧リスト]リストボックスの値集合タイプは、「テーブル/クエリ」にしておいて下さい。 では。

amateur3
質問者

お礼

テストしてみた所、理想通りに動きました。 本当にありがとうございました。

その他の回答 (1)

noname#89342
noname#89342
回答No.1

左リストボックスの更新後処理に下記の処理を書けば良いと思います。 1.左リストボックスで選択された値で、右リストボックスの.RowSource   プロパティを書きかえる。左リストボックスの連結列以外の値を取り   出したい場合は、左リストボックス.Column(n)で取り出せます。 2.右リストボックス.Requeryを実行 未検証ですが、やってみて下さい。

amateur3
質問者

お礼

早速のご回答ありがとうございました。

関連するQ&A

  • アクセス初心者です。(クエリについて)

    クエリでテーブルとテーブルをくっつけたいと思います。 T_MAIN→商品コード、商品一連番号、管理部門、統括責任者、マネージャー、担当者、保管場所、保管方法とあります。管理部門、保管場所、保管方法については小テーブルを作りました。それを元にT_MAINにてコンボボックスで項目一覧から選べるように作りました。統括マネージャ、マネージャー、担当者についてはT_名簿からこれも同様にコンボボックスで選べるように作りました。一つのフォーム内に非連結のテキストボックス(入力画面)と参照画面みたいな感じで、T_MAINに入っている情報一覧を並べて表示したいのです。T_MAINはコードで管理している部分が多いのでリストに表示する内容はクエリから引っ張ってくるようにしました。コンボボックスで表示がされるように、リストボックスの中に列幅2cm;3.808cm;3.808cm;2.508cm;4cm;2.503cm;等と指定して、値集合タイプにテーブル/クエリ、値集合ソースにクエリ名として表示するようにしました。管理部門、保管場所、保管方法はT_MAINと各小テーブルでリレーションを結びました。統括責任者、マネージャー、担当者については、一つのテーブルT_名簿とリレーションと結ぶと、クエリの内に入っているデータが消えてしまいます。リレーションをはずすと、3件しか入れていないものが、123、123、123と件数が増えていきます。解決策はないのでしょうか??宜しくお願いします。

  • アクセスについて

    アクセス初心者です。 アクセスで毎月入ってくる商品に商品番号を付与しようと思っています。 商品リストテーブルには   フィールド1→商品名   フィールド2→商品番号 商品一覧テーブル    フィールド1→商品名(毎月100件程入る) この2つのテーブルから 商品番号付与クエリーを作成しました。 (フィールド1同士を繋ぎ、フィールド2の商品番号を引っ張ってくる) 但し、商品一覧テーブルに入ってくる商品の中で、まだ商品リストテーブルに登録されていない商品があります。その時、クエリーでは、その商品は表示されません。 どうにか登録されていない商品があった場合に、エラーと表示できるか、又は登録されていない商品を抽出するようなクエリーの作り方を教えて下さい。 よろしくお願いします。 分かりづらくてスミマセン・・・

  • ACCESS リストの使い方

    お願いします! ACCESS2003で作成した「F商品マスタ」というフォームで、 「朝食名」という名前のリストボックスがあります。 そのリスト一覧は、「T朝食マスタ」という名前のテーブルから取得しています。 「T朝食マスタ」には、「朝食コード」「朝食名」のフィールドがあります。 「F商品マスタ」内にある「朝食名」のリストボックスで朝食コードを選択したら、 横にあるテキストボックスに「T朝食マスタ」の「朝食名」が表示されるようにしたいのですが、 どのようにすればよいでしょうか? ご回答お願い致します。

  • Access vba 教えてください。 初心者です

    以下のような テーブルT_ソフトリスト、テーブルT_ソフト フォームF_入力 があったときに、フォームの使用者のコンボボックスに入力をしたときに、 T_ソフトから使用者を探して、ソフトリストIDを取得し、そのソフトリストIDを元にT_ソフトソフトのソフト名をフォームのコンボボックスに表示させるようにしたいのですが、 どの様なソースコードを書けばよいでしょうか? 「T_ソフトリスト」←テーブル ================================== ID  | ソフト名 | ────────────── 1   | A |  2  | B |  3  | C |  4  | D |  5  | E |  ================================== 「T_ソフト」←テーブル ================================== ID |ソフトリストID | 使用者 | ─────────────────── 1 |  4     | 佐藤  | 2 |  2     | 鈴木  | 3 |  5     | 斉藤  | 4 |  1     | 佐藤  | 5 |  3     | 田中  | ================================== 「F_入力」←フォーム ================================== 使用者  [コンボボックス]←Combo_UserType ソフト名 [コンボボックス]←Combo_User ==================================

  • ACCESSフォームのリストボックスでレコードが選択できない

    ACCESS2000です。 フォームの左側に親テーブルのフィールド1の値を選択させるリストボックスがあり、そこで選択したレコードにリンクする子テーブルのレコードをフォームの右側にサブフォームで表示させたいのですが、リストボックスでレコードを選択できません(クリックしても反転しません)。でもレコード移動ボタンを押すと、リストボックス内の該当レコードがちゃんと反転し、右側のサブフォームにも正しく反映します。 リストボックスのプロパティはくまなく見ましたがそれらしい設定項目はみつかりませんでした。どこを直せばよいのでしょうか。

  • エクセルVBA

    初心者です エクセル2003 ユーザーフォームのコンボボックスの連携について教えてください   Seet1       A     B     C     D      E     F           1   種類1   商品1  商品A  商品あ        コンボ1  2   種類2   商品2  商品B  商品い 3   種類3   商品3  商品C  商品う                4   種類4   商品4  商品D  商品え        コンボ2 5   種類5   商品5  商品E  商品お (1)コンボボックス1と2を別々のユーザーフォームで配置(ダブルクリックにて表示 F1とF4) (2)コンボボックス1でA列の種類を選択によりコンボボックス2のリストが変わる (3)コンボボックス1で選んだ種類をF1のセルに挿入 (4)コンボボックス2は種類1の場合はB列             種類2の場合はC列             種類3の場合はD列のリストとします (5)コンボボックス2で選択した商品をF4に挿入といった具合です 何度か挑戦しましたが、同一ユーザーフォームにコンボボックス2つは成功するのですが うまくいきません コード及びコード記入場所を教えていただけませんか よろしくお願いいたします

  • Accessのフォームでリストボックスをソートしたい。

    Accessのフォームで、検索結果をリストボックスに一覧で表示させています。 現時点では登録順に表示されてしまうので、最初の列(名称1)もしくは各列ごとにコマンドボタンなどでソートをかけたいです。 もしくは、ソートをかけた状態で表示させる方法でも良いです。 この様にリスト表示させています。 Me.一覧.RowSource = " SELECT [テーブル1].[ID], [ネジ].[名称1], [ネジ].[名称2] FROM テーブル1 WHERE ((([テーブル1].[名称1] & [名称2]) Like '*" & 名称1 & "*')); " 初心者です。マクロ以外で何か良い方法が有りましたらご教授願います。

  • accessでの画像表示

    Access初心者です。 知り合いに頼まれ、「お客さんの情報を選択すると、その人が買った商品の画像が表示される」というのを作ろうとしています。 データから検索して、リストボックスに「特定のお客さんが購入した商品を表示する」ところまではできたのですが、そこから画像を表示する方法がわかりません。 理想としては、リストボックス内の購入商品を選択すると、OLEオブジェクトのところに、リストボックス内で選択した商品の画像が表示されるというものです。 商品のデータテーブルに、画像のファイル名を入れて、mdbファイルと同じ階層にあるフォルダにjpg形式で商品画像を保存しておき、それを表示する。という感じでしたいです。 どんな風にやれば良いのでしょうか? 参考になるコードなどがあれば是非知りたいです。 それと、今回はAccessでやろうとしていますが、これってExcelでやった方が良いんでしょうか・・・?

  • Access パラメータクエリ

    Access97です 更新クエリを作っています。 「テーブルA」の「商品番号」フィールドを一括更新するようにしています。 ところが、更新したい内容(商品番号)が毎回変わるので、現在デザインビューの「レコードの更新」セルに「パラメータ」を設定しています。 が、その都度バラメータダイアログボックスに「商品番号」を入力する手間を効率化したいのです。 リストボックスかコンボボックスのような仕組みで「商品番号」を一覧から選択できるようにしたいのですが。 例えば、「テーブルA」の「商品番号」フィールドが、フォーム上の「商品番号の一覧」から選択した「123456」という番号に更新されるように、、という流れです。

  • Access97:サブフォームを切り替え表示したい

    アクセスで仕事で用いられる専門用語の和英辞書データベースを作っております。 その辞書は用語の持つ意味や使われ方などから分類をしています。 分類一覧テーブルは分類ID,分類からなり、用語一覧テーブルは用語IDと用語からなります。 これらをつなぐのが和英辞書テーブルで、辞書ID,分類ID,用語IDからなり、 分類ID,用語IDはそれぞれ分類一覧テーブル,用語一覧テーブルのそれとリレーションシップを 組んでいます。 メインフォーム(既定のビュー=単票フォーム)には分類フィールドを作り、コンボボックスにします。 分類を選択したときまたはその横に「表示」ボタンを設置しておいてそのボタンをクリックしたときに 選択された分類に属する用語一覧がサブフォーム(既定のビュー=帳票フォーム)にリロードされてるように切り替えて表示させたいと考えています。 メインフォーム元:分類一覧テーブル,サブフォーム元:用語一覧テーブルにしたフォームは作成できました。 メインフォームのレコードを切りかえるとサブフォームも切り替わりますが、 コンボボックスの選択でサブフォームを切りかえ(たように見せ)る上記のようなフォームに このフォームから編集することはできるでしょうか? 無理なら新規にフォームを作りなおすとしてできるでしょうか? 自分の発想で2通りやってみましたが、いずれも失敗でした。 (詳しく書いたら文字数が800を超えたので省略します) テーブルの構成やリレーションを多少変えてもいいしフォームのレコードソースにクエリービルダを使ったりVBを組んでもいいので、メインフォームのコンボボックスの選択値によってサブフォームの表示を切り替える方法について教えて下さい。

専門家に質問してみよう