【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
関連記事
-
-
【Office】Access2007のピボットテーブルとExcel連携
仕事でAccess2007でEXCELみたいにピボットテーブルを使えますか? と質問を頂いた。
-
-
【SQL Server 2012 Express】Windows Server 2012にインストールしてみる
Windows Server 2012にSQL Server 2012をインストールしてみる。 以
-
-
【SQL Server 2012】Management Studioを使ったバックアップで面白い機能。
Management Studioを使ったバックアップをかれこれ3年くらいやってるんですが、一つのバ
-
-
【Excel】エクセルを起動(実行)しても、何も表示されない。
仕事の共有で使用しているエクセルを開くと、Excelの枠だけ表示されて何も表示されない。 壊れ
-
-
【Microsoft Office】Access 2007でMDBファイルが開けない
こんばんわ。今日、ハマッたことを書きたいと思います。 会社の内線がなり「共有フォルダ上のAcces
-
-
【SQL Server】Excel VBAのレコードセットを使ってテーブルの一括更新
前々回は読み取り専用でレコードセットへ取得し、結果をエクセルへ書き出し 前回はVBAから更新S
-
-
【Excel】グラフ(オブジェクト)の名前変更方法
Excel2013でのお話。 とりあえず、僕が探したところ三つありました。 【1つ目】名前ボ
-
-
【SQL Server】Management Studioを使ったトランザクションログファイルの圧縮
「ファイルが書き出せない」と問い合わせを受け、DBサーバーのマイコンピュータ確認したら、Dドライブ(
-
-
【Outlook】Gmailを使う時の設定(Gmailアカウント側)
OutlookでGmailを使用するには、Gmailのアカウント側でいくつか設定をしなければいけない
-
-
【Outlook】同期の失敗フォルダを消す方法
問い合わせで、Outlookの「同期の失敗」フォルダを消したいと受けた。 調べてみたけど、基本
