Accessで後々データを追加したい

このQ&Aのポイント
  • Access2007を使用して、出向社員の契約情報を管理する方法について相談しています。
  • 質問者は所属部署や担当ポジションなどの固定データはテーブル化できているが、更新回数や累積契約年月数のような未確定のデータの管理ができていないとのことです。
  • すでにAccessの基本的な機能や使い方について理解しているが、問題の解決には至っていないと述べています。
回答を見る
  • ベストアンサー

Accessで後々データを追加したい

初めて質問致します。よろしくお願いします。 Access2007を使用して、弊社の出向社員の雇用状況を管理したいと考えています。 行き詰っているのが契約の更新状況をどう記録していくか、というところです。 人によって契約期間が違い、また契約の更新回数が異なります。   例:Aさん(初契約2012年3月1日~5月31日、2回目6月1日~6月30日・・・・)   Bさん(初契約2012年7月1日~2013年6月30日・・・) (1)所属部署 (2)担当ポジション (3)累積契約年月数 (4)更新回数 という情報を一覧で見ることができないかと言われています。 固定されたデータである(1)と(2)はテーブルを作成することができているのですが、(3)と(4)は こういった回数が未確定な契約情報の管理の手法が分からず詰まっている状態です。 そもそもAccessじゃ無理!という場合もあるかと思いますが、その場合はExcelで管理できればと考えています。 Accessの基本的な機能や使い方について理解していると思います(たぶん・・・) どうかお知恵を貸して下さい。よろしくお願いします。

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

  • ベストアンサー
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.3

#1補足について。 基本的にはその考えで良いと思いますよ。 (「名簿」となるテーブルに[氏名]を持つのであれば、  「契約状況」には[氏名]は要らない、とか、細かいツッコミはありますが。) ついでですから簡単に。一緒に手を動かしてみてくださいませ。 テーブルはとりあえず二つ作ります。 [名簿] ・社員ID(主キー)・・・長整数型(表示形式:"0000") ・氏名・・・テキスト型 (テストデータ) 社員ID  氏名 0001   山田一郎 [契約状況] ・社員ID・・・長整数型 ・契約開始日・・・日付/時刻型 ・契約満了日・・・日付/時刻型 ・所属部署・・・テキスト型 (デザインビューで[社員ID][契約開始日]を選択した状態にして  主キーを設定してやると、主キーの鍵マークが二つ付きます。  これで、重複を防ぐことができます。) (テストデータ) 社員ID  契約開始日   契約満了日   所属部署 0001   2011/04/01   2012/03/31   経理部 0001   2012/04/01   2013/03/31   総務部 0001   2013/04/01   2014/03/31   総務部 [所属部署]を[契約状況]テーブルに持って行ったのは単なる趣味です。 でも、こうしておけば後々なんだかんだ便利なような気がします。 (現在の所属部署と、以前の所属履歴を比べてみたり。) これを基にクエリを作ります。 クエリを新規作成し、空のままで「テーブルの選択」を閉じ、SQLビューにして、 SELECT 名簿.社員ID, 名簿.氏名, 契約状況.所属部署, Min(契約状況.契約開始日) AS 契約開始日の最小, Max(契約状況.契約満了日) AS 契約満了日の最大, DateDiff("m",Min([契約開始日])-1,Max([契約満了日])) AS 累積契約年月, IIf(Max([契約満了日])>Now(),"契約期間中","契約満了") AS 契約状況, Count(契約状況.[契約開始日]) AS 契約回数, [契約回数]-1 AS 契約更新回数 FROM 契約状況 INNER JOIN 名簿 ON 契約状況.社員ID = 名簿.社員ID GROUP BY 名簿.社員ID, 名簿.氏名, 契約状況.所属部署; コレを貼り付けてやります。 デザインビューにしてご確認くださいませ。 クエリが出来上がっているはずです。 これをデータシートビューで見てやると、添付図のように出来上がります。 お試しくださいませ。

misora82
質問者

お礼

できました!ありがとうございます!! ご丁寧な解説助かりました。これを元に頑張ってデータベースを構築していきたいと思います。

その他の回答 (3)

回答No.4

補足:列"出向履歴.期間"を提示した意図。 「弊社の出向社員の雇用状況を管理したい」のシステムへの反映が"累積契約年月数"であることに対しての疑問を提示したつもりです。 出向期間=開始日-終了日 この場合、出向期間の値は日数で戻されます。つまり、その値は月数ではないということです。普通に考えて、かかる値から"累積契約年月数"を求めるのは至難。この問題点を示唆したつもりです。 もう一つは、"期間"をデータ入力時に求めておけば、その累積を求めるのは至極簡単。そういう質問者の力量とマッチしたテーブル設計というのも示唆したつもり。 ちょっと、補足しておきます。

misora82
質問者

お礼

補足ありがとうございます。 データベース作成の際に考慮して組んでみたいと思います。

回答No.2

【出向社員簿】 id 所属部署_id・・・・・・【所属部署名】参照 担当ポジション_id・・・【担当ポジション名】参照 氏名 [所属部署_id]、[担当ポジション_id]をも正規表現するのかどうか?そこは、それぞれの作法というか好みの問題。 【出向履歴】 id 出向社員簿_id・・・・・ 【出向社員簿】参照 出向名 開始日 終了日 期間 テーブル【出向履歴】に[開始日]と[終了日]から求められる[期間](月数)を2.02ヶ月などと記録。[累積契約年月数]と[更新回数]はSQL文で。列[期間]をもSQL文で求めるかどうかは、それぞれの作法というか好みの問題。 1、出向履歴管理フォーム。 2、出向履歴参照フォーム。 "出向履歴.id"_____「出向履歴管理フォーム」で履歴を入力順に表示する為の列。 "出向名"__________履歴を出向名で検索、区別するのであれば・・・。 開発すべきフォームは、上記の二つ。 こんな感じが手始めの構想かと思います。

misora82
質問者

お礼

SQLは慣れてきたら導入してみようと思います。ありがとうございます。

misora82
質問者

補足

回答ありがとうございます。 申し訳ありません、SQLは不勉強で分かりません・・・。 Accessの基本機能しか使えないド素人でございます(涙

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.1

ごくごく簡単に考えて、 「契約状況」を蓄積しておくテーブルを作ってみてはいかがでしょう? で、クエリでまとめれば一覧もできますし、 契約開始日の最小値~契約満了日の最大値で演算してやれば 累積契約年月数も出せますし、 レコードの数から更新回数も出せます。 > そもそもAccessじゃ無理!という場合もあるかと むしろ、アクセスの得意分野だと思いますよ。 エクセルに任せる方が後の処理が面倒です。 (と、私は思います。)

misora82
質問者

お礼

1回の契約=1レコードというのが使えるんじゃなかろうか、というところまでは考えたのですが レコード数=契約更新回数というところと、MAXとMINを引けば累積が出るという点については思いつきませんでした。 目からうろこでした。 (Accessベテラン様からすればナンデヤネンかもしれませんが(汗) 最終的にはフォームを使って全部のデータ(新規の出向社員の登録~契約更新まで)を入力できるようにしたいと思います。 ありがとうございました。

misora82
質問者

補足

ご回答ありがとうございます。 理解力が足りないため、追加で質問させていただきたいのですが、契約状況用のテーブルというのは下記のようなものでしょうか? 社員番号  氏名   契約開始日  契約終了日 12345   A田B男  2012/7/1   2013/4/30 12345   A田B男  2013/5/1   2014/6/30 ・ ・ ・ これでクエリを作成して、A田さんの最後の契約終了日と最初の契約開始日の差を累積契約年月数とする。 A田さんのレコードの数=契約更新回数。 要するに1回の契約=1レコードという理解でしょうか。

関連するQ&A

  • 契約更新回数を算出したい

    人事部で業務を行っております。 パートタイマーの離職時にこれまでの契約更新回数を離職票に記入しなければなりませんが 今は頭で数えて記入しているような状態です。 そこで契約更新回数を算出できる関数をぜひご教示いただきたく・・・。 契約更新は年に2回あり、6月1日~11月30日、12月1日~5月30日が それぞれの契約期間です。 例えば2014年3月1日に契約開始したパートタイマーの場合、 2014年6月1日に1回目の契約更新を行い、2014年12月1日に2回目の契約更新を行います。 氏名    契約日      更新回数 Aさん   2014年3月1日    〇回 Bさん   2014年4月21日   ×回 Cさん   2015年8月25日   △回 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 人別に契約日が入力されたデータはありますので、 あるセルに退職日を入力するとこれまでの契約更新回数が 表示されるような関数を組みたいです。 ぜひ教えてください!

  • Accessで契約更新日を出したい

    テーブルに「契約日」と「契約期間」フィールドがあります。 「契約日」が「2003/7/8」、「契約期間」が「6」(月数)だとすると、今日現在では次回の「契約更新日」は「2003/1/8」となります。 このように、今日現在における、次回の「契約更新日」が算出されるには、どういう式をクエリなどで立てたらよいでしょうか? Access2000です

  • アクセスの住所録に増分の住所データを追加するには

    エクセルで作られた表(住所録)を元にアクセスで顧客データを管理していますが、一月に100件から150件増えたり減ったりします。もらったエクセルのデータをアクセスに反映させて更新するにはどうしたら良いか分からず困っています。  一件づつ入力するのは面倒なので良い方法があったら教えてください。  お願いします。

  • 月々の更新回数を調べるには?

    いつもありがとうございます。 例えばですが、7月1日~7月31日までに データベースを更新した回数を求めて、制限するにはどうしたらよろしいでしょうか? ようするに会員制のページに更新回数を制限したいと思っています。 データベースへのアクセス回数は、なにかの変数に+=1で足して 行こうと思っています。 例えば、それが10になったときに、更新ボタンが押せないように するにはifなどで処理制御していきたいと思います。 わからないところは、1日~月末まで数えるということです。 よく、アクセスカウンターとかは月ごとにローテーションを組んで いますよね。 あんな感じで、毎月1日にリセットできるような感じです。 とても難しいと思いますが、どなたかお分かりになりましたら お願い致します。

    • ベストアンサー
    • PHP
  • ACCESSで年数と日付の間隔の算出

    はじめて質問します。 ACCESS2000を使用しています。 DataDiffを使用して[終了年月日]から[開始年月日]の間の、 年数と月数を求めたいのですが。(3年4ヶ月などというように) 1月31日から2月1日とした時に1月とされてしまう点や、負の数が返されてしまう点を改善したいのですが。 宜しくお願いします。

  • エクセルでの更新回数の表示

    契約日から、更新回数が何回来たかを表示する式を教えていただけませんでしょうか。例えば、2002年4月1日に契約したマンションが2年更新で、本日まで何回更新をしたかの回数が表示したいと思っています。上記の場合ですと、2004年の3月30日までは0回、翌日の2004年3月31日で1回、2006年3月31日で2回、2008年3月31日で3回となり、現在は3回の表示となります。次回2010年の3月31日で4回の表示になります。どうかよろしくお願いします。

  • ブログアクセス数は正確なのか?

    2年ほどブログを書いていますが、IPアクセス数に関して、 ある一定の法則があるように感じます。 更新を休むとIP数は減り、同日に複数回更新すれば、 更新した回数により、IP数が増加する。 そのようなデータは信頼できる数値なのでしょうか? 更新を休む日に必ず減るのが気になります。 ブログの場合、その日更新があるかないかは、開いてみないとわからないはず。 なのに、更新の無い日は必ず、減るというのが不思議です。 この2年間の私の実例ですが、 一日一回の記事をアップしたときの、IPアクセス数は仮に平均で200とします。 記事の更新を1日お休みすると、休んだその日のアクセス数は100に。 更に続けて二日連続でお休みすると、2日目は60に。 三日続けてお休みすると35まで落ち込み、 4日目にアップすると、いきなりまた元通りの200になります。 逆に、一日に2記事更新すると、IP数は平均より2割り増しくらいになり、 一日に3記事更新すると、3~4割り増しくらいになります。 複数回カウントされるアクセス数なら理解できますが、IP数なので不思議です。 アクセスIP数って、正確なのでしょうか? どこかで操作されているのでしょうか? 正しいアクセス数が知りたいので、困っています。

  • ACCESS2000でデータ管理をしたい

    現在、ACCESS2000でシステムを作成して、サーバー内のデータの管理を行いたいと思っています。 ただ、あまり知識がないので参考になるような本やサイトがあれば教えて欲しいのです。調べてみたのですが、なかなか見つからず困っています。 作りたいものは、データの更新日時、担当者、顧客情報、データの更新履歴がわかり、条件による保存データの検索ができるようなものです。 よろしくお願いします。

  • 請求データー増やせますか?

    家賃管理業務をやっております。一般の市販ソフトを使用するまでもない管理件数なので、アクセスで対応したいなぁと考えております。 何をしたいかと言うと、毎月賃借人から契約金が入金になります。よって、入金済み、未収金の状況の判別。そして、過少・剰、入金の際に「預り金」というように当月の入金状況がわかるようにしたいと思ったのです。 とりあえず、毎月請求登録を実施し、当月の入金チェックをするといった方法が良いと思い下記のようなテーブルを作成しました。 ------------------------------------------------------- ・契約TB    ・契約内容TB ・請求TB  契約ID     契約金ID   請求ID  契約日      契約ID    契約ID  契約者      入金名目    請求年月           金額      請求科目                   請求金額                   入金日                   入金額 --------------------------------------------------------- 上記の契約内容TBの入金名目とは、毎月の賃料、共益費、駐車場、区費といった名目が登録されることになります。 毎月請求TBを更新することで、9月の更新請求データー、10月の更新請求データーと月を増す毎に請求データーを増すしていきたいのですが、そのようにするにはどのようにしたらよろしいでしょうか。 請求データーに対して入金のチェックをすることで、未収入金額を把握するようにしたいと考えております。 請求TBを更新クエリーにて フィールド:   請求年月    請求科目  請求金額  テーブル :   請求TB    請求TB  請求TB レコードの更新:[何月の更新?]  [入金名目] [入金名目]  契約ID  請求TB [契約ID] として、更新を実行すると、この初回だけは私が希望する年月で請求データーが作成されました。 で。もう一度更新クエリーを実行の際に、「何月の更新?」に対して、任意の指定月を入力すると、前回出来たデーター全てが今回入力した月に変更されてしまうのです。前回作ったデーターを残しながら、新たに指定するデーターが思うように増やせる方法が今自分わかりません。 アドバイスの程よろしくお願い致します。

  • アクセスデータのコピー禁止方法

    御質問させて頂きます。現在、PC本体にはPASSを設定しておりアクセス2007を使用し日々データの更新をしつつ累積データとして顧客管理をしていますが重要顧客情報などが有る為の悩みで、ファイルのコピーに対しては未対策なのです。この点も不安な為何か良い対策はないものかと考えております。何かアドバイスを頂けると有難いのですが。宜しくお願いします。 内容としましては、毎日の作業(入力)をし完了したデータをPC内のハードディスクに上書き保存しています。データコピー及び画面コピーなどに対して制限をかけたいのが目的です。

専門家に質問してみよう