ストアドの戻り値を受け取る
SQLServer2k + フロントエンドAcc2kでちょっとしたdbアプリ(adp)作った時、
ストアドの戻り値を受け取るのに手間取ったのでメモっておく。
Dim cmd As New ADODB.Command Dim fm As Form Dim lngRtnCode As Long Set fm = Form_hoge With cmd Set .ActiveConnection = Conn 'Connectionオブジェクトを代入 .CommandType = adCmdStoredProc 'コマンドタイプはストアドを選択 .CommandText = "usp_hogehoge" 'ストアド名 '作成(Creaet)したParameterを追加(Append) 'CreateParameterメソッドの引数について '第1引数 … VBA側のパラメータ名。VBA側で識別できればOKな為、ぶっちゃけ何でもいいw '第2引数 … 引数のデータ型。 '第3引数 … 引数のタイプ。 '第4引数 … 引数のサイズ。intやbigintは指定してやる必要無いが、char系はフィールド長をセット。 '第5引数 … 引数の値。 .Parameters.Append .CreateParameter("P1", adInteger, adParamInput, , fm.hoge1.Value) .Parameters.Append .CreateParameter("P2", adInteger, adParamInput, , fm.hoge2.Value) .Parameters.Append .CreateParameter("P3", adVarChar, adParamInput, 50, fm.hoge3.Value) .Parameters.Append .CreateParameter("RP1", adInteger, adParamReturnValue) 'Command実行 .Execute 'ストアドの返し値取得 lngRtnCode = .Parameters.Item("RP1").Value End With