こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Access97のフォームで一人につき一画面でデータ表示させる方法を教えて下さい。

仕事で、マイクロソフトアクセス97を使ってフォームを作成しようとしています。
アクセスでクエリやテーブルは以前から使っていますが、フォームを作るのは初めてで、非常に初歩的な質問で申し訳ありませんが教えてください。
フォームのデータのもとは一つのテーブルで、氏名・社員番号・給与年月・支給給与項目ごとの金額 といった項目で構成されており、過去1年の分データを持っています。(つまりテーブルには、一人につき12行のデータがあります。そのため、社員番号だけではデータは特定できず、社員番号と給与年月で特定できます。主キーは設定していません。)

フォームでは、これらを見やすく配置し、社員番号ごとに(=一社員ごとに)1ページ、過去1年間に支給された給与年月ごとのデータを表示させたいと考えています。

<希望するイメージ>
氏名:○○太郎 社員番号:11111
給与年月 基本給   ○○手当  ××手当
200701   200,000    20,000   10,000
200702    200,000    20,000   15,000
  ------以下省略(12ヶ月分が同様に並ぶ)------

フォームウィザードで作成してみたところ、表形式だと1人1ページにならず他の対象者のデータも一画面に一緒に表示されてしまい、また単票形式だと1人につき1か月分のデータしか表示されず1人につき12ページとなってしまいました。
一体どこをどういじれば、1人につき1ページの表示に変えられるでしょうか?
宜しくお願いします。

投稿日時 - 2007-11-16 22:46:02

QNo.3524203

困ってます

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

テーブル設計がまずいですね

月ごとの給与をテーブルにしたいのなら
今のテーブルを
[社員テーブル](社員番号、氏名、入社年月日、生年月日、性別、・・・)
[給与](社員番号、支給年月、支給項目ごとの金額)
のように分けましょう

こうしておいて
社員テーブルから作った単票フォームに
給与テーブルを社員番号でリンクしてサブフォームとしてはめ込みます

投稿日時 - 2007-11-17 01:07:06

補足

教えて頂いたように作ってみたのですが、メインフォームを開いてもサブフォーム側のデータが表示されませんでした。(サブフォームの中の四角い枠などはできているのですが、そこに数字が入っておらず白いまま。)
とはいえ、サブフォーム単体で開くと、社員番号順にそれぞれの年月ごとの給与データがちゃんとずらっと並ぶのです。。。

メインフォームの元になっている基本情報テーブルと、サブフォームの元になっている給与テーブルとは、社員番号でリレーションをかけてあり、一(基本情報テーブル)対多(給与テーブル)の関係になっています。「参照整合性」というチェックボックスには、チェックを入れませんでした。
また、基本情報テーブルの社員番号は主キーになっており、どちらのテーブルにおいても社員番号はテキストデータです。(以上関係ないのかもしれませんが、ご参考まで。。。)

あと何が足りないorいけないか、お分かりになりましたらどうか教えてください。

投稿日時 - 2007-11-19 20:07:18

お礼

なるほど、テーブル設計と作り方の問題なのですね。非常に単純に物事を考えていたみたいで、サブフォームを使って、というのは全く考えていませんでした。そのやり方、これからちょっと勉強してみます。
有難いことに社員番号や氏名など他基本的な情報を載せたテーブルは既に別にあるので、それを使って単票形式でメインフォームをつくり、今回ご相談した給与テーブルをサブフォームではめ込んでみますね。(今は週末で家にいるので、来週月曜日会社で。)
お答えくださって、どうもありがとうございます!

投稿日時 - 2007-11-17 22:17:03

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

メインとサブは社員番号でリンクさせていますか?

投稿日時 - 2007-11-20 01:11:27

補足

どうもありがとうございます。
リンクと呼ぶのか分かりませんが、メインとサブのもとになっている2つのテーブルについて、社員番号でリレーションシップを設定しています。(リレーションシップの種類は、「一対多」と出ていました。)

投稿日時 - 2007-11-20 07:30:03

お礼

今一度やり直してみましたら、できました!
何度もお教えいただいて、申し訳ありませんでした。
ありがとうございました。

投稿日時 - 2007-11-20 13:37:31

ANo.1

家のPCにACCESS入ってないし、文章だけで書くのは
ちと難しいんですが

自分だったら、サブフォーム使って作る
メインのフォームで社員番号と年を入れてサブフォームとリンクさせるか、VBAでフィルタセットするかな
何かウィザードがあった気がするけど・・・

投稿日時 - 2007-11-17 00:21:46

お礼

ご回答ありがとうございます。
サブフォームを使うのですね、私も今は家にいて家のPCにはACCESSが入っていないので試せないのですが、月曜日にトライしてみます!

投稿日時 - 2007-11-17 22:11:56

あなたにオススメの質問