Las SELECT, con excepción de palabras reservadas propias del Access, concretamente el IIF son traducibles perfectamente de access a SQL, para las funciones, hay que buscar el equivalente, en el caso de IIF, debes utilizar CASE, tu ejemplo
SELECT Contrato, Contratista, Fecha_Cierre, [AñoFiscal xxxx] AS AF,
CASE WHEN Month([Fecha_Cierre])>9 THEN Month([Fecha_Cierre])-9
ELSE
Month([Fecha_Cierre])+3 END AS Mes,
CASE WHEN [Mes]=1 THEN 1 ELSE 0 END AS M1Sol, CASE WHEN [Mes]=2 THEN 1 ELSE 0 END AS M2Sol
FROM CONTRATOS
WHERE
(((CASE Month([Fecha_Cierre])>9 THEN 1 ELSE 0 END+Year([Fecha_Cierre]))=[AñoFiscal xxxx]))
Si los almacenas en Procedimientos Almacenados o en vistas, en cualquiera de las dos, el resultado debe ser el mismo, en general los PA son más rápidos y permiten hacer ORDER BY, desde una vista no puedes utilizar en PA, pero sí al reves, podrías utilizar una vista dentro de un PA.
Un saludo