久しぶりの投稿です。
しばらくKinectさわっていません。
なぜかHoGの投稿に定期的にアクセスがあります。どうしてなのかな?
さて、今回はSQLServer2012から新たに追加になったLocalDBについてです。
SQL Server2012Expressもほとんど同じですが、スタンドアローン環境で使うならLocalDBの方が手軽に使えそうです。
ただ、色々なサイトで解説はあるんですが、VBAでの解説があまりないようです。
試しにExcel2013でADO+NativeClientで接続してみようとすると、最初はうまく接続できませんでした。
最初に書いたコードです。
-----------------------------------------------------------------------------------------------------------
Sub DB接続()
Dim cn As New ADODB.Connection
cn.ConnectionString = "provider=sqlncli11;server=(localdb)\v11.0;database=test;integrated security=true;DataTypeCompatibility=80;MARS Connection=True"
cn.Open
Dim rs As New ADODB.Recordset
rs.Open "select * from T_商品", cn, adOpenStatic, adLockReadOnly
If rs.BOF And rs.EOF Then
Else
Range("A1").Select
ActiveCell.CopyFromRecordset rs
End If
rs.Close
Set rs = Nothing
End Sub
-----------------------------------------------------------------------------------------------------------
(あらかじめ既定のインスタンスにtestデータベースを作成して、T_商品テーブルを追加しています。)
この場合コネクションを開いた時点でエラーが発生しました。
色々試した結果は
「integrated security=true」を「integrated security=SSPI」に変更すれば正常に動作しました。
通常TrueでもADO.NETなどは動くようなのですが・・・・
まぁ、これでEXCELやACCESSでもLocalDBが利用できそうです。
あとLocalDBはSQLOLEDBプロバイダは使えないみたいです。
素晴らしい!とても参考になりました。
返信削除>> LocalDBはSQLOLEDBプロバイダは使えないみたいです。
返信削除これが知りたかった!
助かりました。ありがとうございます。