Q&A
よろしくお願いいたします。
こちらでたびたび質問させていただいたことを元に、趣味だけでなく仕事でも、ExcelをフロントエンドとしてACCESSのaccdbファイルにあるテーブルのデータを読み書きするようなシステムを作り、社内で使用しております。
事務所内の中心的PCにaccdbファイルを置き、LANで繋がっている他の複数のPCに設置したExcelファイルからそれぞれ、その一つのaccdbファイルに接続して使っている状態です。
このシステムの使用者は、ExcelVBAで作られたexcelファイルを開いているとしか認識しておらず、その奥にAccessファイルがあることも、意識していません。また、accdbファイルにはいくつかのテーブルしかなく、レポートやフォームはもちろん、アクションクエリなどもありません。
かねてから、accdbファイル(ACCESS)は複数端末からの同時使用に脆いとか、高頻度で最適化を実行しないと破損のリスクが高まるなどの情報に接し、心配しているのですが、以前、こちらで質問し、accdbをsqliteに置き換えるのは、あまり意味がないとわかりました。
やはり、SQL Sever(無償版のexpress)への変更を検討することにしたのですが、私はAccess以外のデータベースソフトをろくに知りません。それでもどうするのか早く結論しなくてはならず、急いで本を読んだりいろいろ調べていますが、まだわからないことがあります。こういうケースでのSQLServerへ移行について、教えてください。
(Q1)
SQLSeverファイルでデータを保持管理することにするとしても、Accessのテーブルからリンクという形にして、Accessファイルはそのままで、各テーブルの中身の実態を、SQLServerファイル内のひとつひとつのテーブルにする、ということもできるようです。その場合、Excelからは、これまで通り、Accessと接続しているように見えるはずなので、今のVBAにあるAccessとの接続やレコードセット取得等のコードは書き直す必要がないのではないか、と解釈しています。間違っているでしょうか?また、構成からしっかりSQLSeverへの置き換えを行なわず、Accessを残したままでこういう変更をするのは、なにかデメリットがあるでしょうか?
(Q2)
SQLSeverのファイルmdfを使う以上、SQLServerというソフトをインストールする必要があるのはわかりますが、この場合、mdfファイルを置くサーバーPC1台にだけインストールすればよく、そのサーバーPCのmdf内のデータを参照するExcelシステムを起動させる各PCたちには何もしなくてよいと考えていいでしょうか?
(Q3)
Accessの感覚だと、Accessというソフトかランタイムをインストールしておけば、その後はとくにそのへんの仕組とか気にせずに、システム本体であるExcelファイルを起動して使っていられたのですが、accdbではなくSQLServerのmdfファイルの中身をExcelから(Accessを経由するかも)参照するシステムを使用する場合、いちいち「SQLServerというソフトを起動」という操作をする必要があるのでしょうか?「このシステムを使うにはExcelだけではなくSQLServerというのが管理するDBが必要なのだが、そのDBのデータを使うためにはまず、DBサーバーソフトであるSQLServerを起動させなくてはだめだ」という認識を、現場でシステムに入出力作業をするパートさんたちに持っていただけるとは思えないのですが。
accdbのように、一度DMBSソフトかランタイムをインストールしておけば、あとは知らん(だって他のシステムから参照更新できればいいだけであって、テーブル定義とかいちいちいじるわけではないんだし)、というわけにはいかないでしょうか?
以上です。
横着な質問に思われるかもしれませんが、私じしん、AccessやVBAを多少かじったという程度なのに、遠方の営業所から「それ便利そうだからこっちでも使わせてよ」と言われ、どうしようかと迷ってるところです。安定的運用のためにSQLServer利用にしたほうがよさそうだけど、Accessランタイムだけでもわかってもらいにくい人たちにSQLServerのインストール、ましてや日常的なServer起動なんてやってもらえるものか、というところで逡巡しています。
インストール時だけで済むなら、誰かの出張ついでとかにお願いできるかも、とか、いろいろ迷っています。
回答1件
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2019/03/31 08:31