jueves, 20 de octubre de 2016

¿Cómo ejecutar un Stored Procedure de SQL Server desde MS Access que retorne un valor STRING?

Anteriormente explicamos cómo ejecutar un procedimiento de SQL Server. Pueden consultarlo en este enlace:


En esta oportunidad explicaremos cómo ejecutar un procedimiento que retorne un valor como el siguiente:

CREATE PROCEDURE dbo.CerrarProceso 
@proceso INT
AS
    SELECT 'resultado'
GO

La forma de ejecutar el procedimiento desde SQL sería:

EXECUTE CerrarProceso 286

La forma de ejecutarlo desde MS Access sería:

    Dim qdef As DAO.QueryDef
    Dim rs As Recordset
    Set qdef = CurrentDb.CreateQueryDef("")
    qdef.ReturnsRecords = True
    qdef.Connect = CurrentDb.TableDefs("[dbo_Estados]").Connect
    Dim sql As String
    sql = "EXEC CerrarProceso " & Proceso
    qdef.sql = sql
    Set rs = qdef.OpenRecordset()
    MsgBox (rs.Fields(0))