最近、販売管理プログラムの修正も粗方終わってしまったので、C#の勉強を始めてみた。以前、C#で短いプログラムを書いたことがあるのだが、本格的に勉強するのは初めて。

C#を触ってみて感じたのは、販売管理のような大きいプログラムを自作するには、とてもC#では無理だと思った。チームを組んで作成するのなら、オブジェクト化してチームのメンバーが使えるようにする必要もあるのだろうが、一人で作るならその必要もない。
Accessの.accdbファイルは壊れやすいと言われていて、実際、よく動かなくなる。なので、デコンパイルは頻繁に行っている。C#ならビルドしてしまえば、壊れることはないのだろうが、なんせ知らないもので、プログラム作成中に名前の整合性がなくなったり、バインドしているデータベースの内容が消えてしまったりするようだ。実際、データが消えるほどまだ使ってないのだが、AIに聞くと「こういった事故が多いので設定をこうした方が良い」とか言ってくる。

Accessなら数時間でできそうなことが、C#だととてもそんな時間でできそうもない。慣れてないという以前に工程が多い。
SQLiteに保存したデータを読み込んで一覧表示する。その後、並びを変えたり、フィルターをかけたりするのに、いちいちデータを読み直さなければならない。AccessならOrderBy、Filterを設定するだけなのに、、、 

まあ、メンドクサイ。

Accessが使えたところでプログラムが書けるとは言えないのかもしれないが、わざわざ手間のかかるツールを使って自作する必要は全くないと思う。コードの継続性を考えてみても、20年以上前に書いたコードがそのまま使えるなんて、他のGUIツールだとありえない。VB6でさえ、サポート外になってしまっている。現在ノーコードとか喧伝されているツールにしても何年使えるかわかったものじゃない。

クラウド型を業者から勧められることが多いが、バックアップ作業一つとってみてもローカルにデータを置いてある方がはるかに楽。業者がクラウド型を勧めるのは、アプリケーションの管理が一元化できることもあるのだろうが、使用料のとりっぱぐれがない面も大きいと思う。クラウド型ならアカウント数を厳密に管理できる。
実際、使い易さということになると、オンプレミスの方が断然使いやすい。管理にしろ、動作速度や表示画面にしてもそうだ。

しかもコードの継続性がないとなると、定期的に買い替えなければならなくなる。
中小企業でDX化が進まないとよく言われるが、市販のアプリーションを使っていれば、アプリに合わせた作業をしなければならないのでDX化が進むわけがない。特定の得意先、仕入先、商品で請求書や発注書の発行の仕方が異なる場合は普通にある。自作しているのなら、それぞれの場合に対応できるが、市販のアプリだとそういうわけにはいかない。しかも、こういうケースは年々増えている。


請求書一つとっても、以前は紙請求書の保管が義務付けられていたから、紙で発行、郵送しかなかった。それが「処理を急ぐので、とりあえずFAXで直ぐに送ってほしい」という客先が増え、現在でも30件以上ある。
それが「メールで送ってほしい。電子文書で保存するので、紙請求書は送らないでほしい。」という得意先が現れ、場合によっては、CSVでデータをアップロードしてほしいというところもある。
紙請求書の場合は専用請求書で郵送、あるいは専用請求書をPDFでメールという場合もある。
紙、紙専用請求書、FAX、PDF化した請求書をメール、CSVデータでアップロード。
これを市販のアプリで対応できるものだろうか、DX化が進まないのも無理もない。

最近、Accessそのものが「古い!」とか、「データ流出の危険がある!」とか言われて風当りが強くなっているが、中小企業の事務省力化にAccessは非常に有効だし、市販のアプリ使っていても手間がかかるばかりで、とてもDX化どころの騒ぎではないと思うのだ。