• ベストアンサー

アクセス教えてください。

アクセスを使って実際に家族の予定表を作ってみようと思ったのですが、なかなかうまくいきませんどうしたらよいのか教えてもらえないでしょうか? 予定(1)(テーブル) 日付 予定 時間  予定(2)(テーブル) 日付 予定 時間  予定(3)(テーブル) 日付 予定 時間  予定(4)(テーブル) 日付 予定 時間  予定(5)(テーブル) 日付 予定 時間 予定(6)(テーブル) 日付 予定 時間   テーブルの作り方が間違っているのかもしれませんが、 データーを軽くするために分けた方が良いと聞きましたのでテーブルを分割して作りました。 フォームには、一つの日付で、6つの予定を入力させたいのですが、どうしたらよいでしょうか?(一つの画面で一日の予定を把握、入力したのですが。) ■月■日  予定1 予定 時間   予定2 予定 時間   予定3 予定 時間  予定4 予定 時間  予定5 予定 時間 こんな感じのフォームを作りたいのです。日付を一度入力したら、6つのすべてのテーブルに同じデータが入力される。(できればこれもその日の日付が最初から自動的に入力されているのが理想なのですが・・・) お教えください宜しくお願いいたします。

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

  • ベストアンサー
noname#22222
noname#22222
回答No.2

No1の方のアドバイス通りテーブルの分割は不要です。 その代わり、[家族ID]ないし[区分]列を設けるべきでしょう。 例えば、次のようなスケジュール入力フォーム[予定]の作成手順は以下のようです。 ********************************************************************* [_____ID____][_____日付______][___家族ID__][_____予定____][__時間___] [___________1][2006/02/20][鈴木 一郎][予定1_______][時間1___] [___________2][2006/02/20][鈴木 一郎][予定2_______][時間2___] [家族一人のデータを抽出] <-- コマンド_抽出 ********************************************************************* <<表構造>> 家族6人の予定表と仮定すれば... 表[予定] ID------------- オートナンバー型_____ 1 日付----------- 日付・時刻型___________ 2006/10/10 家族ID(区分)--- 整数型________________ 1 予定----------- テキスト型_______________ 犬の散歩 時間-----------テキスト型_______________ 18時~19時 主キー=[ID] <<表[予定].[日付]の設定>> 表[予定]をデザインで開き、下段の標準で設定します。 書式="yyyy/mm/dd" 規定値=Now() <<表[予定].[家族ID]のルックアップを設定>> 表[予定]をデザインで開き、下段のルックアップを設定します。 <コンボボックス><値リスト>を選び、 1;鈴木 一郎;2;鈴木 さくら;3;鈴木 太郎;4;鈴木 次郎;5;鈴木 花子;6;鈴木 トメ ここで、6つの区分がスケジュールの性格によるものであれば、 1;遠出;2;外出;3;稽古事;4;趣味;5;仕事;6;その他; とすれば良いでしょう。 列数=2 列幅=0cm;3cm としても良いでしょう。 <<フォームの作成>> (1)<ウィザードを使用してフォームを作成する。>をクリック。 (2)テーブル[予定]を全て選択。 (3)表形式[予定]生成。 ・フォームに[フォームのフィルターを実行する]コマンドボタン<コマンド_抽出>を配置する。 ・フォームの[フィルタ]を<[家族_ID]=[抽出したい家族のIDを入力して下さい。]>に! (又は、フォームの[フィルタ]を<[区分]=[抽出したいスケジュールの区分を入力して下さい。]>に!) これで、<コマンド_抽出>を押せば、家族_ID(区分)を入力するフォームが開きます。 <1>と入力すれば、<1 鈴木 一郎>の予定だけ(あるいは、1 遠出)が表示されます。 <コマンド_抽出>を右クリックすれば、<フィルタ/並び替えの解除>が可能で全データが表示されます。 表を分割する必要がない理由です。

mugigohan
質問者

お礼

詳細までご指示いただいたアドバイスを元に色々ためしています。今アクセスが少し好きになりました。ありがとうございました。

その他の回答 (2)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

テーブルを分割するのでしたら ・家族テーブル ・予定テーブル 家族テーブルのフィールド 家族ID・名前 予定テーブルのフィールド 予定No(オートナンバー型)・家族ID・日付・時間・予定内容 で良いと思います。家族テーブルの家族IDと予約テーブルの家族IDで1対多のリレーションを取る。またはオブジェクトのソースで使用するさいにクエリ上で結合してもかまいません。 入力フォームは予定テーブルに家族テーブルから名前をフィールドに追加したクエリを元にフォームを作成しても良いですし予定テーブルを元に作って家族の名前も表示するようにしてもどちらでも良いです。 クエリで家族テーブルから名前のフィールドを追加しそのクエリを元にフォームを作成すれば家族IDを入力すれば名前は表示されます。家族IDはコンボボックスで家族テーブルを値集合ソースにすればプルダウンから選択できるようになります。 この様にすれば予定は何件でも入力できます。 この辺はご自分で好きなように作ってみてください。 >できればこれもその日の日付が最初から自動的に入力されているのが理想 フォームの日付コントロールのプロパティの規定値に =Date() とすれば今日(システム日付)の日付を取得できます。 =Now()でも良いですが日付と時間も取得できてしまうので書式に日付(S)かyyyy/mm/ddと設定しなくては日付のみの表示は出来ません。 =Date()だとテーブルには日付のみ、=Now()では日付と時間も保存されます。 >予定を抽出する時は 1家族の1日分の予定なら予定テーブルの家族IDと日付を指定して抽出するようにします。 1日分の全家族なら日付を指定すれば抽出できますのでその辺も色々試してみてください。

mugigohan
質問者

お礼

お教えいただいた方法で作成したところイメージに近いフォームが出来ました。初めて一から作ったのでテーブルやリレーションのわからないことばかりでした。適切なアドバイスありがとうございました。 これを元に今後色々作って行けそうな気がします。 これからも壁にあたった時はアドバイスを宜しくお願いいたします。

noname#182251
noname#182251
回答No.1

mugigohanさんがやろうとしていることを実現するために、説明しなければならないことはあまりにも多すぎるようなので、一つだけ。 フツー、テーブルの作り方は 予定(テーブル) 日付 予定 時間 種別(1,2,3. . . .) でしょう。入門書の購入をお勧めします。さがせば「予定表の作成」といったサンプルがありそうです。

mugigohan
質問者

お礼

やりたいことをいっぺんに質問する形になって申し訳ありませんでした。アクセスの使い方は理解していたつもりだったのですが、作るとなるとテーブルの分け方やリレーションの組み方などぜんぜん理解していませんでした。 なにか参考になる本などありましたら、ご紹介いただけないでしょうか?

関連するQ&A