dポイントプレゼントキャンペーン実施中!

仕事で、マイクロソフトアクセス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ページの表示に変えられるでしょうか?
宜しくお願いします。

A 回答 (3件)

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



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

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

この回答への補足

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

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

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

補足日時:2007/11/19 20:07
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/11/17 22:17

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

この回答への補足

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

補足日時:2007/11/20 07:30
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/11/20 13:37

家のPCにACCESS入ってないし、文章だけで書くのは


ちと難しいんですが

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

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

お礼日時:2007/11/17 22:11

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