ACCESS2010 VBAの画面を開こうとするとコケる [ACCESS]
ACCESS2010を使い出して、ここの記事用にいくつかACCDBファイルを作って作業しているのですが、VBAの画面を開こうとすると、ACCESSが停止する現象に遭遇してました。
一度これが発生したACCDBファイルは、その後100%同様の操作で停止します。
最適化しても改善されません。
これでは作業にならないので、ちょっと調べてみたところ、サポート情報がありました。
http://support.microsoft.com/default.aspx?scid=kb;EN-US;2625046
(英語)
2011/9/30掲載の情報のようです。
SP1を適用すると起こる不具合のようです。
2011年10月のアップデートで修正予定なんだそうです。
コマンドラインから、「/decompile」オプションを付けて起動することで、この症状を修復できるようです。
でも、またいつ起こるかは、RANDOMらしいです。
システム設計の話 その2・売上管理の業務について [システム設計の話]
売上管理の処理内容について、考えていこうと思います。
まずは、実際の業務が存在していなければ、システムは構築できないので、仮想のシチュエーションをでっちあげます。
まずは、業務を行っている会社の設定です。法人の事務所を対象に、文房具などの事務用品を販売している商社とします。アスクルみたいなやつ。
日々の業務として、営業さんがお客さんから注文を受けて、商品の納品を行っています。
売上は月ごとに集計し、その結果を経理へ報告し、経理はお客さんへの請求を行います。また、営業実績の成績表みたいな物も、月一回作成しています。
ざっくりですが、こういう仕事をしている商社があると想定します。
この業務をシステム化していきます。
業務をさらに細かく定義しています。
また、業務を行うタイミングも、明確にしておきます。
○日次業務(毎日、または発生したらすぐに行う業務)
・注文受付
お客さんからFAX・電話・メールなどで、営業担当者に注文を行う。
営業担当者は、注文票に内容を記載する。
・ピッキング
注文票を倉庫担当者に渡す。
倉庫担当者は、注文商品を倉庫から出庫する。
注文商品を、営業担当者に渡す。
・納品
営業担当者は、注文内容から、納品書を作成する。
営業担当者は商品と納品書を客先へ納品する。
・売上処理
営業担当者は、納品した内容から、売上伝票を作成する。
○月次処理(月に1回行う業務)
・経理への報告
営業担当者は、1ヶ月間の顧客ごとの売上伝票をまとめて、経理へ提出する。
・請求処理
経理担当者は、売上伝票を元に、顧客への請求業務を行う。
・売上実績集計
1ヶ月間の売上を、実績表にまとめる。
という感じで、こんなことをやっているんだという事にします。
システム化されていない、ということにして、これらはすべて手作業で行っているとします。
さて、とりあえず私が思いつく限りを書き出してみたのですが、今回考える売上管理システムでは、これらすべてをシステム化するわけではありません。売上管理に関する部分のみをシステム化します。全部やってると大変なので。
赤文字の部分を売上管理システムの範疇とし、システムで行う事にします。
次に、システム化した場合に、業務がどのようになるかを考えて行きます。
まず、日次から。
注文を受けて、納品する商品が揃うまでは、今までと同じ作業とします。
その後の段階で、納品する商品が決まった状態、つまり売上の内容が決まった段階で、売上内容を、システムに入力するとします。これを、「売上入力」とします。
売上の内容がシステムに入力されれば、その内容を元に、納品書を作成することができます。これを、「納品書印刷」とします。
そして、売上伝票の作成も、同様にシステムで可能になります。これを、「売上伝票印刷」とします。
売上伝票については、システム化されることで不要になるかも知れませんが、紙の状態でファイルに綴じて残しておくっていうのも、よくあることだと思います。
次に月次です。
経理への報告は、現状売上伝票の束を渡していたとします。システム化にあたって、経理が処理しやすい形式をヒアリングして、その形式で帳票を印刷することにします。これを、「経理売上報告書印刷」とします。
売上実績表も、作成内容をヒアリングし、その形式で印刷可能な帳票を準備します。これを「売上実績表印刷」とします。
これで、なんとなくシステムの内容が明確になってきました。
売上管理システムによって、業務内容は、以下のようになります。
○日次業務(毎日、または発生したらすぐに行う業務)
・注文受付
お客さんからFAX・電話・メールなどで、営業担当者に注文を行う。
営業担当者は、注文票に内容を記載する。
・ピッキング
注文票を倉庫担当者に渡す。
倉庫担当者は、注文商品を倉庫から出庫する。
注文商品を、営業担当者に渡す。
・納品
営業担当者は、納品内容を、「売上入力」から入力する。
営業担当者は、「納品書印刷」で、納品書を印刷する。
営業担当者は商品と納品書を客先へ納品する。
・売上処理
営業担当者は、「売上伝票印刷」から、売上伝票を印刷する。
○月次処理(月に1回行う業務)
・経理への報告
営業担当者は、「経理売上報告書印刷」で、経理売上報告書を印刷し、経理へ提出する。
・請求処理
経理担当者は、経理売上報告書を元に、顧客への請求業務を行う。
・売上実績集計
「売上実績表印刷」で、売上実績表を印刷する。
青文字の部分が、システム化される内容です。
項目数が減っていないので、システム化による作業の効率化があまり分からないような気がしますが、今まで手書きで作成していた書類が、システム化により、画面がから一発で印刷できるように変わります。実際の打ち合わせでは、その辺をアピールします。
また、売上伝票印刷については、システム化により不要な作業と判断される可能性もあります。同じ内容がシステム上に残るので。
さてさて、売上管理システムの機能がざっくり決まってきました。
次は、テーブルやプログラムを作るにあたって、必要な情報を集めます。
システム設計の話 その1・前置き [システム設計の話]
さてさて、ようやくですが、システム設計について少し記事を書いていこうと思います。
簡単な例で、実際にDBやプログラムを作りながら進めて行こうと思いますので、進行はかなりゆっくり目になると思いますが、興味のある方は、気長におつきあい頂ければと思います。
作っているうちに、気が変わって、後帰って修正とかもすると思います。その辺ご了承ください。
と、前置きはこの辺で。
システム設計の話、といっても、教科書的な概論じみた話ではなく、実際にシステムを作っていく過程で、どんなふうに考えて、仕様を決めていくか、と言うのを、順を追ってまとめて行きたいと思ってます。
で、今回の題材は、一番わかりやすいと思われる、売上管理のアプリを一つ考えてみようと思います。
売上管理、と言っても、業務形態によっていろいろなタイプがあります。
例えば、一番身近な所で、コンビニやスーパーで買い物した時のレシートのような売上データの管理があります。これ、単純なようで、顧客数・売上商品数・売上データの数が膨大になることが多いので、大変です。
対消費者からちょっと離れたケースでは、事務所で使う消耗品などを納品する業者の売上管理。得意先や扱う商品が上記の例より絞られます。
これらは物を売るケースですが、物以外にも、売上となる物は多様に存在しています。ちょっとかわったやつで、家賃収入の管理や、ホテルなどの宿泊費など。この辺になると、その業種の世界の事なので、細かな事は、普通はあまり知る機会がないと思います。
今回は、簡単な売上管理と言うことで、ある程度顧客や商品数が絞られたシステムを例に考えてみようと思います。
いつ、誰に、何を、どれだけ売ったのか、を管理するシステムです。
文房具屋に行くと、売上伝票っていうのを売ってますが、あれっぽい内容を、DBで管理するようにします。
売上管理と似た名称で、販売管理という名称もよく使われています。明確な定義はないとと思いますが、私のイメージ的には、販売管理の方がシステムで管理する範囲が広いと思われます。
具体的には、売上が上がる前には、見積作成があります。また、売上の後には、売上金の回収があります。世の中で売られている販売管理という製品は、概ねこの辺の機能も持っているようです。
今回の例は、あくまで売上をデータにする部分だけを考えますので、売上管理という名称で行こうと思います。まぁ、どうでもいいか。
ついでに脱線しますが、見積もりの部分を見積管理、売上の回収を債権回収として、別のシステムとして切り分けて構築する場合もあります。
実際の業務を考えると、業務のデータの流れはこれにとどまらず、例えば、売上や集金したお金の情報は、帳簿を作成する仕訳データになり、これを扱うのが会計システムになります。
会計システムでは、売上以外にも、会社の経費や、人件費なども扱います。
人件費は給与システムから作成されます。
給与を計算するための勤務時間等の管理は、勤怠システムが行います。
また、売上システムの別方向を辿ると、売上商品を管理するための在庫管理システムや、欠品情報の管理や、商品を注文する発注システムなどが関連してきます。
業務の数だけシステムがあるといった感じです。
こういった一つ一つの業務システムが、互いにデータを連携することで、大きなシステムとして機能している場合もあります。
前置きが長くなりましたが、次は、売上管理について書こうと思います。
住所入力支援 郵便番号から住所を自動表示する [ACCESS]
住所の入力を行う際、郵便番号を入力したら、対応する住所を自動で表示させる機能です。ACCESSの標準機能で、プロパティの設定だけで、簡単に利用できます。
・手順
1)フォームにテキストボックスを配置する。
郵便番号と住所のテキストボックスをフォーム上に配置します。
今回、住所は「都道府県」「市区町村以下」「その他」の3つに分けます。