「MS-SQLのストアードプロシージャを実行する」
MS-SQLのストプロを実行するには
回答
2種類の方法を記述します。
1つ目がADOです。
2つ目がDAOです。
ソース
Sub ストプロ実行ADO()
Dim constr as string
Dim cn As ADOCB.Connection
Dim rs Ad ADODB.Recordset
Dim cmd As ADODB.Command
constr = "Provider=MSDASQL.1;Persist Security Info=False;" & _
"Extended Properties=Driver={SQL SERVER};" & _
"SERVER=サーバー名又はIPアドレス;" & _
"UID=ユーザーID;" & _
"PASSWORD=パスワード;" & _
"DATABASE=データベース名"
Set rs = New ADODB.Recordset
Set cn = New ADODB.Connection
cn.ConnectionString = constr
cn.CursorLocation = ad UseServer
cn.Open
Set cmd = New ADODB.Command
cmd.CommandText = "ストプロの名前"
cmd.CommandType = adCmdStoredProc
cmd.ActiveConnection = cn
'パラメーターが必要な場合はパラメーターを設定する
'cmd.Parameters(1).Value="" '1つめのパラメータ
'cmd.Parameters(2)Value="" '2めのパラメータ
'戻り値が無い場合は以下
cmd.Execute
'戻り値がある場合は以下
'Set rs = cmd.Execute
End Sub
Sub ストプロ実行DAO()
Dim ws As DAO.Workspace, b as DAO.Database
Dim rs As DAO.Recordset
Set ws = DBEngine.Workspaces(0)
Set db = ws.OpenDatabase("",False,False, _
"ODBC;Driver={SQL Server};" & _
"SERVER=サーバー名又はIPアドレス;" & _
"UID=ユーザーID;" & _
"PWD=パスワード;" ' _
"DATABASE=データベース名"
'第一引数は文字列で、半角スペース区切りで、"Exec ストプロ名 引数・・・"
Set rs = db.OpenRecoedset("Exec ストプロ名 引数1,引数2" ,dbDynaset,dbSQLPassThrough)
End Sub