Ci provo: la tua query, senza la clausola WHERE, risponderebbe già alla tua esigenza, restituendoti TUTTI i records presenti in TBL_anagrafica_compagnia, sia che esista un collaboratore relazionato a quella compagnia, sia che costui non esista.
La clausola WHERE restringe poi la ricerca ai dati relativi a un singolo collaboratore.
Per stampare sempre anche i nomi delle altre compagnie, potresti provare ad eliminare la clausola WHERE e poi agire in fase di presentazione a video, dicendo per esempio (pseudo-codice da tradurre in codice)
codice:
- per ogni record presente nel recordset stampa:
- tutti i campi che stampi già ora se TBL_Compensi_Collaboratori.ID_Collaboratore="&ID
- solo il nome della compagnia, lasciando in bianco gli altri campi, per tutti gli altri records
Per ottenere questo dovresti aggiungere all'intestazione della tabella una dicitura "nome compagnia" e ai dati che presenti un campo rs("nome_compagnia"), che dovrebbe essere già presente nel recordset, visto che estrai tutti i campi dalla tabella TBL_anagrafica_compagnia (Sql = "SELECT " &_
"TBL_Anagrafica_Compagnia.*, ecc. ecc....)
Naturalmente il nome del campo deve coincidere con quello, nella tabella TBL_Anagrafica_Compagnia, che contiene il nome delle compagnie...
E' una possibile soluzione. Se vuoi, fai sapere se funziona.