質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

1回答

436閲覧

データ格納所としてのaccessファイルをSQLServerファイルに置き換えることについて

neet_studier

総合スコア21

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

1クリップ

投稿2019/03/29 19:46

よろしくお願いいたします。

こちらでたびたび質問させていただいたことを元に、趣味だけでなく仕事でも、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起動なんてやってもらえるものか、というところで逡巡しています。
インストール時だけで済むなら、誰かの出張ついでとかにお願いできるかも、とか、いろいろ迷っています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

(Q1)

接続するための情報をAccess側で持たせるか、Excel側に持たせるかの話ですから、敢えてAccess経由する必要は無いと思います。

(Q2)

どうやって接続するかによって必要な物は変わってきます。
ODBC接続ならODBCドライバーですし、専用で接続するならclientソフトが必要です。

(Q3)

PC起動時に合わせて起動するようにサービスの設定をすれば利用者は意識しなくて済みます。
ですが、利用の為には初期設定諸々が必要ですし、利用される方はそこまで求めてはいないと思います。
使い始めて、改良を要望されるかもしれませんしね。

希望される方が多くなり、全社的な利用となった段階で考慮される方が良いかと思います。

投稿2019/03/30 04:25

編集2019/03/30 08:16
sazi

総合スコア25085

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

neet_studier

2019/03/31 08:31

ご回答ありがとうございます。ODBC接続/専用接続 の意味すらまだよくわかっていないので、そのあたりから調べてみます。 また、PC起動時に自動的にサーバーソフト起動ということもできる、というのは、安心しました。 どうもありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問