【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
関連記事
-
-
【Access2007】ODBCの罠。Windows7のコントロールパネルから作成したODBCがない。
Windows7の64bitでSQL Server 2012接続用のODBCを作成し Access
-
-
【Access2007】ODBCを使ってSQL Server 2012に接続
Windows7のAccess2007をデータソース(ODBC)を使って、SQL Server 20
-
-
【ODBC】Windows7でAccess2007とSQL Serverを接続する為のODBCの作成
前回、ODBC接続の為のサーバー側の設定を行いましたので、 今回はAccess2007側のWind
-
-
【Access】VBAを使わずにマクロでリンクテーブルの変更(変換)
以前にVBAを使ってリンクテーブルの変換をしましたが、 今回はVBAを使わずにマクロでリンクテーブ
-
-
【SQL Server】Management Studioを使ったトランザクションログファイルの圧縮
「ファイルが書き出せない」と問い合わせを受け、DBサーバーのマイコンピュータ確認したら、Dドライブ(
-
-
【Access】「更新可能なクエリであることが必要です」のクエリのエラーポップアップ
Accessでクエリを作成し、実行すると 「更新可能なクエリであることが必要です。」
-
-
【Outlook】PDFの添付ファイル付のメール送信でフリーズ。
OutlookでPDFファイルを添付して、メール送信するとOutlookがフリーズし、Outlook
-
-
【SQL Server 2012】SQLでエクセル表示の実行エラーの対処法
SQLでエクセル表示を実行した時にエラーとなった場合の対処法。 実はSQLでエクセルファイルを表示
-
-
【SQL Server】varchar型、nvarchar型の文字数とバイト(byte)数を取得する
varchar型の文字数、バイト(byte)数を取得する方法 SELECT LEN(【文字
-
-
【SQL Server 2012 Express】Windows Server 2012にインストールしてみる
Windows Server 2012にSQL Server 2012をインストールしてみる。 以