質問というより意見交換なのですが、先日、一部上場企業のSEをしている友人と飲んでいる中で
「Accessを社内の基幹DBシステムとして採用するのは企業としてよくない」という話をされました。
友人曰く、「VBAは変更のヒストリーが残らない、どこをどのように変更したかが分からない、コードレビューがし辛い」というのが理由だそうです。
私はVBA以外触れたこともなければVBA自体も最近触れ始めたのでよく分からないのですが、ここで活動されている皆様はVBAやAccessについてどのような意見をお持ちでしょうか?
「よくない」でしょうね
ただまぁ、質問にある指摘は「金で解決できる問題」であるとも思いますが
個人的には状況によると思います。
例えば30~50人程度の会社の基幹DBで、1~2人の限定された開発人数で構築する場合、コストや開発情報の多さなどを考えるとそれほど悪くないと感じてます。
SQL Serverなどを使うと環境を用意するだけで簡単に200万円以上かかりますし。
またWindows環境の会社でADを主体としたファイル管理を多なっている場合はかなり便利です。
2016のあたりから今と同じように「もう終わる」みたいなことを囁かれていますが、2024年のいまでもまったく普通に使えます。
10年~20年とか基幹システムを使うとどこかでアップグレードしたくなるので、その際にシステムを変える等でもいいかと。
つまりとっかかりのシステム構築を行うと考えた場合はかなり優れたシステムだと言えると思います。
会社の規模感と開発に携わる人数の問題なんですかね。
あと、コスト、ですかね。
案件や状況によりけり、としか言えないのが難しいところですね。
質問内容が「Accessについてどのような意見を持っているか」なので、日頃Accessを選択する場合の理由になることを書いてみました。
やはり小~中の企業でシステム周りにあまりお金をかけたくない、というところは多くそういった場合に提案されることはまだまだ続くと思います。
SEから見ればコスト度外視で開発が楽な環境にしてくれとなるでしょう。質問にある指摘はそれだけとは言いませんがその面が大きく出ているように思いますね
企業から見れば、企業の実態に見合ったシステムの要件と、コスト(導入コスト・ランニングコスト)、時間(開発時間や運用に関する時間(これは≒システム要件))が問題です。開発・メンテナンスのしやすさなんてものは評価に値しません
それらは全てひっくるめて結局、できるのか?いつまでに?いくらで?で判断されることです
会社の大小によって、これらの評価の閾値はかわるでしょうが、これらが評価項目であることに変わりはないでしょう
ACCESSは貧弱なのでシステムの要件という大前提のもとNGとなる場合もあります。「要求を十分に満たす」となればコストパフォーマンスは高いと思います
実際、大掛かりなシステムでもフロントエンド(の一部はACCESS)という場合もあります
繰り返しますが、ACCESSは特定の条件に於いて「十分である」という評価をつけることはあります。これは「よい」ではありませんし、なんなら、大規模化を望めないという観点から「よくない」とするのが一般的な評価ではないか?というのがhirotonの考えです
まぁ、「一般的」などという特殊な環境なんてそうそうないとも思ってますが
ACCESSとVBAは切っても切れない関係ですが、同一のものではありません。VBAだけなら覚えなくてもいいんじゃないかなぁとも思います。ACCESSを使うなら覚えないわけにはいかないですが
時代は「クラウド」で「ノーコード」で「RPA」だ、なんで、いままで「office」で「VBA」でなんて言っていたのは今や特別必要というわけでもないのでしょう
ACCESSのような「手軽さ」も特別感のあるものではなくなってきました。ACCESSがいらないのであれば、必然VBAの必要性も無くなります
hirotonのまわりはまだまだサブスクリプションに拒否感を受ける人も多いようで、「スタンドアロン」で「買い切り」で、が決め手になる場合もありますが、システム選定の幅はかなり広がっていると思います。「同等の知識はあるが、ACCESSやVBAは知らない」という人がいてもおかしくない時代じゃないでしょうか
余談
VBAの兄弟分でもあるVBScriptがとうとう非推奨になってしまいました
https://learn.microsoft.com/en-us/windows/whats-new/deprecated-features-resources#vbscript
VBA,VBScriptの手軽さ、便利さはWindowsを使うにあたって有用なものだったんですが、そういう付加価値もなくなってくるとやはり、VBAにも消極的な姿勢にならざるを得ないかなぁと感じています
遅まきながら参加させてください(汗)。
hiroton さんがレスされていたように、時代は「クラウド」で「ノーコード」で「RPA」だ・・・とは思います。
自分は前任担当者が作りこんだRPAを使っている立場(エラーが出たら、そこだけ人力で解決する)ですが、
周りでVBA信者?みたいな人がいるので、困っています。
先日もインターネット上にアップロードするファイルのファイルサイズをチェック(1ファイルあたりの
上限が決まっている)するのに、「VBAで組んだらチェックできるし」と言われて目がテンになりました。
いやいや、そもそも「ファイル準備するときに担当者がファイルサイズ目視して確認すれば良くね?」って
思うんですよね。
RPAの処理のなかにアレコレ組み込みすぎると、その人がいなくなった時にメンテできなくなりますし、
困るじゃないですか。
(もともとRPAで参照しているDBがAccess DBなので、個人的にはRPAでも複雑な分岐処理を入れるのは
良くないと考えています。)
RPAだって万能ではないのに、VBA無敵?みたいな感じで「24時間、ノーチェック(要は無人でOK)で
処理できるから」と言い出して、他の担当者と「いや、それ無理ですよ」って伝えたのですが、
聞く耳持たず。。。
そもそもネットワーク遅延などの外的要因も関係するのに、「VBAサイコー!」とか「RPAは何でもOK!」
みたいな考えは(ご本人は自分のプログラミングスキルなどに自信があるのかもしれませんが)
キケンだと言いたいです。
こっちは運用のこととか、業務のことなどを広い視野で見て&考えて意見を伝えているのですが、
「自分が正しい」とか逆ギレしそうなので(昨年、外に出すモノの品質に問題があったので
問題点を伝えたところ、「自分が確認しているんだから問題ない!」と強い口調で言い返されたので、
それ以降は「知らぬ存ぜぬ」で当人に伝えることを諦めました)、
マジで困っています(泣)。
あ、愚痴みたいになってしまってスミマセン。。。