miércoles, 24 de febrero de 2016

Crear una función escalar en SQL Server y utilizarla desdea MS Access

CREATE FUNCTION Retornar_Opcion (@opcionId NVARCHAR(50)) RETURNS NVARCHAR(250)
AS
BEGIN
DECLARE @valor NVARCHAR(250)
SELECT @valor = Valor
FROM Certi_Opciones
WHERE Opcion = @opcionId
RETURN @valor
END
GO


Ahora bien, en principio hay dos formas de usarla en MS Access:
  • Usar DAO Querydef y acceder directamente a la base para que la función definida por el usuario sea reconocida
  • Crear una vista en SQL Server que utilice la función y llamar a la vista normalmente desde MS Access. Ejemplo:

CREATE VIEW V_Snippets_Parametrizados
AS
SELECT S.ID, dbo.Retornar_Opcion(S.ID) AS Snippet
FROM Snippets S
GO

Con este último método se accede sin problemas vía ODBC porque MS Access no utiliza la función en forma directa.