小さい会社の1人SEの開発記というか奮戦記

  1. 開発サンプル
  2. 7163 view

SQL-Excelサンプル VBAで接続テストを行う

「SQL Server Express と ADO、Excel と VBA を使って課題管理表を作ってみよう」のデータベース接続テストを具体的に説明します。

考え方

エクセルのVBAで、データベースを使ったサーバークライアント型のツールを作る場合、ほとんどの方が最初に引っかかるのがデータベース接続では無いでしょうか。

接続テストを簡単にするため、サブルーチンで最初はVBAを書きます。接続テストが上手くいったらパブリックサブに書き換えます。接続はどのシートからも使いますのでパブリックサブにしておくと汎用性が高まります。

前提条件は以下とします。

PC名 TEST_PC (名前付きパイプで接続する場合)
IPアドレス 192.168.0.100 (ipv4で使用者はローカルipを持っている前提)
インスタンス SQLEXPRESS
ログイン test_user
パスワード test_password
データベース test_db

接続テスト

以下のVBAにて接続試験を行います。

Option Explicit

Sub Setsuzoku()

 ' 変数宣言
 Dim ADO_CN As Object ' コネクションオブジェクト
 Dim TXT_CN As String ' 接続文

 ' 接続文
 TXT_CN = _
        "Provider=SQLOLEDB" & _
        "; Data Source=TEST_PC\SQLEXPRESS" & _
        "; Initial Catalog=test_db" & _
        "; User ID=test_user" & _
        "; Password=test_password"

 ' ADOコネクションオブジェクトを作成
 Set ADO_CN = CreateObject("ADODB.Connection")

 ' データベース接続
 ADO_CN.Open TXT_CN

 Msgbox "正常に接続できました"

 ' 接続解除
 ADO_CN.Close
 Set ADO_CN = Nothing

End Sub

 

Public Sub 化

接続が確認できたら、Public を使ってオブジェクトとサブルーチンを宣言します。

Option Explicit

Public ADO_CN As Object ' コネクションオブジェクト

Public Sub connect() ' データベース接続

 ' 変数宣言
 Dim TXT_CN As String ' 接続文

 ' 接続文
 TXT_CN = _
        "Provider=SQLOLEDB" & _
        "; Data Source=TEST_PC\SQLEXPRESS" & _
        "; Initial Catalog=test_db" & _
        "; User ID=test_user" & _
        "; Password=test_password"

 ' ADOコネクションオブジェクトを作成
 Set ADO_CN = CreateObject("ADODB.Connection")

 ' データベース接続
 ADO_CN.Open TXT_CN

End Sub

Public Sub disconnect() ' データベース切断
 ' 接続解除
 ADO_CN.Close
 Set ADO_CN = Nothing

End Sub

接続は connect()、切断は disconnect()Call を使って呼び出します。

まとめ

データーベース接続は勘違いだったり、タイプミスだったり、よく間違えるところがありますので、事前にそこだけをテストするようまずは心がけましょう。

前の記事 →「SQL-Excelサンプル 課題管理表のデータベース設計
次の記事 →「SQL-Excelサンプル 課題管理表登録ボタンを押したときの処理

開発サンプルの最近記事

  1. 課題管理表を複数プロジェクトで使える様改造

  2. 「SQL Server Express と Excel を使って課題管理表を作ってみよう」…

  3. 「SQL Server Express と Excel を使って課題管理表を作ってみよう」…

  4. SQL-Excelサンプル 課題管理表最新取得ボタンを押したときの処理

  5. SQL-Excelサンプル 課題管理表全件表示ボタンを押したときの処理

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


お薦め書籍

最近の記事

  1. Access

    Accessの数値型ではまる・・・。
  2. Excel

    日本語をエンコードする【Excel VBA】
  3. Access

    クエリで日付から曜日を算出する。【Access】
  4. PCパーツ

    ASUS AMD Ryzen 4000 シリーズ搭載小型ベア…
  5. Microsoft365

    コンデジをTeamsのWebカメラに使う
  6. SQL Server

    SQL文で今日から7日前までを指定する