INSERT文を実行して登録件数を取得する方法
スポンサーリンク
Excel VBA から SQL Server 上で INSERT 文を実行してデータを登録し、登録件数を取得するサンプルコードです。
SQL Server での事前準備
VBA のサンプルコードを実行する前に、 TEST データベースを作成して、以下のSQLを実行してください。 TEST_TABLE というテーブルを作成します。
sql(実行可能なサンプルコード) | |
1 2 3 4 5 | CREATE TABLE [dbo].[TEST_TABLE] ( [ID] [INT] NULL, [MEMO] [VARCHAR](10) NULL ); |
VBA のサンプルコード
INSERT 文を実行して、登録件数を取得するサンプルコードです。
このコードを実行するには、事前にADODBへの参照設定が必要です。
VBA(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | Option Explicit Sub test() '■接続先情報を設定 'この例では、ローカルのインスタンス「SQLEXPRESS」にWindows認証で接続する。 Dim connectionString As String Dim dataSourceName As String Dim databaseName As String '「.」はローカルを表す。他のサーバに接続する場合はホスト名を指定。 dataSourceName = ".\SQLEXPRESS" ' 'TESTデータベースに接続する。 databaseName = "TEST" 'ODBC接続の接続文字列を作成する。 connectionString = "" connectionString = connectionString & "PROVIDER=MSDASQL;" connectionString = connectionString & "DRIVER={SQL Server};" connectionString = connectionString & "SERVER=" & dataSourceName & ";" connectionString = connectionString & "INITIAL CATALOG=" & databaseName & ";" connectionString = connectionString & "Trusted_connection=yes; " '■接続 Dim objConnection As ADODB.Connection Set objConnection = New ADODB.Connection objConnection.CursorLocation = adUseClient objConnection.Open connectionString '■実行するSQLを設定 Dim objCommand As ADODB.Command Set objCommand = New ADODB.Command Dim sql As String ' 5 行を一回で登録する INSERT 文を作成 sql = "" sql = sql & " INSERT INTO" sql = sql & " TEST.dbo.TEST_TABLE" sql = sql & " (ID, MEMO)" sql = sql & " VALUES" sql = sql & " (1, 'いち')" sql = sql & " ,(2, 'に')" sql = sql & " ,(3, 'さん')" sql = sql & " ,(4, 'よん')" sql = sql & " ,(5, 'ご');" Set objCommand.ActiveConnection = objConnection objCommand.CommandType = adCmdText objCommand.CommandText = sql '■登録件数を受け取る変数を準備 Dim affectedRowNum As Long '■SQLを実行 objCommand.Execute affectedRowNum '■登録件数を表示 Debug.Print "登録された件数→" & affectedRowNum '■終了処理 Set objCommand = Nothing Set objConnection = Nothing End Sub |
上記を実行すると、テーブルにデータが 5 件登録され、イミディエイトウインドウに「登録された件数→5」と表示されます。
スポンサーリンク