Excel vba SQLSERVERにアクセスする。

VBAを使用してSQLSEVERに接続、日付を取得して画面に表示させます。
OS:Windows10
バージョン:Microsoft Excel 2016
DBサーバー:SQLSERVER2014

結果イメージ

以下取得までの流れ
前準備です。VBEを起動して「ツール」 → 「参照設定」を押します。

「Microsoft ActiveX Data Objects 6.1 Library」にチェックを入れます。
チェックを入れることによってADODB.Connection オブジェクトを使用できます。
チェックを入れなくていいやり方もありますが、割愛します。

VBE画面に以下のソースを記述します。


Sub conDB()

  Dim db As New ADODB.Connection ‘DB接続オブジェクト
  Dim rs As New ADODB.Recordset ‘データ取得オブジェクト
  Dim strSEL As String
  Dim CON As String

  ’DB接続情報格納
  CON = “Provider = SQLOLEDB;”
  CON = CON & “DATABASE=データベース名;”
  CON = CON & “UID=ユーザID;”
  CON = CON & “PWD=パスワード;”

  ’DB接続
  db.Open CON

   ’変数にSQL文を格納します。
   strSEL = “SELECT GETDATE()”
   ’SQLを実行します。
   Set rs = db.Execute(strSEL)
   ’画面に日付を表示させます。
   MsgBox rs.Fields(0).Value

   ’DBを閉じる
  db.Close

End Sub

以下解説です。


ADODB.Connection
DBに接続する為のオブジェクトです。

ADODB.Recordset
DBから取得したレコードを保持するオブジェクトです。

Provider = SQLOLEDB
OLE DBプロバイダを指定しています。
OLE DBとはRDBのほか、非リレーショナルなデータベース、電子メールや各種文書なども包括したデータソースへとアクセスすることを可能としている。

db.Open CON
DBに接続します。

Set rs = db.Execute(strSEL)
DBへSQLを実行します。実行した結果を変数に格納しています。