Mam's WebSite
建築CGパース住宅CGパース

Mamの覚書Q&A検索

トップページMamの覚書Q&A検索Access(VBA)⇒Q&A


大項目:「 Access 」 - 中項目:「 VBA 」

「 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


Mam's WebSite