![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
MS ACCESSにて作成しました業務ソフトをMDB形式ではなく
他のデータベースへアップグレードしようと考えておりますが
下記の点を考慮してどれが良いものか判断しかねております。
アドバイスなどお願いできますでしょうか。
[アップグレード要点]
1.フロントエンドにMS ACCESSを使用
2.コスト的にデータベースはフリーのもの
MSDE,SQLServer2005Express,PostgreSQLを候補
3.利用端末は7~10台を想定
4.他の事業所へ配布し簡単にセットアップが可能
SQLServer2005Expressは無料ではあるのですがインポートと
エクスポート機能が使えないなど制限があるらしく結局上位の
有料バージョンへ移行を強いられるのかと感じています。
ご利用された方の感想でも結構ですのでアドバイス頂けると幸いです。
よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
>>ただSQL ServerであれPostgreSQLであれADOでゴリゴリとコーディングを
強いられるのはあまり変わらないように思うのですが如何でしょうか。
画面作成ツールなど、それなりの画面や帳票サポートソフトにお金を出さないなら、どちらでもゴリゴリになりますね。まあ、最初のゴリゴリは我慢しても、開発途中の仕様変更や機能拡張などが同時多発すると、ゴリゴリはイヤになります。
>>例えば入力フォームやレポートの作成などでSQL Serverを使えばPostgreSQLを使うより遥かに高率的で便利であれば利用を考えたいと存じます。正直この部分が現在手探りの状態であります。
入力フォームに関しては、SQL ServerでもPostgreSQLでも、手間はあまり関係ないですね。SQL Serverが有利なのは、DBのバックアップとか、非定型な処理を、SQL等でちょこちょことやりたい場合などでしょうね。雑用的な仕事がACCESSっぽくできたりして、楽です。
なお、入力フォームやレポートは、アシストやウイングアーク、グレープシティ等、各社が発売している開発ツールを購入することなると思います。値段は、数万円のものから100万を超えるものまでいろいろあります。このツールの選定を誤ると、「やりたいことができない!」って後悔することもあります。
このツールへの出費を惜しむと、ゴリゴリ地獄に堕ちることになると思います。
個人的には入力フォームへの要求があまり厳しくないなら、Ruby on Rails2(無償)でチャレンジってのもいいのでは?と思いますけどね。(でも、私はRails2はまだ使っていない・・・)
ツールの情報など非常に参考になります。ありがとうございます。
非定型で雑処理についてはODBCでリンクテーブルとして
accessのDBのごとく楽をしようかとも考えております。
お教え頂きましたツールの内容を見てみます。
Ruby on Rails2(無償)が非常に気になります。
ADOのコーディング地獄ってやはり不安で、できれば避けたいです。
ありがとうございました。
No.5
- 回答日時:
専門家ではありませんので、参考程度にしてください。
Q. アクセスをフロントエンドに使ってコストパフォーマンスの良いシステムを作るのにはどんなDBにしたら良いか?
A. DBより先に判断すべき事項がたくさんある。
ODBCのリンクテーブルを主体に考えていらっしゃるなら、DBが何であるかはあまり大きな違いはないような気がします。
強いて言うなら、
・システムの重要性
・データベースのサイズ
・トランズアクション数
・サーバーの能力
・OS(WindowsだとCALライセンスが必要になるかも)
・ダウンタイム(バックアップやメンテナンスのため)の有無
・構築の手間と維持の手間
・クライアントバージョンアップの手法
・セキュリティの必要性
・ログのとり方
などに関して、何が決まっていることで、どのような形で実現させていくのかを判断しなくてはいけません。
アクセスをフロントエンドに使うということになると(VBAをあまり使わないことを前提とすると)アクセスをちゃんと理解しておかないとまずいような気がします。
リンクしたテーブルやクエリを開きっぱなしにしたら何がおきるのか、
同じようなクエリを同時に動かしたら何がおきるのか、、、、
私はその辺がきっちり理解できなかったので、結局すべてVBでSQLにて処理する形のものを作りました。
まあ、すべてSQL処理ならDBが何でもかまわないと考えるのはある意味当たり前かも知れませんけれど。
私はSQLServer,PostgreSQL,Oracle,DB2(何れもフリーのバージョン)を比べてみて、DB2を選びました。 メモリの制限が大きかったとかそんな理由だったと思います。 でも、今考えてみるとどれでも良かったと思います。 ものによっては、(oracle?)業務での使用には費用がかかったような気がします。
貴重なご経験でのアドバイスありがとうございます。
たしかにトータル面で考えると色々と違いや課題があるんですね。
すべてを徹底的に吟味できる時間もありませんのでご意見など
大変助かります。
Accessをフロントエンドに使用しますが入力や更新系のデータは
一旦ローカルのワークテーブルで処理してからVBAでSQL処理を
行う事で良いのかなと考えています。
Accessと言えデータのハンドリングをSQL、VBAで書くのは
結構労力が必要かと覚悟を決めかけている次第です。
ご助言ありがとうございます。
No.4
- 回答日時:
ちょっと補足しておきます。
>>ツールの情報など非常に参考になります。ありがとうございます。
例としてあげた各企業のツールですが、AccessVBAではなく、VisualBasic、C#などの開発言語をターゲットとしているものがほとんどだと思います。なので、1番の「フロントエンドにMS ACCESSを使用」というのは、満たさなくなります。
一般的に、こうした開発ツールを使おうというレベルの開発では、感情的に「MS ACCESSはプロが使うもんじゃない」と思われるケースが多いと思います。もちろん開発ツールの環境として技術的に無理ってのもあるかもしれませんが。
>>非定型で雑処理についてはODBCでリンクテーブルとして
accessのDBのごとく楽をしようかとも考えております。
データが少ない場合は、そういう使い方もいいのですが、大量データを処理する場合、サーバ側で色々と処理するほうが早いです。まあ、件数が少ないとか、スピードにあまりこだわらないというならかまわないですけど。
>>Ruby on Rails2(無償)が非常に気になります。
これは、Webアプリを簡単に構築するための開発ツール環境です。開発からテスト、本番稼働への展開、保守までもターゲットにしています。大規模サイトでも活用しているところがあります。最近は、Java系の開発環境も、その開発効率の良さに影響を受けて、いろいろと機能をまねっこしています。
ただし、使いこなすには、やはり学習が必要だと思います。
度々のご助言ありがとうございます。
ツールの内容は色々と見させて頂きました。
Accessを使う場合だと利用できるツール類も限られるようですね。
ただAccessのローカルテーブルを入力のワークテーブルにしたり
そこからサーバーDBへのハンドリングを考えるとかなり
Access本来の利点が活かせるのかと考えたりしています。
まずはじめにPostgreSQLで試してみようかと思っています。
色々とアドバイスを頂きありがとうございました。
No.2
- 回答日時:
>>楽な方が良いのですがSQL Serverでは後々のライセンスであるとか
コストが結構大きく絡みそうで不安です。
現状のシステムを使い続けることで、余分な労力が発生しているとか、不正データが生まれて修正作業をしないといけない、あるいはスピーディさが無くて商売の機会損失が発生しているなど、コスト上のデメリットがあるのではないですか?そして、アップグレードすることで、上記の問題が解消されるなら、SQL Serverのライセンス料と比較することで、「現状のACCESSのままで我慢する」あるいは「ライセンス料を払う価値が十分にある」って判断できて、コストの不安は無くなるのではないですか?
なお、SQL Serverに「限っていえば」、不安になるようなコスト増は無いと思いますよ。
>>ただAccessのADOでの業務プログラムの指南書みたいなのが無く
どのデータベースでやればよいか手探りな状況です。
昔、ハードディスクが20MB(GBじゃないよ)で20万近くした頃、秋葉のショップでドライブだけ安く売っているお店がありました。髭の店員さんに「これ○○というマイコンに接続したいんだけど、できますか?」って聞いたら、「安くあげたいんなら、勉強しなよ。それがいやならお金を出しなよ。」って冷たく言われたことを思い出しますね。
業者に頼んで、お金を出すのが嫌で自前でやるならは、質問者さんは、ここでいろいろな回答をもらっても、相当の勉強しないと難しいかもしれません。
また、MS ACCESSからSQL Serverへの移行は、シングルユーザからマルチユーザへの移行も同時に意味します。この部分は、わりと難しいですし、しっかり理解ができていないと、障害の原因になります。
また、フロントエンドにMS ACCESSを使用するのは、難しく、別途なんらかの画面作成ツールを購入しないとうまくいかないかもしれません。
以前、MS ACCESSでフロントエンドを作成して納品したシステムを見たのですが、「え!これがACCESSでできているの?もうVisualBasicで作ったのと同じくらいに膨大なコードをAccessVBAで作っているじゃない」って思いました。
作成者に質問したところ、「こうしないとマルチユーザの使いやすいシステムにならないんだよ」って返答でした。
やはり、「(ツールや有償ソフトを使わず)お金を節約するなら、勉強+労力でカバーする」ってことだと思います。
アドバイスを頂きありがとうございます。
マルチユーザーで利用し、確りしたシステム作りが目的になります。
ただSQL ServerであれPostgreSQLであれADOでゴリゴリとコーディングを
強いられるのはあまり変わらないように思うのですが如何でしょうか。
例えば入力フォームやレポートの作成などでSQL Serverを使えばPostgreSQLを使うより遥かに高率的で便利であれば利用を考えたいと
存じます。正直この部分が現在手探りの状態であります。
諸先輩方々のご経験で他を圧倒する程効率的で楽になる部分が
あればSQL ServerやOracleの利用する事を会社に説得できるのですが...
No.1
- 回答日時:
>>下記の点を考慮してどれが良いものか判断しかねております。
アドバイスなどお願いできますでしょうか。
自分でアップグレードされるのでしょうか?それとも業者に依頼するのでしょうか?また、予算はどうなのでしょう?いくつかあると思います。
1)自分でやる、SQLServer(有償)を選択
自分でアップグレードされるのであれば、自分の手間が最も少ないものが良いと思われます。MS ACCESSのアップグレードであれば、これが一番手軽だと思えます。SQLServerは有償ですが、新たに覚えることも少なく、資料も豊富ですね。仕事でアップグレードしたケースでも、このパターンでした。
2)自分でやる、無償のデータベースを選択
無償のデータベースは、新たに覚えることがあったり、機能不足があったりします。業務の場合、「早く、誤りなく行う」が重要ですので、選択肢が無いならしょうがないですが、数十万のレベルの予算で入手できるなら、これを選ぶことは通常ありません。
3)業者に委託、SQLServer(有償)を選択
業者に依頼する場合、作業が難しい、時間がかかるなどは値段が高くなる要素です。自分でやるのと同じく、SQLServerになりそうです。
4)業者に委託、無償のデータベースを選択
いろんな事業所に配布するという条件が入ると、有償のデータベースの金額負担が大きくなるので、無償データベースを使うメリットが大きくなります。業者に割り増し料金を払っても、こちらのほうが良いと思えるかもしれませんね。
でも、ちょっとした作業を自分でやろうとすると、そのデータベースへの知識がないと、面倒ですし、知識があっても、作業自体が面倒になるケースもありそうです。
なんにしても、「無償ソフトならセットアップ・運用が難しくなりがち」「有償ソフトを使うならセットアップ・運用が簡単になる」っていうトレードオフの関係があります。「無償で、セットアップ・運用が簡単」は、通常はあり得ませんので、どこかで妥協が必要だと思います。
妥協しない1つの方法は、「有償ソフトを違法コピーで使う」という、偽装食品を出荷する企業のように、犯罪行為をすることでしょう。お勧めはしませんが。
アドバイスありがとうございます。
業者への委託は予算上考えておらず自分でやるのが前提でいます。
楽な方が良いのですがSQL Serverでは後々のライセンスであるとか
コストが結構大きく絡みそうで不安です。
できればPostgreSQLかなと思いながらも一応SQL Server,
ACCESSアップサイジング,PostgreSQLのマニュアルを読み漁っています。
ただAccessのADOでの業務プログラムの指南書みたいなのが無く
どのデータベースでやればよいか手探りな状況です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データベースファイル(.db)を開...
-
レコード数のカウント
-
Accessを開きなおすとテキスト...
-
旧filemakerで和暦(令和など)...
-
ACCESSのSQLで、NULLかNULLでな...
-
DocuWorksでの印刷
-
帳票フォームでのあるコンボボ...
-
エクセルのフィルタ抽出が固まる
-
AccessのSQLで、FROM句の構文エ...
-
Access SQL のMID関数について
-
「1004:アプリケーション定義...
-
警察はスマホに保存した動画や...
-
データ復旧にかかる時間
-
googleフォームでインストール...
-
最新の日付とその金額をクエリ...
-
LEFT JOIN をしているのに表示...
-
20万行あるデータを動かしたい
-
更新クエリをリンクデータベー...
-
顧客データベースを作る場合、...
-
sqlite結果の非表示
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
住所コード11桁の住所データ...
-
ORA-01102 排他モード?
-
初心者でも参考になる本を探し...
-
データーベースはないがいいで...
-
web経由でデータベースを作るには…
-
データベースリンク
-
SIDとSERVICE_NAMEの違いとは?
-
ORA-12170のエラーについて
-
DB2で SQL1032N start databas...
-
突然オラクルへ接続できなくな...
-
Windows Storeを使わずに付箋を...
-
oracleのメモリ使用量が97%ほど...
-
.NET Frameworkがコントロール...
-
データベース接続情報作成しま...
-
SQL 全角半角混在の文字列から...
-
Oracle11g SQLPlusログインにつ...
-
正しいSQLなのに「ORA-00936: ...
-
OraOps10.dllのエラーについて
-
データソース名および指定され...
-
ORA-12514が出た時の対処法と原因
おすすめ情報