Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
Grazie per la disponibilità carletto1 ma per ora non credo sia necessario postare il DB, ho risolto nel modo seguente:
In pratica prima di recuperare il dato che mi serve verifico, su entrambe le query interessate, che il campo che le mette in relazione non sia nullo (e quindi il record esiste).
Verifica1: IsNull([CMprz1_RmbCarico_Prodotti_qyRagg]![Id_Prodotto]) 'NB per questo parametro verifico solo su una query perchè sull'altra query (Prodotti...) certamente cé lID prodotto (chiave primaria).
Verifica2: IsNull([Prodotti_Acq_Elenco_qy]![PK_Ordine_aFornitore])+IsNull([Prodotti_Acq_Elenco_qy]![PK_Ordine_aFornitore])
Verifica3: IsNull([Prodotti_Acq_Elenco_qy]![EK_Rifornimento])+IsNull([CMprz3_RmbCarico_Rifornim_qyRagg]![ID_Rifornimento])
in questo modo ho verificato che i tre controlli funzionassero e quindi li ho poi combinati con IIf in una sola formula per trovare e sommare i tre parziali:
CM: IIf(IsNull([CMprz1_RmbCarico_Prodotti_qyRagg]![Id_Prodotto]);0;[CMprz1_RmbCarico_Prodotti_qyRagg]![CMparz1_RmbUnitProdotto])+IIf(IsNull([Prodotti_Acq_Elenco_qy]![PK_Ordine_aFornitore])+IsNull([Prodotti_Acq_Elenco_qy]![PK_Ordine_aFornitore])<>0;0;[CMprz2_RmbCarico_OrdFornit_qyRagg]![CMparz2_RmbUnitOrdine])+IIf(IsNull([Prodotti_Acq_Elenco_qy]![EK_Rifornimento])+IsNull([CMprz3_RmbCarico_Rifornim_qyRagg]![ID_Rifornimento])<>0;0;[CMprz3_RmbCarico_Rifornim_qyRagg]![CMparz3_RmbUnitRifornim])
(NB: ho colorato diversamente le tre verifiche sperando di rendere la formula più leggibile)
Questo il risultato:
In questo modo il mio costo a magazzino (CM) non va mai in errore e posso proseguire col mio lavoro (le tre colonne di verifica posso anche cancellarle).
Certo mi piacerebbe anche capire perché nelle formule precedenti IsError e Nz non hanno funzionato....
Grazie ancora per la disponibilità carletto1 e ovviamente sono sempre ben accetti altri suggerimenti/indicazioni.
Buona giornata.
Enrico.