Le estoy dando mil vueltas a esto y no consigo pasarle parámetros a un stored procedure que tengo en base de datos y tampoco consigo recoger el valor que me devuelve.
este es el stored:
Código sql:
Ver original
ALTER PROCEDURE [dbo].[HORAS_PROGRAMACION] @IDTARE AS INTEGER AS SELECT 'Hrs' = SUM(HOR_PACT) FROM FSGA_PACT WITH(NOLOCK) INNER JOIN ( SELECT FSGA_TRUS.ID_EMPR , FSGA_TRUS.ID_CLNT, FSGA_TRUS.ID_PROY, FSGA_TRUS.ID_TARE, FSGA_TRUS.ID_USUA FROM FSGA_TRUS WITH(NOLOCK) INNER JOIN FSGA_CATU WITH(NOLOCK) ON FSGA_TRUS.ID_EMPR = FSGA_CATU.ID_EMPR AND FSGA_TRUS.ID_AREA = FSGA_CATU.ID_AREA AND FSGA_TRUS.ID_CATU = FSGA_CATU.ID_CATU WHERE COD_CATU IN ('TCINS','TCINJ','TCBIS','TCBIJ','PSDES','PJDES') ) P ON FSGA_PACT.ID_EMPR = P.ID_EMPR AND FSGA_PACT.ID_CLNT = P.ID_CLNT AND FSGA_PACT.ID_PROY = P.ID_PROY AND FSGA_PACT.ID_TARE = P.ID_TARE WHERE ID_AREA IN (2,5,6,7,8,9,102) AND ( FSGA_PACT.ID_USUA NOT IN ( SELECT ID_USUA FROM FSGA_USCT WITH(NOLOCK) INNER JOIN FSGA_CATU WITH(NOLOCK) ON FSGA_USCT.ID_EMPR = FSGA_CATU.ID_EMPR AND FSGA_USCT.ID_AREA = FSGA_CATU.ID_AREA AND FSGA_USCT.ID_CATU = FSGA_CATU.ID_CATU WHERE COD_CATU IN ('GEDES','RSBIS','RSPRD','SUINT','GEDES','RSBIS','GEDES','SUPRG') AND FFIN_USCT IS NULL) OR FSGA_PACT.ID_USUA = P.ID_USUA ) AND NOT (fsga_pact.id_tptr = 17 AND fsga_pact.id_area = 2) AND NOT (fsga_pact.id_tptr = 16 AND fsga_pact.id_area = 5) AND NOT (fsga_pact.id_tptr = 8 AND fsga_pact.id_area = 102) AND NOT (fsga_pact.id_tptr = 1 AND fsga_pact.id_area = 107) AND FSGA_PACT.ID_TARE = @IDTARE
Y esto es lo que hago desde una macro de excel pero no consigo paserle ni el parámetro ni recoger el valor:
Código vba:
Ver original
Set cmd = New ADODB.Command cmd.CommandText = "HORAS_PROGRAMACION" cmd.CommandType = adCmdStoredProc cmd.ActiveConnection = adoconn Set prm = cmd.CreateParameter("@IDTARE", adInteger, adParamInput) cmd.Parameters.Append prm cmd.Parameters(1).Value = idTare 'Execute the Stored Procedure Set Rst = cmd.Execute If Not Rst.EOF Then ' Update Real Hours sheetx.Range("V" & ActiveCell.Row).Value = Rst txtProg.Value = Rst 'MsgBox "Horas imputadas a la tarea: " & adores(0).Value, vbInformation Else sheetx.Range("V" & ActiveCell.Row).Value = 0 txtProg.Value = 0 MsgBox "¡No existen horas imputadas a la tarea!", vbExclamation End If
alguien puede ayudarme? me estoy volviendo loca!!!