Allora, ho provato a copiare la tua sql su una tabella creata in access con questi campi: codice commessa fornitore e fase.
Funziona correttamente (anche se quando passo in visualizzazione struttura ottengo il messaggio che vedi sotto ma credo sia del tutto ininfluente infatti rispondendo ok al messaggio la query funziona e non apporta alcuna modifica alla sql).
Sql funzionante con immagine risultato
SELECT TA.Codice, TA.Commessa, TA.Fornitore, TB.Fornitore
FROM Tabella1 AS TA
LEFT JOIN Tabella1 AS TB ON (TA.Fornitore <> TB.Fornitore) AND (TA.Codice = TB.Codice) AND (TA.Commessa = TB.Commessa) AND (TA.Fase = TB.Fase)
WHERE TA.Fornitore = "2401002722";
Grazie al tuo aito ho capito che la funzione di where crea il problema. Quando? Quando invece di scriverla a mano sulla sql la metto dritta in struttura, qui sono ancora ok (sql con aggiunta a mano della condizione where sulla commessa)
SELECT TA.Codice, TA.Commessa, TA.Fornitore, TB.Fornitore
FROM Tabella1 AS TA
LEFT JOIN Tabella1 AS TB ON (TA.Fornitore <> TB.Fornitore) AND (TA.Codice = TB.Codice) AND (TA.Commessa = TB.Commessa) AND (TA.Fase = TB.Fase)
WHERE TA.Fornitore = "2401002722" and TA.Commessa= 'B3735';
Condizione di where messa in struttura: (qui il risultato è che non ho più il raggruppamento per codice!!!!!)
SELECT TA.Codice, TA.Commessa, TA.Fornitore, TB.Fornitore
FROM Tabella1 AS TA LEFT JOIN Tabella1 AS TB ON (TA.Fase = TB.Fase) AND (TA.Commessa = TB.Commessa) AND (TA.Codice = TB.Codice)
WHERE (((TA.Commessa)="B3735") AND ((TA.Fornitore)="2401002722"));
Quindi la query di selezione funziona ho il dubbo però che adesso, trasformandola in query di creazione tabella, mi ritorni il problema iniziale.
E difatti il mio momento di gasamento finisce subito, ottengo la tabella con i codici non raggruppati in riga.
SELECT TA.Codice, TA.Commessa, TA.Fornitore, TB.Fornitore INTO Prova
FROM Tabella1 AS TA
LEFT JOIN Tabella1 AS TB ON (TA.Fase = TB.Fase) AND (TA.Commessa = TB.Commessa) AND (TA.Codice = TB.Codice)
WHERE TA.Fornitore="2401002722"