QA@IT

ExcelのマクロからSQLServerにDAO接続し、ストアードを実行したい。

5055 PV

お世話になります。
【環境等】
osは、Windows Server 2012 です。
Microsoft Office Proffesional Plus 2013 で、ExcelとAccess をインストールしています。
マクロ内では、Microsoft Office 16.0 Access database engine Object Liblaryを参照設定しています。
また、SQLServer2012に対し、ODBCドライバ名'MADB'を作成しています。
【したいこと】
Excelのマクロから、SQLServerに接続し、DAOでストアードを実行したいです。
また、できればストアド内の最後のSELECT により、ストアードからの戻り値も取得したいです。
(なお、RDOやADOは、特定のサーバに限るのですが、なぜかActiveXのエラーが出てそれをどうしても解消できず、上記参照設定によるDAO接続のみはできるようなのでDAO接続によるものに限ることになりました。)
【コード】
例えば、以下のようなものは動作しました。

 Dim SQL As String

    Dim dbDAO As DAO.Database
    Dim rs As DAO.Recordset     

    SQL = "SELECT * FROM tHoge"   
    Set dbDAO = DBEngine.OpenDatabase("", False, False, "ODBC;DSN=MADB;")    
    Set rs = dbDAO.OpenRecordset(SQL)

    If rs.EOF Then
    Else
        Range("A1") = rs("colHoge")      
    End If

    rs.Close: Set rs = Nothing
    dbDAO.Close: Set dbDAO = Nothing

しかし、ストアードを実行し、できれば戻り値も取得したいです。
下記のコードでは、 dbDAO.Execute の箇所で「選択クエリを実行できません」とエラーが表示されます。
どのように書いたら良いでしょうか。

   Dim dbDAO As DAO.Database
   Dim rs As DAO.Recordset
   Dim SQL as String

   Set dbDAO = DBEngine.OpenDatabase("", False, False, "ODBC;DSN=MADB;")

   SQL = "spHoge "
   SQL = SQL & "@ParaA = " & CLng(Range("A1"))
   SQL = SQL & ",@ParaB = " & CLng(Range("B1"))

   dbDAO.Execute (SQL)   
ウォッチ

この質問への回答やコメントをメールでお知らせします。