Provo a mettere un po' di ordine passo passo (ammesso di aver capito davvero il problema): vediamo se entra tutto nella testa di Emiljx.
1. Imprese.IDImpresa (PK, numerazione automatica) uno-a-molti Lavoratori.IDImpresa (FK, numerico), con le 3 spunte su "Applica integrità referenziale", "Aggiorna a catena", "Elimina a catena": OK.
2. In visualizzazione struttura tabella Lavoratori imposti una casella combinata su IDImpresa con le seguenti proprietà:
Tipo origine riga: Tabella/query
Origine riga: clicca sui 3 puntini e imposta una query con 2 colonne, IDImpresa, Impresa, ordinamento Crescente su Impresa
Numero colonne: 2
Larghezza colonne: 0 cm;5 cm (ossia la prima colonna non si deve vedere)
Larghezza elenco: 5 cm
3. Salva la tabella
4. Ricostruisci la maschera Lavoratori sfruttando la procedura guidata, la quale erediterà tutte le proprietà della tabella Lavoratori, compresa la casella combinata IDImpresa "ben ottimizzata".
Nei punti 2. e 4. dovresti automaticamente vedere un "testo" di Impresa, ma che poggia sul IDImpresa "sottostante".
A me non è chiaro se preferisci gestire maschera/sottomaschera Imprese/Lavoratori oppure solo maschera Lavoratori e qualora un IDImpresa non c'è vorresti gestire l'evento "Non in elenco" (NotInList). Sia chiaro che la casella combinata (solo per selezionare) funziona sia in tabella, sia in maschera. Mentre l'eventuale gestione di NotInList si può fare solo con la maschera.