Adsense

2019年7月28日日曜日

【ACCESS/VBA】ストアドプロシージャ実行サンプル

①ストアド内のSELECT結果を取得する場合
  1. Private Sub ExecSP()
  2. Dim cmd As New ADODB.Command
  3. Dim conn As New ADODB.Connection
  4. Dim rst As New ADODB.Recordset
  5. Dim rtn As Integer
  6. m_cn = New ADODB.Connection
  7. conn.ConnectionString = "DSN=TEST_ODBC;Uid=USER1;Pwd=userpass1;Database=TEST_DB"
  8. conn.Open
  9. Set cmd = New ADODB.Command
  10. Set cmd.ActiveConnection = conn
  11. With cmd
  12. .CommandText = "usp_sp1"
  13. .CommandType = adCmdStoredProc
  14. .Parameters.Refresh
  15. .Parameters(1).Value = 100 ' ストアド引数1つ目
  16. .Parameters(2).Value = 200 ' ストアド引数2つ目
  17. End With
  18. ' ストアドプロシージャ内で最後に実行されたSQLの結果を取得
  19. Set rst = cmd.Execute
  20. ' ストアドプロシージャのReturn値を取得
  21. rtn = cmd.Parameters(0).Value
  22. rst.Close
  23. Set rst = Nothing
  24. Set cmd = Nothing
  25. End Sub
②ストアド内のSELECT結果を取得しない場合
  1. Private Sub ExecSP()
  2. Dim cmd As New ADODB.Command
  3. Dim conn As New ADODB.Connection
  4. Dim rst As New ADODB.Recordset
  5. Dim rtn As Integer
  6. m_cn = New ADODB.Connection
  7. conn.ConnectionString = "DSN=TEST_ODBC;Uid=USER1;Pwd=userpass1;Database=TEST_DB"
  8. conn.Open
  9. Set cmd = New ADODB.Command
  10. Set cmd.ActiveConnection = conn
  11. With cmd
  12. .CommandText = "usp_sp1"
  13. .CommandType = adCmdStoredProc
  14. .Parameters.Refresh
  15. .Parameters(1).Value = 100 ' ストアド引数1つ目
  16. .Parameters(2).Value = 200 ' ストアド引数2つ目
  17. .Execute
  18. End With
  19. ' ストアドプロシージャのReturn値を取得
  20. rtn = cmd.Parameters(0).Value
  21. rst.Close
  22. Set rst = Nothing
  23. Set cmd = Nothing
  24. End Sub

0 件のコメント:

コメントを投稿