Hola lordcortes:
 
En lo particular, cuando se trata de reportes de entradas salidas nunca manejo fechas, sino consolidados, es decir sumando las entradas y salidas para obtener el total de existencias para una fecha determinada... más no sé si esto te sirva, en estos momentos no tengo modo de probar con ACCESS, pero te dejo el ejemplo de más o menos lo que hago son SQL Server, la sintaxis sería muy parecida y creo que se puede entender:    
Código SQL:
Ver originalDECLARE @Entradas TABLE (fecha datetime, producto VARCHAR(15), cantidad INT)
INSERT INTO @Entradas VALUES ('2011-07-25', 'TRICLOSAN', 10)    
INSERT INTO @Entradas VALUES ('2011-07-27', 'TRICLOSAN', 5)
INSERT INTO @Entradas VALUES ('2011-07-29', 'TRICLOSAN', 15)
INSERT INTO @Entradas VALUES ('2011-07-26', 'OTRO', 10) 
INSERT INTO @Entradas VALUES ('2011-07-27', 'OTRO', 1)
INSERT INTO @Entradas VALUES ('2011-07-28', 'OTRO', 4)
INSERT INTO @Entradas VALUES ('2011-07-28', 'UNO MÁS', 10)
 
SELECT * FROM @Entradas
 
/*
fecha                   producto        cantidad
----------------------- --------------- -----------
2011-07-25 00:00:00.000 TRICLOSAN       10
2011-07-27 00:00:00.000 TRICLOSAN       5
2011-07-29 00:00:00.000 TRICLOSAN       15
2011-07-26 00:00:00.000 OTRO            10
2011-07-27 00:00:00.000 OTRO            1
2011-07-28 00:00:00.000 OTRO            4
2011-07-28 00:00:00.000 UNO MÁS         10
*/
 
DECLARE @Salidas TABLE (fecha datetime, producto VARCHAR(15), cantidad INT)
INSERT INTO @Salidas VALUES ('2011-07-26', 'TRICLOSAN', 7)  
INSERT INTO @Salidas VALUES ('2011-07-27', 'TRICLOSAN', 3)
INSERT INTO @Salidas VALUES ('2011-07-27', 'OTRO', 8)   
INSERT INTO @Salidas VALUES ('2011-07-30', 'OTRO', 7)
 
SELECT * FROM @Salidas
 
/*
fecha                   producto        cantidad
----------------------- --------------- -----------
2011-07-26 00:00:00.000 TRICLOSAN       7
2011-07-27 00:00:00.000 TRICLOSAN       3
2011-07-27 00:00:00.000 OTRO            8
2011-07-30 00:00:00.000 OTRO            7
*/
 
SELECT 
T1.producto, 
T1.total_entradas, 
isnull(T2.total_salidas, 0) total_salidas, 
T1.total_entradas - isnull(T2.total_salidas, 0) existencia
FROM 
(SELECT E.producto, SUM(E.cantidad) total_entradas FROM @Entradas E GROUP BY E.producto) T1
LEFT JOIN 
(SELECT S.producto, SUM(S.cantidad) total_salidas FROM @Salidas S GROUP BY S.producto) T2 
ON T1.producto = T2.producto
 
/*
producto        total_entradas total_salidas existencia
--------------- -------------- ------------- -----------
TRICLOSAN       30             10            20
OTRO            15             15            0
UNO MÁS         10             0             10
*/
  
Es decir, toma cada tabla por separado y hace subconsultas agrupando por producto para obtener los totales, esos subconsultas son utilizados en una consulta "externa" para obtener las existencias por productos. observa que la fecha no es utilizada en ningún momento, y no importa si por ejemplo en un día no hubo sólo entradas, sólo salidas o entradas y salidas. 
No sé si esto sea más o menos lo que necesites, sino habría que revisar tu lógica de negocios, para revisar los criterios de elaboración del reporte. 
Dale un vistazo y nos comentas: 
Saludos
Leo