SQL Server 2012 Express LocalDBへマイクロソフトAccess(accdb)から接続

スポンサーリンク

SQL Server 2012 Express LocalDBへマイクロソフトAccess(accdb)から接続してみた。

マイクロソフトAccess2013以降、Access ADPファイルが使えなくなるという事で、代替策を考えていました。基本WEBベースに移行するのが色々な意味で汎用性がってGOOD。一方・・・。

下調べしていた過程で知ったのが、SQL Server 2012 Express LocalDBの存在。互換性の問題もあって、今のところSQLServer2008R2で本運用していますが、このLocalDBの仕組みには興味があります。結論から言うと、基本スタンドアロン & テスト運用目的くらいしか使い道がなさそう。

しかし!Dellのvenue8 Proを入手して状況は一変。こやつにデータベースを仕込んで色々できそう。

Windows8.1 Tabletで使うデータベースにはどれが良いか。

普通にAccessランタイムを入れてAccess一本でやれば事足りるんですけどね。でも、Accessって壊れるという印象があるし、かといってCompactエディションは制約が多い。SQL Server Expressでは、インストールが大変、その後の管理も面倒、インストール容量も多い。ただでさえストレージ容量が貧弱なタブレットにインストールするには気が引けます。

その点、LocalDBはまあ手ごろなサイズ。サービスとしてバックグラウンドで動くこともない。スタンドアロンで使うにはもってこいです。最小構成でどこまで出来るか、テスト(遊びともいう)を兼ねて構築してみることにしました。

前置きが長くなりましたが、手順です。使用した機材は・・・

  • 開発環境:SONY VaioF (Win7 sp1 Pro)
  • 本番環境:DELL Venue8 Pro (Win 8.1)

本番とは言いましても、あくまでテスト用ですが・・・。

 

開発環境の構築

1:開発環境にソフトをインストール

  • VisualStudio Professional
  • 2012Access2010

※VisualStudio Professional2012のインストール時、SSMS ExpressとLocalDBもインストールします。

2:開発環境のSQLServerManagementStudio(SSMS)にてデータベース作成

①サーバーへ接続

  • 接続先はデータベースエンジン。
  • データベース名に「(localdb)\v11.0」を手入力。
  • windows認証にて接続

②データベースを作成

  • データベースの新規作成ウィザードを立ち上げ。
  • 任意の場所にデータベースファイルとログファイルを作成。
  • 作ったデータベースにテーブル等を作成。

※デフォルトのパスに作成しようとするとエラーになります。どうやらバグらしい。
mdfファイル,logファイルのインストールパスを、MyDocument等に指定して作成します。

③ODBCデータソースアドミニストレーターを立ち上げ、DSNを作成

  • システムデータソースの追加で、「SQL Server Native Client 11.0」を選択。
  • 名前は任意。
  • 「サーバー」には、「(localdb)\v11.0」と手入力。
  • Windows認証を選択。
  • 「既定のデータベース」をドロップダウンし、先ほど作ったデータベースファイルを選択。
  • 一覧に出てこない場合は手入力で、パスとファイル名を入力。
  • あとはOKで送って作成終了。

④Accessファイルを新規作成(ACCDBにて)

  • 「外部データ」→「ODBCデータソース」で作成したDSNを指定して、リンクを張ればOK。

ODBCで「既定のデータベース」にファイルパスを手入力してあげたりしてもODBCデータソースアドミニストレーターのテスト接続の段階でエラーとなる事があります。しかし不思議なことに、上記の方法で作成したODBCをAccessで指定すると問題なくつながったりします。

恐らく、初回アタッチ時に、接続を開始したり初期設定の構成に時間がかかり、ODBCではタイムアウトになるのではないか?と推測しています。ODBCのテスト接続ではだめでも、UDLファイルを作成してテストすると成功したりもします。このあたりが難しいですね。

LocalDBはSQLServer Expressエディションと同じように、ファイル感覚で扱える

SQLServer LocalDBはExpressエディションと同じようにファイル感覚で扱えます。バックアップを取るのも、データを移行するのもお手軽ですね。これは大きな利点です。ただし、手軽なことがデメリットにもなりかねません。セキュリティー上の問題ですね。

今回は以上です。後は入力システムのほうはAccessで開発、データベースの方はSSMSやVisualStudioで操作します。本番環境の構築に関しては次回「マイクロソフトAccessでSQL Server 2012 Express LocalDBを使う時の最少構成」にて取り上げます。

文章中で便宜上「本番環境」と表現していますが、「最小構成でのテスト環境を構築するテスト」を行う上での本番という意味です。

コメント