Windows 10 Pro_x64 + Excel2013_x86 VBA で ADODB.Command を使って ストアドを試してみる
Windows 10 Pro_x64 + Excel2013_x86 VBA で ADODB.Command を使って ストアドを試してみる
簡単なストアドを書いて、ADODB.Command から使ってみる
※Windows版、Linux版ともに同じコードの動作確認(ODBCの指定以外は同じ)
こちらの続きといえば続き
※クラスへの実装の追加はどうするか、検討中
参考にしたのは以下のサイト
対象テーブルはこちら
Windows 10 Pro_x64 + Excel2013_x86 VBA DataBase Access クラスを使って書き込んでみる
以下をSSMSから実行する
USE DEMO; GO CREATE PROCEDURE GETZIPCODE @SEQ nchar(8) AS SELECT PREFCODE, POSTAL, CITIESKANJI, POADDRKANJI FROM ZIPCODE WHERE SEQ = @SEQ; GO
以下でテストしてみる
EXECUTE GETZIPCODE N'00000001'
サンプルコード
Option Explicit Private Sub CommandButton1_Click() On Error GoTo ERR_PROC ' Dim adoCon As ADODB.Connection Dim adoRst As New ADODB.Recordset Dim adoCmd As New ADODB.Command Dim host As String Dim user As String Dim pass As String Dim conn As String ' host = "SQLSVODBC32" ' host = "SQLSV2UBUNTU" ' Linux版 ' user = "demo" pass = "demo" ' conn = "DSN=" & host & ";UID=" & user & ";PWD=" & pass ' adoCmd.CommandText = "GETZIPCODE" adoCmd.CommandType = adCmdStoredProc ' Set adoCon = New ADODB.Connection ' adoCon.ConnectionString = conn adoCon.CursorLocation = adUseClient Call adoCon.Open ' adoCmd.ActiveConnection = adoCon ' adoCmd.Parameters.Refresh adoCmd(1) = "00000001" ' Set adoRst = adoCmd.Execute ' While Not adoRst.EOF Debug.Print Trim(adoRst.Fields("PREFCODE")) & vbTab & _ Trim(adoRst.Fields("POSTAL")) & vbTab & _ Trim(adoRst.Fields("CITIESKANJI")) & vbTab & _ Trim(adoRst.Fields("POADDRKANJI")) ' adoRst.MoveNext Wend ' adoCon.Close Set adoCon = Nothing Set adoCmd = Nothing ' Exit Sub ERR_PROC: adoCon.Close Set adoCon = Nothing Set adoCmd = Nothing ' End Sub