SELECT DISTINCTROW
[02CASSA].DATA,
[01CLIENTE].NOME,
[01CLIENTE].COGNOME,
[03SERVIZIOPRODOTTO].NOMESERVIZIO,
[03SERVIZIOPRODOTTO].COSTOSERVIZIO,
[03SERVIZIOPRODOTTO].NOMEPRODOTTO,
[03SERVIZIOPRODOTTO].COSTOPRODOTTO
FROM (01CLIENTE
INNER JOIN 02CASSA ON [01CLIENTE].[IDCLIENTE] = [02CASSA].[IDCLIENTE])
INNER JOIN 03SERVIZIOPRODOTTO ON [02CASSA].[IDCASSA] = [03SERVIZIOPRODOTTO].[IDCASSA]
GROUP BY
[02CASSA].DATA,
[01CLIENTE].NOME,
[01CLIENTE].COGNOME,
[03SERVIZIOPRODOTTO].NOMESERVIZIO,
[03SERVIZIOPRODOTTO].COSTOSERVIZIO,
[03SERVIZIOPRODOTTO].NOMEPRODOTTO,
[03SERVIZIOPRODOTTO].COSTOPRODOTTO
HAVING
((
([02CASSA].DATA) >=[Maschere]![QUERYNOMEDATA]![DataInizio] AND
([02CASSA].DATA) <=[Maschere]![QUERYNOMEDATA]![DataFine]) AND
(([01CLIENTE].NOME) =[Maschere]![QUERYNOMEDATA]![NOME]) AND
(([01CLIENTE].COGNOME)=[Maschere]![QUERYNOMEDATA]![COGNOME]
));
Questa NON E' esattamente una query su "COGNOME"
Per capire dove sta' il problema, DEVI iniziare con una SEMPLICE "SELECT"
SELECT
[01CLIENTE].NOME, [01CLIENTE].COGNOME
FROM 01CLIENTE
WHERE
[01CLIENTE].COGNOME="...cognome..."
e poi aggiungere, un po' alla volta, le rimanenti parti, fino a capire QUANDO e DOVE compare il problema.