
仕事で、マイクロソフトアクセス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ページの表示に変えられるでしょうか?
宜しくお願いします。
No.2ベストアンサー
- 回答日時:
テーブル設計がまずいですね
月ごとの給与をテーブルにしたいのなら
今のテーブルを
[社員テーブル](社員番号、氏名、入社年月日、生年月日、性別、・・・)
[給与](社員番号、支給年月、支給項目ごとの金額)
のように分けましょう
こうしておいて
社員テーブルから作った単票フォームに
給与テーブルを社員番号でリンクしてサブフォームとしてはめ込みます
この回答への補足
教えて頂いたように作ってみたのですが、メインフォームを開いてもサブフォーム側のデータが表示されませんでした。(サブフォームの中の四角い枠などはできているのですが、そこに数字が入っておらず白いまま。)
とはいえ、サブフォーム単体で開くと、社員番号順にそれぞれの年月ごとの給与データがちゃんとずらっと並ぶのです。。。
メインフォームの元になっている基本情報テーブルと、サブフォームの元になっている給与テーブルとは、社員番号でリレーションをかけてあり、一(基本情報テーブル)対多(給与テーブル)の関係になっています。「参照整合性」というチェックボックスには、チェックを入れませんでした。
また、基本情報テーブルの社員番号は主キーになっており、どちらのテーブルにおいても社員番号はテキストデータです。(以上関係ないのかもしれませんが、ご参考まで。。。)
あと何が足りないorいけないか、お分かりになりましたらどうか教えてください。
なるほど、テーブル設計と作り方の問題なのですね。非常に単純に物事を考えていたみたいで、サブフォームを使って、というのは全く考えていませんでした。そのやり方、これからちょっと勉強してみます。
有難いことに社員番号や氏名など他基本的な情報を載せたテーブルは既に別にあるので、それを使って単票形式でメインフォームをつくり、今回ご相談した給与テーブルをサブフォームではめ込んでみますね。(今は週末で家にいるので、来週月曜日会社で。)
お答えくださって、どうもありがとうございます!
No.3
- 回答日時:
メインとサブは社員番号でリンクさせていますか?
この回答への補足
どうもありがとうございます。
リンクと呼ぶのか分かりませんが、メインとサブのもとになっている2つのテーブルについて、社員番号でリレーションシップを設定しています。(リレーションシップの種類は、「一対多」と出ていました。)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Microsoft 365 Basic サブスク...
-
列が255以上のCSVファイルをAcc...
-
Accessでレポートを印刷する時...
-
Microsoft365にAccessってあり...
-
Accessのクエリで、replace関数...
-
Accessのリンクテーブルのパス...
-
アクセス レポートを開いたとき...
-
Access DAOのExecuteメソッドの...
-
アクセス ステップインのやり方
-
実行時エラー3131 FROM 句の構...
-
「テキストデータで送ってくだ...
-
access2021 強制終了してしまう
-
ACCESS VBA でのエラー解決の根...
-
Accessのフォーム上のテキスト...
-
Access IF文でテーブルに存在し...
-
Accessのスプレッドシートエク...
-
access2021 VBA メソッドまたは...
-
access2019の起動が遅い
-
Accessでフォームに自動入力し...
-
accessの代わりになるもの
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessのフォームのテキストボ...
-
AccessVBA SetFocusとGoToCon...
-
初心者なのですが・・・access...
-
Accessのフォームで計算した結...
-
access2019 コンボボックスの値...
-
Access フォームの参照先について
-
アクセスのデータをCSVファイル...
-
Access97のフォームで一人につ...
-
Accessでアンケート集計を構築...
-
複数の条件にあてはまるものを...
-
accessについてです。
-
Access2002のリレーションにつ...
-
差込印刷での全角表示について...
-
日付型のフィールドに空白を入...
-
アクセスのエラー「クエリには...
-
SQL文で パラメータが少なすぎ...
-
Excleピボットでデータのない部...
-
Accessで、1つの項目に複数の...
-
ACCESS クエリの抽出条件に他の...
-
アクセスで追加した項目に全て...
おすすめ情報