自分のお店を開く時の心構えとは? >>

フォーム
  テキストボックス:日付を表示する「txt_日付」
  ボタンA:リンクテーブルAに切替える
  ボタンB:リンクテーブルBに切替える
  ボタンC:リンクテーブルCに切替える
    ※リンクテーブルA~Cは世代(データ基準日)が異なるだけで、テーブル名および項目名、
     項目の数は同じです(上記では便宜上、A、B,Cと言う名前を付けました)

フォームを開いた時、txt_日付にリンクテーブルAの日付を表示するよう、プロパティのレコードソースにリンクテーブルAを指定し、「txt_日付」のコントロールソースには、リンクテーブルAで保有する日付項目「作成基準日」を指定しています。

また、ボタンB,ボタンCのボタンを押下した時、リンクテーブルがB,Cへ切り替わります。

ここでやりたいことですが、

リンクテーブルBまたはCに切り替わった後、リンクテーブルBまたはCで保有する日付項目「作成基準日」の値を「txt_日付」に表示するようにしたいのです。
いろいろやってもうまくできません。

ご指導のほど、宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

>例えば、現在のデータベースの状態は以下のとおりです。


>リンクテーブルA(2017/01/31)
>リンクテーブルB(2016/12/31)
>リンクテーブルB(2016/11/30)

最後はリンクテーブルCの間違いだとして
フォームのボタンA、B、Cをクリックすると
txt_日付に2017/01/31、2016/12/31、2016/11/30と表示したいとすると

リンクテーブルAには2017/01/01~2017/01/31のデータが1レコード以上入っているという前提で

Me!txt_日付 = DateSerial(Year(DMin("作成基準日","リンクテーブルA")),Month(DMin("作成基準日","リンクテーブルA")+1,1)-1

リンクテーブルAにある1レコードの日付から翌月1日を計算しその前日を出す(月末日)
    • good
    • 0
この回答へのお礼

y504さん、私のために丁寧にありがとうございます。

おかげさまで、解決できました。

ありがとうございます♪

お礼日時:2017/02/28 08:05

ここで、リンクテーブルのA,B,Cと言うのはフィールドの構成はみな違


うのでしょうか。若しも、同じで有ればもっと簡単に出来るとは思いま
すが。

文面ではその内容に付いては触れていませんので分かりません。仮に、
データの中身が違うだけでフィールドの構成が同じで有れば。別にボタ
ンを用意をする必要は無い様に思います。

それは、単に今有るテキストボックスの日付の横にテーブルを指定する
idのテキストボックスを作り。サブフォームを作り、その時のリンクの
プロパティを指定するだけで宜しいかと思いますが。

それぞれに、親プロパティと子プロパティが有りますので。その時には
2つのテキストボックスの日付とテーブルを指定するidのテキストボッ
クスを入力するだけで自動的にサブフォームにその時のテーブルの内容
が表示されます。

この様にする事のメリットと言うのは、今は単にテーブルが3つだけで
すが。将来的にテーブルの種類が増えて来てもボタンの数を増やすとか
の将来の拡張性の為の対策が不要に成るからです。

Accessと言うのは、開発はプログラムベースでは無くて。動的にデータ
に依って駆動されるアプリなので。こう言う所は、動的にデータに依っ
て駆動されるシステムを最初から念頭に於いての開発が望ましいと思い
ます。

この方法だと将来に渡って拡張性も担保されますので。保守が容易で
す。これだけを業務として専門にやっている訳ではなくて。他にも色々
と手がけている中での開発ですから。

余り、業務に負担の及ばないと言う事が前提と言う事での開発指針が私
は望ましいと思います。

長くなりましたが。リンクテーブルの構造が分かっていないので。的を
得ていないかも知れません。参考にして下さい。
    • good
    • 0
この回答へのお礼

usui-2015さん、ご回答ありあがとうございます。
お返事が遅くなってごめんなさい。

私のためにいろいろとありがとうございます。
ご参考にさせて頂きます。

お礼日時:2017/02/28 08:05

リンクテーブルA、B、Cは日付を基準に分けていると思うのですがその基準は?


リンクテーブルBの最小日付を作成基準日にするなら
Me!txt_日付 = DMin("作成基準日","リンクテーブルB")
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
リンクテーブルは日付を基準にしています。
リンクテーブルAは(前月末)
リンクテーブルBは(前々月)
リンクテーブルCは(前々月末)です。

月に1回データベースの更新処理が起動してデータはスライドします。

例えば、現在のデータベースの状態は以下のとおりです。
リンクテーブルA(2017/01/31)
リンクテーブルB(2016/12/31)
リンクテーブルB(2016/11/30)

3月1日になるとデータベースの更新が起動して以下のとおりとなります。
リンクテーブルA(2017/02/28)
リンクテーブルB(2017/01/31)
リンクテーブルB(2016/12/31)

お礼日時:2017/02/27 10:30

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


人気Q&Aランキング