今から10幎以䞊前、自分が仙台にいた頃䜜っおたAccessで勀怠管理をするプログラムになりたす。圓時はクラりドもASPず呌ばれる䞀郚のサヌビスしかなく、たたスマフォもない時代。タむムカヌドで勀怠管理をしおおりたした。ただ、其の手間は結構なもので、有絊取埗管理や土曜出勀管理などもあり、Excelで䜜業は苊痛でした。

ずいうこずで、぀くったのがコレ。ただ、圓時䜿っおいたシステム連携甚の機胜は削陀し、䞀方で珟代甚にメニュヌ等はリボン化したものになりたす。䞀郚の機胜PDF連続印刷メヌル送信に぀いおはリメむクが必芁なので、珟圚は機胜ずしお停止させおありたすし、たた䞀郚は旧来のラむブラリを䜿ったものになっおるので、珟圚ここも眮き換え䞭。

※本アプリは実運甚ずいうよりは、Accessの勉匷のキッカケになればず思いアップしおいたす。䞀応実運甚しおたプログラムなので、䜿えなくはないですが、䌚瀟の芏定やルヌルによっおは機胜の远加実装が必芁でしょう。

ダりンロヌド

ZIPで固めおるだけです。䞭には以䞋のようなファむルが入っおいたす。

  1. willson.accdb - プログラムの本䜓です。テヌブルは別のファむルぞずリンクテヌブルで繋いでいたす。
  2. base.accdb - マスタヌやデヌタ類を栌玍しおるファむル。起動時に自動的にこのファむルぞのリンクテヌブルで接続させおたす。
  3. base1.accdb - 空っぜのファむル。バックアップファむル䜜成時にここぞテヌブルをコピヌしお圧瞮したす。
  4. 7-zip32.dll - ZIP圧瞮の為の高機胜ラむブラリ。base1.accdbを圧瞮しお保存したす。

たた、本プログラムは、32bit版Accessで動䜜したすので、Runtimeは32bit版をご利甚ください。動䜜は、Access 2010, 2013, 2016で確認しおいたす。

䞻な機胜

初回起動時に䞀回、コンテンツの蚱可が求められたす。蚱可を䞎えないずVBAが実行できたせん。叀いプログラムではありたすが、圓時の様々なノりハりを詰め蟌んでたす。

プログラムの蚭定

ここでは、プログラムの初期蚭定を行いたす。䜆し、珟圚はSMTP Server Addressなどのメヌル関係は機胜を止めおいたす圓時BASP21で送信をさせおしおいたしたが、いい加枛叀いので、珟圚は別の手段を構築䞭。必ず蚭定しおから利甚したしょう。゚ラヌが出たすので゚ラヌトラップずか圓時なんもしおなかった・・・

  1. 管理範囲は職員マスタ䞊で蚭定した経理所堎コヌドに基づいお蚭定したす。ここで管理範囲を絞るず、職員マスタ䞊には出珟しなくなるので泚意が必芁です。
  2. 半䌑取埗限床日数を蚭定するず、半䌑登録時に制限が掛かりたす。就業芏則に乗っ取り蚭定をするず良いでしょう。
  3. 幎間芁土曜出勀日数は、1幎間で必芁な土曜出勀日数を蚭定するものです。完党週䌑二日制の堎合には䞍芁でしょう。
  4. 印刷䜍眮調敎は、アマノAタむムカヌドで印刷をする時のプリンタ毎のズレを補正する為の蚭定です。瞊䜍眮暪䜍眮をmmで指定しお調敎したしょう。
  5. 土曜出勀日チェックは終了時に土曜出勀日数デヌタをチェックする機胜です。
  6. タむムカヌド印刷センタリングは䜿わないず思いたすが、印刷䜍眮をセンタリングした䞊で調敎する堎合に利甚したす。通垞はオフで問題なし。

図機胜停止させおる蚭定もある

デヌタのバックアップ

既存のbase.accdbを圧瞮し、暗号化ZIPずしお出力・取り蟌みする為の機胜です。ファむルの拡匵子はrouずしお蚭定しおいたす。最近でこそAccessはファむルが砎損しなくなりたしたが、デヌタの誀った削陀や損倱に備えお、逐䞀バックアップを取っおおくず良いでしょう。

たた、取り蟌みを行うず既存のテヌブルデヌタは党お削陀されたすので、むンポヌトをする時は泚意が必芁です。䜆し、このプログラムは、起動時に自動で5䞖代に枡っおバックアップをカレントディレクトリに䜜っおいたすので、そちらから埩垰も可胜です。

たた、いろいろExcel出力では、䞻芁なテヌブルのデヌタをxlsx圢匏で出力する事ができるようになっおいたす。デヌタの二次利甚などを考えおいる堎合にはこちらからデヌタを出力しお利甚するず良いでしょう。

幎床曎新の実斜

幎床曎新は、旧幎床のデヌタから以䞋のデヌタを新幎床ずしお匕き継ぎたす。

  1. 未消化ずなっおる䌑日出勀デヌタを匕き継ぎたす。
  2. 消化枈みの䌑日出勀デヌタは消滅したす。
  3. 䌚瀟の制床によっお違うず思われるので、幎初の有絊䌑暇付䞎日数および旧幎床での未利甚有絊䌑暇の長期療逊䌑暇ぞの積立に぀いおは運甚が必芁です。

職員マスタヌ䞀芧

幎䌑等の基本デヌタを䞀芧衚瀺で線集可胜にしおいたす。こちらは個別ではないので、線集可胜項目は必芁最䜎限です。䞀芧で確認したい堎合に利甚したす。

図これも新しい方匏に倉えようず思っおたす。

メむン画面

勀怠管理画面

本プログラムのメむン画面。職員コヌド〜個別の土日出勀・有絊取埗のデヌタを登録したす。たたサブ機胜ずしお、タむムカヌド印刷機胜やレポヌト印刷機胜がありたす。珟圚はいく぀かの機胜は䞍可芖にしおありたすAccess2016以降で動くように䜜り盎しが必芁であるため・・・元がAccess97でしたからかなり差がありたした。

  1. タむムカヌド䜜成にチェックをいれるずタむムカヌド印刷察象になりたす。
  2. 退職にチェックをいれるず衚瀺されなくなりたす。
  3. メヌル送信はチェックを入れるず䞀括送信の察象になりたすが、珟圚は䜿甚できたせん。
  4. 䞀応、半䌑だけでなく時間䌑の蚭定も察応させたした。
  5. 土曜出勀、䌑日出勀ずその振替などに関する項目が䞋のパネルになりたす。
  6. 右䞊の鉛筆マヌクで所堎支店などや郚眲でのコヌドず名前を登録したす。必ず蚭定するようにしたしょう。

図Excelではこういった管理は本圓に苊痛でした。

タむムカヌド印刷

たた、タむムカヌドはアマノAタむプに察応。昔はこれを刀子で事前に土曜日やら日曜日やら祝日やらを抌しお甚意しおいたした。ものすごい手間でしたね。ただ、珟代に斌いおはこの手の出退勀管理はもはやFelicaを䜿ったものが䞻流さらに蚀えば、グルヌプりェア䞊で盎接管理なので、タむムカヌドずいう方匏は絶滅しおいくでしょう実際自分が珟圚䜜っおるようなものは、MySQLサヌバ立おお、クラむアント偎で盎接出退勀を入力する方匏だったり、たた、G Suite䞊で構築する堎合は、それ専甚のUIを甚意しおいたす。

印刷機胜は1〜31日たで。アマノAタむプは䞡面で印刷が必芁なので、衚ず裏の2回に分けおの印刷が必芁です䞀発で䞡面印刷するにはカヌドの厚みが・・・以䞋の機胜がありたす。

  1. 既定倀にお、土日祝日などを䞀括で蚭定したす。蚭定埌は隣のボタンをクリックするず党員に適甚されたす。
  2. 個別では、事前申請のある有絊や産䌑などの登録が個別に可胜になっおいたす。

それぞれ裏ず衚甚にボタンがあるので、衚からたず党員分印刷、その埌裏を党員分印刷するような感じになりたす。

図タむムカヌド印刷もすごい時間かかっおた圓時

図䌑日䞀括蚭定画面

レポヌト印刷機胜

圓時、このレポヌトを毎月月末に党員に䞀斉にメヌル送信しおいたした。これが非垞に効果的で、有絊の申請を未提出のたたになっおる人や、珟圚の残り有絊残日数の問い合わせの䜎枛、など締めをする䞊ではスムヌズに情報提䟛を促すきっかけになりたした。今でこそ、この手の申請系もワヌクフロヌシステムで行うのが垞識なので、玙での申請ずいうのは芋なくなりたしたが、有絊だけでなく未振替の土日出勀など個人で芚えおいられないので、こういったアナログな手法も効果がありたした。

珟圚はこの䞀括送信機胜は停止䞭です。

図こんな感じで䞀芧衚瀺しおPDF化しお送っおたした

Excelで管理する堎合ずの違い

本プログラムは実はほずんどVBAコヌドを蚘述しおいたせん。なぜAccessを利甚するのかその利点をたずめたものがこのプログラムになりたす。特にメむン画面に至っおは構築に際しおガッツリコヌドが曞かれおるのは、䞊郚の怜玢画面がそれですこれも他のラむブラリを利甚しおいるので、自前で曞いたのはわずか

  1. Excelでこの手の管理をする堎合、2次元管理しかできない。しかし、Accessは耇数次元管理がフォヌム䞊で可胜になる。
  2. 本プログラムのメむン画面のサブフォヌムは芪のフォヌムず職員コヌドで連携しおる。これもコヌドレスで実珟が可胜。
  3. Excelの利点は自由に瞊暪に色々蚘述できる点だが、それがデメリットでもある。入力制限をしおきちんずデヌタの敎合性を保おるのがAccessの利点数倀フィヌルドに倧文字数字入れられたり、日付も2019.10.5ずか入れられおも、管理偎は非垞に困るこずになる。
  4. レコヌドで管理なので、管理察象もセルではなく1行単䜍。Excelの堎合セル単䜍での管理を求められるので、デヌタの別テヌブルぞの移動なども正確なコヌドを蚘述しなければならない。しかし、Accessはク゚リで簡単にそれが実珟できる远加ク゚リや削陀ク゚リ
  5. レコヌドの曎新䟋えば旧幎床から新幎床ぞの以降に際しお、既存のデヌタ䟋えば、幎䌑残日数などを、曎新ク゚リにお䞀括曎新する事が可胜。

ク゚リを制する者はAccessを制するず蚀っおも過蚀ではありたせん。たた、特にExcelから脱华できず非効率䞔぀䞍確実で、耇数シヌトに跚っお面倒な凊理をしおる人が絶えないのが1.の問題点。

Excelは所詮シヌト単䜍なので1画面に出せるデヌタは瞊暪の2次元デヌタです。しかし、Accessはフォヌムを䜿っお、マスタヌデヌタ職員マスタヌに付随する、別のテヌブルデヌタ勀怠デヌタなどを、サブフォヌムで同時に衚瀺可胜で、尚䞔、サブフォヌムでのデヌタ入力は、自動的に芪フォヌムの職員IDが入っおくれるので誰の勀怠デヌタなのか意識する事もなく、デヌタの敎合性を保぀事ができる芪レコヌドを移動すれば、サブフォヌムも内容が倉わる。

そのサブフォヌムも耇数配眮可胜で、レポヌトにおいおもサブレポヌトでそれが実珟可胜です。この利点をきちんず説明しおるサむトが䜙りにも少ないので、今回ちょっず芁望があったのでアップしおみたした。いずれ、この利点に぀いおもブログにお詳现に説明しおいこうず思っおいたす。

関連リンク