10代と話して驚いたこと

いつもおせわになっております。
現在、Accessで家計簿なるものを作っているのですが・・・
まずマスタテーブルから入力データが存在する日付をクエリで抽出し、それをフォームのテキストボックス1のコントロールソースに指定して、そのテキストボックス1に表示されている日付を元にフィルタ機能を使ってその日に入力されたデータ一覧をサブフォームで表示するという方式を取っているのですが・・・(解かり難くてすみません
この方式だとクエリのレコードを移動するとサブフォームの表示内容も対応してその日のが抽出されます。
しかし、データがたくさん蓄積されてくると一日ずつ(1レコードずつ)移動すると手間がかかってイライラしそうです。
で、同じフォームにコンボボックス1を追加し、上記にもあるマスタテーブルから入力されている日付を抜き出した日付一覧を取得してあるクエリを値集合ソースに指定してみました。
クリック時のイベント等もちゃんと設定したのですが、うまく動作してくれません。

コンボボックス1をクリックして選択したら、クエリをコントロールソースとするテキストボックス1の表示内容がコンボボックス1で選択されたものに変更される、みたいなことって出来ないのでしょうか?

コンボボックス1だけにしてテキストボックス1を消すとコンボボックス1で選択した日付の内容をサブフォームで表示することは出来たのですが、それだとコマンドボタンを押して次のフィールドに移動し、かつコンボボックス1の表示内容も自動変更というのが出来なかったので・・・

長文でスミマセンが、どなたかお知恵の拝借お願いします。

A 回答 (2件)

>コンボボックス1をクリックして選択したら・・テキストボックス1の表示内容がコンボボックス1で選択されたものに変更される


コンボボックス1のイベントの更新後処理に
Private Sub コンボボックス1_AfterUpdate()
テキストボックス1 = コンボボックス1.Column(0)
End Sub
(注)コンボボックス1に日付だけ表示の場合はコンボボックス1の左から数えた位置になるのでColumn(0)になります。)
とすれテキストボックス1にコンボボックスで選択した値を表示できます。
AfterUpdateでテキストボックス1に値を表示後そのクエリをMe!クエリ名.Requeryで更新すれば行けると思います。
    • good
    • 0

現在の表示方式が良いのなら、簡単な方法としては以下が考えられます。



(1)コンボボックスの値の変更があった時のイベントとしてフォームのレコードを移動させる。
(2)フォームをクエリとは非連結にして、コンボボックスの値はVBAで読み込む。 日付の移動はコンボボックスの値を変更させることで対応。

双方とも少しVBAを使用します。 どちらかというと(1)のほうが簡単かも。
 
    • good
    • 1

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


おすすめ情報