Innanzi tutto devo fare delle precisazioni:
codice:
SELECT Lavori.Lavoro, Lavori.Onorario
FROM Lavori
WHERE (((Lavori.[N° Cliente])=[form]![Sottomaschera Lavori]![N° Cliente]));
L' ho sostituito con
codice:
SELECT Lavori.Lavoro, Lavori.Onorario
FROM Lavori
WHERE (((Lavori.[N° Cliente])=' [forms]![Sottomaschera Lavori]![Rep N°] ' ));
questo perchè:
1. form si riferisce a un campo mentre forms ad una maschera.
2. per la regola della famosa relazione uno-a-molti.
Scopo del tutto: la maschera principale estrae da una tabella chiamata anagrafica il nome e congnome del cliente, la prima sottomaschera estrae dalla tabella lavori i [N° Rep] che contengono [IDcliente] selezionato. La seconda sottomaschera estrae dalla tabella lavori alcuni dettagli relativi al [N° Rep] selezionato nella prima sottomaschera.
Per fare questo ho usato questa sub
codice:
Private Sub Rep_N°_GotFocus()
Dim ctlLstBox As Control
Set ctlLstBox = Forms![Sottomaschera dettaglio lavori]!Lavoro
DoCmd.Requery ctlLstBox.Name
End Sub
Ora il messaggio di errore che mi dà è questo:
Errore di run-time '2450'
impossibile trovare la maschera 'Sottomaschera dettaglio lavori' a cui si fa riferimento nell' espressione."
Di chi è la colpa?
:master:
Comunque proverò anche a seguire il tuo consiglio riguardo NumCliente