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を実行します。実行した結果を変数に格納しています。
最近のコメント