Очевидно, что это путь Microsoft:
http://support.microsoft.com/kb/168210
Шаблон кода, который я использую, выглядит примерно следующим образом:
Dim rs As Recordset
Dim ws As Workspace
Dim db As Database
Dim sproc As String
Set ws = DBEngine.Workspaces(0)
Set db = ws.OpenDatabase("", False, False, conString)
sproc = "EXEC sproc_AuditLog @site=" + siteID + ", @machine='" + MachineID + "'"
Set rs = db.OpenRecordset(sproc, dbOpenSnapshot, dbSQLPassThrough)
rs.Close
Как вы можете видетьЯ по сути строю оператор EXEC в строке, а затем использую dbSqlPassThrough для отправки его напрямую в ODBC, поскольку у DAO нет встроенного способа выполнения хранимых процедур (таких как функция Execute ADO).