【SQL Server】Excel VBAでSQLを実行し、レコードを更新(追加、更新、削除)する
公開日:
:
最終更新日:2016/08/15
Microsoft Office, データベース Excel, SQL, SQL Server, VBA, エクセル, テーブル, レコードの更新
VBAでSQL Serverのテーブルに
SQL(Insert、Update、Delete)を発行し、
レコードを更新(追加、更新、削除)する方法
SQLのSELECTでVBAのレコードセットへ取得する方法はこちら
レコードセット内でデータを更新し、「UpdateBatch」を使用して、一括更新はこちら
実行前の準備
VBAを実行する前に、
ツール/参照設定の「Microsoft ActiveX Data Objects 6.1 Library」にチェックする

※6.1じゃなくてもOK。2.0、2.1、6.0で動作することは確認済み
顧客住所テーブルへレコード追加(Insert)のサンプル
※接続文字列はWindows認証、SQL Server認証を環境によって使い分ける。
Option Explicit
Sub SQL_Execute()
On Error GoTo ErrorProc
Dim DBSrv As String
Dim DBName As String
Dim strSQL As String
Dim cn As ADODB.Connection
Dim strConn As String
'----------------------------------------------------
' DBSrvにDBサーバ名、DBNameにデータベース名
'----------------------------------------------------
DBSrv = "DBSERVER\SQLEXPRESS"
'DBSrv = "DBSERVER\SQLEXPRESS,49391" 'ポート指定有
DBName = "db_Sales"
'----------------------------------------------------
' 実行SQL作成(strSQLに実行したいSQL格納)
'----------------------------------------------------
strSQL = "INSERT INTO [Customer].[顧客住所]"
strSQL = strSQL & "([郵便番号],[都道府県名],[市町村],[町_番地],[更新日])"
strSQL = strSQL & "VALUES"
strSQL = strSQL & "('9990000','東京都','港区','テスト',getdate())"
'----------------------------------------------------
' 接続文字列の指定
'----------------------------------------------------
'Windows認証
strConn = "Provider=SQLOLEDB;Data Source='" & DBSrv & "';Initial Catalog='" & DBName & "';Trusted_Connection=Yes"
'SQL Server認証
'strConn = "Provider=SQLOLEDB;Data Source='" & DBSrv & "';Initial Catalog='" & DBName & "';UID=【ユーザ名】;PWD=【パスワード】;"
'オープン
Set cn = New ADODB.Connection
cn.Open strConn
'SQL実行
cn.Execute strSQL
'クローズ
cn.Close
Set cn = Nothing
Exit Sub
'エラー処理
ErrorProc:
MsgBox Err.Number & vbCrLf & Err.Description
End Sub
検証環境
Excel 2007 or Excel 2013
SQL Server 2012
Adsense
関連記事
-
-
【Access】エラーポップアップ。「少数を丸めたために、データが切り捨てられました。」
Accessのリンクテーブルでデータを確認していたら、急に・・・ 「少数を丸めたために
-
-
【Outlook】開封メッセージ送信を先送りする技。
朝一でOutlookを起動したら、開封確認のメッセージ。 すごく嫌。個人的には、非常に嫌い。
-
-
【Excel】グラフ(オブジェクト)の名前変更方法
Excel2013でのお話。 とりあえず、僕が探したところ三つありました。 【1つ目】名前ボ
-
-
【Excel】関数を一括でメモ帳などにコピーする方法
セルに入力されている関数一つのみコピーしたい場合、対象セルを選択して、数式バーか
-
-
【Microsoft Office】Access 2007でMDBファイルが開けない
こんばんわ。今日、ハマッたことを書きたいと思います。 会社の内線がなり「共有フォルダ上のAcces
-
-
【Access】VBAを使わずにマクロでリンクテーブルの変更(変換)
以前にVBAを使ってリンクテーブルの変換をしましたが、 今回はVBAを使わずにマクロでリンクテーブ
-
-
【SQL Server 2012】Management Studioを使ったバックアップで面白い機能。
Management Studioを使ったバックアップをかれこれ3年くらいやってるんですが、一つのバ
-
-
【Excel】エクセルを起動(実行)しても、何も表示されない。
仕事の共有で使用しているエクセルを開くと、Excelの枠だけ表示されて何も表示されない。 壊れ
-
-
【SQL Server】エクセルをテーブルに取り込む方法
以前にManagement Studioを使ってSQLでエクセルを直接取り込む方法を書きましたが、今
-
-
【Outlook】Gmailを使う時のOutlookの設定方法
Gmailアカウント側の設定を行った上で、Outlookの設定を行います。 Gmailアカウン
