あぁ、徒然なるままに

私の趣味や日々の出来事についてを、自分の独断と偏見による、やや倒錯した文章で徒然なるままに書き記すブログです。

私、何屋さん?(笑)

愚痴ともぼやきとも、自己満足とも自己顕示欲全開とも取れますが。(笑)

会社の資金繰りやって、売上や仕入の集計やって、
一方で基幹業務システムのSQLデータベースから売上伝票のデータをコピーして
情報を整理・抽出すべくAccessExcelを使ってクエリ組んだり、計算式組んだり、
マクロ組んだり。
しかもソフトの開発先に依頼しないで、半ばリバースエンジニアリング
経理の人間のやる仕事ぢゃあないですよね。(笑)


まぁ、聞いて下さいよ。


得意先の現場別で集計表を作る為、伝票データをCSVに吐き出して、AccessExcel
自動集計をかけるクエリと計算式を組みました。
数百明細あっても、電卓を叩く事無く、10分程で一丁上がり。
電卓を叩く時のヒューマンエラーもありません。


自社書式でもOKなら、〆後に内容訂正した請求書の自動作成をするExcelシートも作りました。


しかし、指定請求書となると殆どが複写式なので全部手書きするか、
印刷にはドットインパクトプリンタがないと無理です。


この業界に限らず、色々な所で得意先に「指定請求書」がある場合があります。
自社作成の請求書は受け付けず、向こうは手間を省いて楽をする為に、
「ウチらは楽をしたいんで、アンタらウチのこの請求書を買って、書いて出してね♪」
と言うヤツですよ。
いや、そこまで露骨に言いはしませんが。(笑)


端的に言えば、請求書を買わされる上に、手間ばっかりかかるんですね。
何せ複写式で手書きですから。
その上、提出期限のおまけ付き。
期限までに請求書が着かないと、入金は翌月に廻されてしまいます。
その為、仕方なく遅くまで残業して、手書き請求書を仕上げなければなりません。
自社の集計作業を、半強制的に得意先にやらせてるようなモンですよ。
やらされるコッチの方は仕事ばっかり増えて、たまったモンじゃありません。


そんな取引先が何社も増えてくると、経理サイドだけでなく担当までも総動員で、
膨大な明細を、伝票を見ながら現場別にひたすら請求書に書き込む事になります。


そこで、売上伝票の明細データから現場別に集計し、指定請求書に打ち出すシステムを
導入する事になりました。
今までの基幹業務のシステムはそのままで、その売上伝票のデータさえ新システムに
受け渡す事が出来れば、登録した書式に素早く、綺麗に打ち出す事が出来ます。


しかし、問題はまだまだ山積。


従来の基幹業務システムには、データの吐き出し機能が全く無いのです。
これが致命的でした。


そこで、印刷する時の出力帳票イメージオーバーレイの範囲指定した部分から、
文字情報を抜き出してCSV化すると言うソフトが社内にあったので、試行錯誤しながら
CSVデータの作成に成功し、そのCSVデータを基に集計するシートを作成しました。


しかし新システムでは、もっと細かく集計をかけたり、担当別・商品別で更に
集計をかけなければならない為、従来のCSV作成方法では、データ化できる項目が
少なすぎるのです。
(帳票に出力されない、伝票レベルでの情報が必要)


さぁ、困りました。
現行のシステムから、どうやって全伝票データを抜き出すか。


基幹業務システムは、データベースにSQLを用いて、VBで組まれています。
データベースも、Accessは多少いじった事がありますが、SQLは殆ど解りません。
まずどうやって中身を覗くか、そこから開始です。


AccessでもExcelでも、SQLのデータソースにアクセスして、直にデータを
入力・変更する事は可能です。
早い話、AccessExcelを、SQLのフロントエンドにしてしまうんですね。
しかしそこまで出来るのは、SQL構文やプログラムを平気で組める人限定。
私には無理です。


そこで、AccessからODBCドライバを経由してSQLのデータソースにリンクしました。
サーバをリモートデスクトップで覗いて、SQLエンタープライズマネージャから
データソースのパスを確認、アクセス権とマウントするAccessファイルの指定、etc・・・


どれが必要な伝票の核になっているテーブルか判らないので、とりあえず全部指定。
「うわ」
ぞろっと、マスタテーブルとデータテーブルの一覧が。


順次覗いて行くと、今は使われていなかったり、直接関係ないテーブルが殆どで、
欲しかったデータの格納されているテーブルは2つに絞り込めました。


しかし、中身を見てみると・・・
明細の中で一番肝心な数量と金額の部分が、ブランク又はゼロの羅列になっています。
「な、なんですとっ!?」
リンクしている状態では、数字属性の項目は正確に表示されないのでしょうか?
ODBC経由で参照している為、項目の属性は変更不可ですし。
しかもヘタに入力したら、情報の書き換えだけは簡単に出来るので、
伝票データが壊れる可能性も大。
今、まさにリアルタイムで動いているシステムなので、それは余りに怖過ぎます。
結局、この方法は却下。


さぁ、また困りました。
何か別の方法は無いモノか・・・
腕組みして知恵熱を出し、頭から湯気を上げつつ考えます。


SQLサーバのエンタープライズマネージャを見て、一つピンと来ました。
「データのエクスポートをしたらどうだ?」
直接参照して取り出すのではなく、SQLデータソースのテーブル情報をそのまま
Access形式に変換して吐き出してしまえば、単なるコピーデータだし、動いているシステムに
悪影響は全く無いはず。
仮にAccessのテーブルデータが壊れても、またSQLサーバから吐き出させればOK。


データ変換ウィザードを立ち上げ、Access形式に吐き出したテーブルを見てみると・・・
数量も金額も、全部載ってる!よしっ!


データさえ抜き出せられれば、後は得意先別・期間別でも何でも、抽出条件をかけて
データを加工するのは容易い事です。
・・・計算式は考えないとなりませんけどね。


試しにクエリで簡単な計算式を書き、期日の範囲と得意先を指定・・・
抽出されたデータをExcel形式に吐き出し、オートSUMで合計すると、
先月の請求書に書かれていた額とビンゴ。よしっ!
消費税が誤差で載っているものの、金額×5%四捨五入の計算式に書き換え、合計・・・
これもビンゴ。よしっ!


一応、骨格は完成しました。
これでソフトメーカーに依頼しなくても、後は時間さえあれば何とかなるかと思います。
依頼したら、平気で数十万はかかるでしょうから・・・
経費削減、倹約倹約ぅ♪(笑)
ぶちょー、アタシ頑張って依頼せずに済んだんだから、ちょっちお手当て下さいな♪(爆)


CSVデータフォーマットの再定義。
顧客別のデータ作成方法と、集計のクエリと計算式構築。
データの体裁を整える作業の自動化マクロを顧客別に作成。
指定請求書印刷だけに新システムを使う為、毎月、現行システムから
データを抜き出す手順のマニュアル化。
出来たデータを新システムに流し込んで、請求書を印字する作業のマニュアル化。


まだまだやる事は山ほどありますが・・・


新システムが本格導入されるまでは、まだ時間があります。
日常業務と平行して、少しずつ組み上げて行きますよ。


・・・しかし、くどいようですが、経理の人間のやる仕事じゃありませんよね。
私、何屋さん?(笑)



最初の仕事の時の、営業管理システム構築。
税理士事務所職員だった時の帳票の計算式とマクロ、仕訳集計・・・
私はどれにも部分的にしか参加していませんでしたが、これら過去の仕事での知識が、
今、非常に役立っています。
実にありがたい事です。