Buongiorno.
Ho un DB diviso FE-BE. Il BE è su un percorso di rete e i FE sono 5 su altrettanti PC in azienda.
Il problema è che alcune maschere, all'apertura, impiegano anche 2 o 3 secondi.
In particolare sono problematiche le maschere nelle quali ci sono Combobox che utilizzo per filtrare i dati della maschera che dall'alto della mia ignoranza ho usato come segue
L'esempio più problematico è la Maschera “LottiDiProduzione” (quasi 3 secondi all'apertura) che ha 4 Combo per filtrare i dati e come origine record ha la seguente SELECT piuttosto complicata per la presenza delle combo
Da notare che le tabelle di origine, Lotti e Prodotti hanno al più qualche centinaio di record e singolarmente si aprono istantaneamente il che mi ha fatto pensare a dover riprogettare le maschere
SELECT LottiProduzione.ID, LottiProduzione.Data, LottiProduzione.ID_Prodotto, LottiProduzione.DataScadenza, LottiProduzione.Conservazione, LottiProduzione.Note, LottiProduzione.EAN, LottiProduzione.DataChiusura, Prodotti.DESCRIZIONE, Prodotti.DESCRIZIONE2, Prodotti.REPARTO, Prodotti.FAMIGLIA, Prodotti.GRUPPO, Prodotti.UM, Prodotti.PESO
FROM Prodotti RIGHT JOIN LottiProduzione ON Prodotti.ID = LottiProduzione.ID_Prodotto
WHERE (((LottiProduzione.ID_Prodotto)=[Maschere]![Lotti di Produzione]![CmbProdotto]) AND ((Prodotti.REPARTO)=[Maschere]![Lotti di Produzione]![CmbRep]) AND ((Prodotti.FAMIGLIA)=[Maschere]![Lotti di Produzione]![CmbFamiglia]) AND ((Prodotti.GRUPPO)=[Maschere]![Lotti di Produzione]![CmbGruppo])) OR
(((LottiProduzione.ID_Prodotto)=[Maschere]![Lotti di Produzione]![CmbProdotto]) AND ((Prodotti.REPARTO)=[Maschere]![Lotti di Produzione]![CmbRep]) AND ((Prodotti.GRUPPO)=[Maschere]![Lotti di Produzione]![CmbGruppo]) AND (([Maschere]![Lotti di Produzione]![CmbFamiglia]) Is Null)) OR
(((LottiProduzione.ID_Prodotto)=[Maschere]![Lotti di Produzione]![CmbProdotto]) AND ((Prodotti.FAMIGLIA)=[Maschere]![Lotti di Produzione]![CmbFamiglia]) AND ((Prodotti.GRUPPO)=[Maschere]![Lotti di Produzione]![CmbGruppo]) AND (([Maschere]![Lotti di Produzione]![CmbRep]) Is Null)) OR
(((LottiProduzione.ID_Prodotto)=[Maschere]![Lotti di Produzione]![CmbProdotto]) AND ((Prodotti.GRUPPO)=[Maschere]![Lotti di Produzione]![CmbGruppo]) AND (([Maschere]![Lotti di Produzione]![CmbFamiglia]) Is Null) AND (([Maschere]![Lotti di Produzione]![CmbRep]) Is Null)) OR
(((LottiProduzione.ID_Prodotto)=[Maschere]![Lotti di Produzione]![CmbProdotto]) AND ((Prodotti.REPARTO)=[Maschere]![Lotti di Produzione]![CmbRep]) AND ((Prodotti.FAMIGLIA)=[Maschere]![Lotti di Produzione]![CmbFamiglia]) AND (([Maschere]![Lotti di Produzione]![CmbGruppo]) Is Null)) OR
(((LottiProduzione.ID_Prodotto)=[Maschere]![Lotti di Produzione]![CmbProdotto]) AND ((Prodotti.REPARTO)=[Maschere]![Lotti di Produzione]![CmbRep]) AND (([Maschere]![Lotti di Produzione]![CmbFamiglia]) Is Null) AND (([Maschere]![Lotti di Produzione]![CmbGruppo]) Is Null)) OR
(((LottiProduzione.ID_Prodotto)=[Maschere]![Lotti di Produzione]![CmbProdotto]) AND ((Prodotti.FAMIGLIA)=[Maschere]![Lotti di Produzione]![CmbFamiglia]) AND (([Maschere]![Lotti di Produzione]![CmbRep]) Is Null) AND (([Maschere]![Lotti di Produzione]![CmbGruppo]) Is Null)) OR
(((LottiProduzione.ID_Prodotto)=[Maschere]![Lotti di Produzione]![CmbProdotto]) AND (([Maschere]![Lotti di Produzione]![CmbFamiglia]) Is Null) AND (([Maschere]![Lotti di Produzione]![CmbRep]) Is Null) AND (([Maschere]![Lotti di Produzione]![CmbGruppo]) Is Null)) OR
(((Prodotti.REPARTO)=[Maschere]![Lotti di Produzione]![CmbRep]) AND ((Prodotti.FAMIGLIA)=[Maschere]![Lotti di Produzione]![CmbFamiglia]) AND ((Prodotti.GRUPPO)=[Maschere]![Lotti di Produzione]![CmbGruppo]) AND (([Maschere]![Lotti di Produzione]![CmbProdotto]) Is Null)) OR
(((Prodotti.REPARTO)=[Maschere]![Lotti di Produzione]![CmbRep]) AND ((Prodotti.GRUPPO)=[Maschere]![Lotti di Produzione]![CmbGruppo]) AND (([Maschere]![Lotti di Produzione]![CmbFamiglia]) Is Null) AND (([Maschere]![Lotti di Produzione]![CmbProdotto]) Is Null)) OR
(((Prodotti.FAMIGLIA)=[Maschere]![Lotti di Produzione]![CmbFamiglia]) AND ((Prodotti.GRUPPO)=[Maschere]![Lotti di Produzione]![CmbGruppo]) AND (([Maschere]![Lotti di Produzione]![CmbRep]) Is Null) AND (([Maschere]![Lotti di Produzione]![CmbProdotto]) Is Null)) OR
(((Prodotti.GRUPPO)=[Maschere]![Lotti di Produzione]![CmbGruppo]) AND (([Maschere]![Lotti di Produzione]![CmbFamiglia]) Is Null) AND (([Maschere]![Lotti di Produzione]![CmbRep]) Is Null) AND (([Maschere]![Lotti di Produzione]![CmbProdotto]) Is Null)) OR
(((Prodotti.REPARTO)=[Maschere]![Lotti di Produzione]![CmbRep]) AND ((Prodotti.FAMIGLIA)=[Maschere]![Lotti di Produzione]![CmbFamiglia]) AND (([Maschere]![Lotti di Produzione]![CmbGruppo]) Is Null) AND (([Maschere]![Lotti di Produzione]![CmbProdotto]) Is Null)) OR
(((Prodotti.REPARTO)=[Maschere]![Lotti di Produzione]![CmbRep]) AND (([Maschere]![Lotti di Produzione]![CmbFamiglia]) Is Null) AND (([Maschere]![Lotti di Produzione]![CmbGruppo]) Is Null) AND (([Maschere]![Lotti di Produzione]![CmbProdotto]) Is Null)) OR
(((Prodotti.FAMIGLIA)=[Maschere]![Lotti di Produzione]![CmbFamiglia]) AND (([Maschere]![Lotti di Produzione]![CmbRep]) Is Null) AND (([Maschere]![Lotti di Produzione]![CmbGruppo]) Is Null) AND (([Maschere]![Lotti di Produzione]![CmbProdotto]) Is Null)) OR
((([Maschere]![Lotti di Produzione]![CmbFamiglia]) Is Null) AND (([Maschere]![Lotti di Produzione]![CmbRep]) Is Null) AND (([Maschere]![Lotti di Produzione]![CmbGruppo]) Is Null) AND (([Maschere]![Lotti di Produzione]![CmbProdotto]) Is Null))
ORDER BY LottiProduzione.ID DESC;
Si accettano suggerimenti di ogni tipo