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

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

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

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

SQL Server

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

Access

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

解決済

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

neet_studier
neet_studier

総合スコア0

VBA

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

SQL Server

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

Access

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

1回答

0評価

1クリップ

17閲覧

投稿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起動なんてやってもらえるものか、というところで逡巡しています。
インストール時だけで済むなら、誰かの出張ついでとかにお願いできるかも、とか、いろいろ迷っています。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

VBA

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

SQL Server

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

Access

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