Si no me equivoco Access usa los corchetes [ ] para los nombres de los campos, WHEN... THEN... ELSE... END... no son campos, sino instrucciones y al parecer son propias del SQL Server, no sirven en Access.
Lo que se me ocurre es lo siguiente:
Código vb:
Ver original'Un Recordset:
rstData.Open "SELECT EosCodEmp,EosFecCot,EosCodRub, EosCodDC, sum(EosImpMN) as MONTO_SUMA FROM Linea_Factura Where Eoscodemp = 'IS' group by EosCodEmp,EosFecCot,EosCodRub, EosCodDC", cnn, adOpenDynamic, adLockOptimistic
'Luego, validar:
If EosCodDC='C' then
TOTAL= (rstData!MONTO_SUMA) *-1
Else
TOTAL=rstData!MONTO_SUMA
End If