• ベストアンサー

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ページの表示に変えられるでしょうか? 宜しくお願いします。

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

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

テーブル設計がまずいですね 月ごとの給与をテーブルにしたいのなら 今のテーブルを [社員テーブル](社員番号、氏名、入社年月日、生年月日、性別、・・・) [給与](社員番号、支給年月、支給項目ごとの金額) のように分けましょう こうしておいて 社員テーブルから作った単票フォームに 給与テーブルを社員番号でリンクしてサブフォームとしてはめ込みます

tamaboston
質問者

お礼

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

tamaboston
質問者

補足

教えて頂いたように作ってみたのですが、メインフォームを開いてもサブフォーム側のデータが表示されませんでした。(サブフォームの中の四角い枠などはできているのですが、そこに数字が入っておらず白いまま。) とはいえ、サブフォーム単体で開くと、社員番号順にそれぞれの年月ごとの給与データがちゃんとずらっと並ぶのです。。。 メインフォームの元になっている基本情報テーブルと、サブフォームの元になっている給与テーブルとは、社員番号でリレーションをかけてあり、一(基本情報テーブル)対多(給与テーブル)の関係になっています。「参照整合性」というチェックボックスには、チェックを入れませんでした。 また、基本情報テーブルの社員番号は主キーになっており、どちらのテーブルにおいても社員番号はテキストデータです。(以上関係ないのかもしれませんが、ご参考まで。。。) あと何が足りないorいけないか、お分かりになりましたらどうか教えてください。

その他の回答 (2)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.3

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

tamaboston
質問者

お礼

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

tamaboston
質問者

補足

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

  • gatyan
  • ベストアンサー率41% (160/385)
回答No.1

家のPCにACCESS入ってないし、文章だけで書くのは ちと難しいんですが 自分だったら、サブフォーム使って作る メインのフォームで社員番号と年を入れてサブフォームとリンクさせるか、VBAでフィルタセットするかな 何かウィザードがあった気がするけど・・・

tamaboston
質問者

お礼

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

関連するQ&A

  • Access テーブルのデータをフォーム上で、検索したい

    こんにちは。Access で簡単な貸出管理データを作っています。 現在、貸出フォームは作ったのですが、 返却フォームを作る際、 今度は、一度テーブルに保存した貸出記録データを 返却フォームで検索して、表示したい場合、どのように したらよろしいでしょうか? 貸出フォームでは、 テーブル1、社員ID、氏名、電話番号 テーブル2、備品ID、備品名、貸出日、返却予定日、 社員ID、氏名、電話番号 これをサブフォームを使ってつくりました。 このテーブル2のデータを返却フォームで検索して、 (備品IDか社員IDで) 表示させたいと思っています。 よろしくお願い致します。

  • ACCESSでのフォームから固定値での更新に関して

    初歩的な質問で申し訳ありません。 教えて下さい。 社員マスタテーブルと評価テーブルが以下の項目で存在しています。 《社員マスタ》  社員マスタ、氏名 《評価テーブル》  社員マスタ、評価、年月 上記内容をフォームを使って、社員番号、氏名、評価、年月 という項目を 表示させ、社員番号が存在するまで評価を手入力するというような仕掛けを考えています。 表示は参照クエリで社員番号をキーにして両テーブルを結合させ、フォームに出力しています。 上記条件の中で、フォームのヘッダーへ年月を入力する欄を設け、そこに入力されたデータで、 追加されるデータの年月を全て入力された年月にしたいと考えております。 何か良い記述?の方法はありますでしょうか。。。 教えて頂きたいと思います。 よろしくお願いします。

  • Accessで一致したデータを表示させたい

    Accessについて教えてください。 Accessで以下のようなテーブルを作っております。 (T1)テーブル1(社員データ) 社員NO オートナンバー 所属 テキスト型 氏名 テキスト型 (T2)テーブル2(面談データ) NO オートナンバー 日付 日付/時刻型 面談者氏名 テキスト型 面談者企業名 テキスト型 社員NO1 数値型 社員NO2 数値型 社員NO3 数値型 社員NO4 数値型 社員NO1,2,3,4はテーブル1の社員NOとリレーションでつながっています。 (T1)社員NO、(T2)NO以外のデータを最終的にレポートで表示します。 ここで、クエリ、フォーム、レポートをいづれでも作成するときですが、 日付(T2) 面談者氏名(T2) 面談者企業名(T2) 社員NO(T1)(非表示) 社員NO1の所属(T1) 社員NO1の氏名(T1) 社員NO(T1)(非表示) 社員NO2の所属(T1) 社員NO2の氏名(T1)・・・(社員NO3、4と続けて) という風に作りたいです。 クエリ、フォーム、レポートで作成すると、社員NO1(T2)の所属(T1)氏名(T1)、しか表示されません。(これでは当たり前かもしれませんが・・・) 社員NO2、3、4の所属、氏名も表示させたいです。 フォームやクエリ、レポートで社員NO2、3、4(T2)のデータと一致する社員NO(T1)の所属、氏名を表示させる方法はどのようにしたらよろしいでしょうか。 どうかよろしくお願い致します。

  • Access フォームの表示順をなおしたい

    いつもお世話になっています。 Access フォームを利用していたのですが、テーブルの既存データを更新してから、そのフォームでのデータ表示順が変わってしまいました。 レコードにはIDとして番号データがあるので、小さい順にフォームに表示させたいと思います。 ちなみに、元となるテーブルはID番号が小さい順に並んでいます。 よろしくお願いします。

  • Accessのフォームで

    教えてください。下のようなテーブルがあり、これを元にフォームを作成したいのですがいい方法が見つかりません。 【テーブル】  品物テーブル(品物ID、品物、製作所)  社員テーブル(品物ID、社員コード、氏名) このテーブルを元にして下のようなフォームを作りたいのです。 【フォーム】  品物ID [テキストボックス]  品物 [テキストボックス]  製作所 [テキストボックス]  社員コード [テキストボックス]  氏名 [テキストボックス]  社員コード [テキストボックス]  氏名 [テキストボックス]  社員コード [テキストボックス]  氏名 [テキストボックス] ※社員コード、氏名が3つあるのは、同じ品物を3人が作成することがあるため。(この部分で悩んでいます) このようなフォームを作ることは可能でしょうか? また参考になるようなサイトなどあれば教えてください。 よろしくお願いします。

  • MS Access2000のフォームの表示方法について教えてください。

    図1、データが5000件位の製品テーブルがあります。 図1項目名の番号に対する名称等は別のテーブルにあります。 図1(テーブル) ----------------------------------------------------------  製品番号 | 予算番号 | 新製品番号 | ・・・ | ・・・ ----------------------------------------------------------  3310001 | 3230002  |  ・・・   | ・・・ | ・・・  3310001 | 3230002  |  ・・・   | ・・・ | ・・・  3310010 | 3230015 |  ・・・   | ・・・ | ・・・ ・      ・          ・      ・ テーブル図1を使ってクエリ又はフォームで、「材質番号」という項目を追加して図2のような感じでフォームを作成したいのです。 材質番号という項目はベースとなる図1テープル、図1クエリには無く、別テーブルになっています。 図2(フォーム) --------------------------------------- |製品番号|(製品名称テーブルより製品名) | --------------------------------------- --------------------------------------- |予算番号|(予算名称テーブルより予算名称)| --------------------------------------- ---------------------------------------- |材質番号|(材質名称テーブルより材質名称)| ---------------------------------------- なお、作成するフォームは各番号と名称を使用してのデータ検索のみで、入力はしません。 ちょっと質問がややこしくなってしまいましたので、簡単にやりたいことを言いますと、製品フォームにまったく関係の無い材質テーブルの材質番号を、製品フォームに表示させて、検索、閲覧したいということなのです。 Accessもですが、VB&VBA等初心者ですので、できれば使用しない方法がありましたらよろしくお願いいたします。

  • Access 2010フォームの全画面表示

    Access 2010でなんとかフォームを作りました(初心者です)。 起動もできましたが、左にはテーブル名やフォーム名が表示されるパネル(?)があり 上にはホームとかファイルとかのタブがあり、画面が非常に狭くしか使えません。 またフォームの上の部分に、元となったテーブルの名前が表示されますが、 これも出したくありません。 というわけで、フォームの、本当にデータ入力に必要な部分だけを全画面表示にする ことはできますでしょうか? よろしくご指導お願いいたします。

  • ACCESSのフォームの作り方について

    ACCESSのフォームについてお尋ねします。 『会員ナンバー』を主キーに設定しているテーブル(顧客データ。会員ナンバー・住所・氏名等のデータが入ってます)を元にACCESSで入力フォームを作っているのですが、会員ナンバーを入力したら住所・氏名のテキストボックスに自動的に入力されるにはどのようにしたらいいですか? 現在データが1番から自動的に表示されていて、例えば1番の人が表示されているときに会員ナンバーのテキストボックスに番号を入力すると、そのまま1番の人が上書きされてしまいます。 会員番号を検索して住所などのデータが出てくるイメージにしたいのですが。。。 本当はすでに入力されている住所等のデータはこのフォームでは上書きされないようにしたいのです。 ちなみにこのレポートは会員を新規追加するためではなくどんな修理をしたかという項目を追加させるため物です。

  • アクセス2000 データの画像の表示方法

    テーブルに患者ID、患者氏名、撮影日、撮影部位、レントゲン写真のデータを作成します。 フォームでそのデータの内容を表示する際に、レントゲン写真はそのまま表示されず、クリックした際にIEが立ちあがって表示されます。 私が実現したいのは フォームで表示させる段階で、すでにレントゲン写真が見えてるという感じです。 どこに設定を施せばよろしいのですか? 宜しければ教えてください。 お願いします。

  • Accessでテーブルのデータを検索してフォームに表示させる方法を教えてください

    現在、アクセスでテーブルを作成しました。テーブルは患者テーブルという名前でデータはID、名前、年齢です。フォームにはID、名前、年齢のフィールドを作成しました。IDのフィールドに、ID番号を入力し患者テーブル テーブルのID番号と一致すれば、名前と年齢を自動的に表示させるモジュールを作成したいのですが、どのように作成すればいいでしょうか?ご教示頂ければ幸いです。

専門家に質問してみよう