charlie ha scritto:Ciao, devi inserire i parametri in "Collega da" e/o "Collega per" della finestra delle Proprietà del sub Form.
Si Charlie, avevo provato ad impostare quei parametri ma non mi era permesso, io collego una tabella (per i filtri) e una ricerca (per i dati da filtrare), se provo a impostare quei due campi mi compare un errore. Però ripensando a quanto mi avete spiegato fino ad ora ho creato una vista della ricerca in questione, a questo punto ho potuto collegarla.
Ho appena riprovato e ora funziona tutto correttamente con questo codice:
Codice: Seleziona tutto
SELECT
"ID_Gen", "ID_Imp", "ID_Res", "Matricola_Gen", "Costruttore_Gen", "Modello_Gen", "Indirizzo_Imp", "Civico_Imp", "Cognome_Res", "Nome_Res", "RagioneSociale_Res"
FROM
"Tab_UnioneTabelle"
WHERE
((("Tab_UnioneTabelle"."Matricola_Gen" LIKE '%' || :X1 || '%') OR (:X1 IS NULL)) AND
(("Tab_UnioneTabelle"."Indirizzo_Imp" LIKE '%' || :X2 || '%') OR (:X2 IS NULL)) AND
(("Tab_UnioneTabelle"."Cognome_Res" LIKE '%' || :X3 || '%') OR (:X3 IS NULL)) AND
(("Tab_UnioneTabelle"."RagioneSociale_Res" LIKE '%' || :X4 || '%') OR (:X4 IS NULL)))
La domanda è: cosa cambia impostanto i valori :X1 al posto dei campi della tabella filtro, come avevo impostato in precedenza? Il risultato finale mi sembra lo stesso, si tratta di una semplice semplificazione del codice o miglioro anche altri aspetti? Il fatto di aver dovuto creare una vista della ricerca appesantisce il DB?
Il problema della moltiplicazione delle condizioni comunque resta, se salvo e riapro vedo questo codice:
Codice: Seleziona tutto
SELECT
"ID_Gen", "ID_Imp", "ID_Res", "Matricola_Gen", "Costruttore_Gen", "Modello_Gen", "Indirizzo_Imp", "Civico_Imp", "Cognome_Res", "Nome_Res", "RagioneSociale_Res"
FROM
"Tab_UnioneTabelle"
WHERE
( "Matricola_Gen" LIKE '%' || :X1 || '%' AND "Indirizzo_Imp" LIKE '%' || :X2 || '%' AND "Cognome_Res" LIKE '%' || :X3 || '%' AND "RagioneSociale_Res" LIKE '%' || :X4 || '%' OR "Matricola_Gen" LIKE '%' || :X1 || '%' AND "Cognome_Res" LIKE '%' || :X3 || '%' AND "RagioneSociale_Res" LIKE '%' || :X4 || '%' AND :X2 IS NULL OR "Matricola_Gen" LIKE '%' || :X1 || '%' AND "Indirizzo_Imp" LIKE '%' || :X2 || '%' AND "RagioneSociale_Res" LIKE '%' || :X4 || '%' AND :X3 IS NULL OR "Matricola_Gen" LIKE '%' || :X1 || '%' AND "RagioneSociale_Res" LIKE '%' || :X4 || '%' AND :X2 IS NULL AND :X3 IS NULL OR "Matricola_Gen" LIKE '%' || :X1 || '%' AND "Indirizzo_Imp" LIKE '%' || :X2 || '%' AND "Cognome_Res" LIKE '%' || :X3 || '%' AND :X4 IS NULL OR "Matricola_Gen" LIKE '%' || :X1 || '%' AND "Cognome_Res" LIKE '%' || :X3 || '%' AND :X2 IS NULL AND :X4 IS NULL OR "Matricola_Gen" LIKE '%' || :X1 || '%' AND "Indirizzo_Imp" LIKE '%' || :X2 || '%' AND :X3 IS NULL AND :X4 IS NULL OR "Matricola_Gen" LIKE '%' || :X1 || '%' AND :X2 IS NULL AND :X3 IS NULL AND :X4 IS NULL OR "Indirizzo_Imp" LIKE '%' || :X2 || '%' AND "Cognome_Res" LIKE '%' || :X3 || '%' AND "RagioneSociale_Res" LIKE '%' || :X4 || '%' AND :X1 IS NULL OR "Cognome_Res" LIKE '%' || :X3 || '%' AND "RagioneSociale_Res" LIKE '%' || :X4 || '%' AND :X2 IS NULL AND :X1 IS NULL OR "Indirizzo_Imp" LIKE '%' || :X2 || '%' AND "RagioneSociale_Res" LIKE '%' || :X4 || '%' AND :X3 IS NULL AND :X1 IS NULL OR "RagioneSociale_Res" LIKE '%' || :X4 || '%' AND :X2 IS NULL AND :X3 IS NULL AND :X1 IS NULL OR "Indirizzo_Imp" LIKE '%' || :X2 || '%' AND "Cognome_Res" LIKE '%' || :X3 || '%' AND :X4 IS NULL AND :X1 IS NULL OR "Cognome_Res" LIKE '%' || :X3 || '%' AND :X2 IS NULL AND :X4 IS NULL AND :X1 IS NULL OR "Indirizzo_Imp" LIKE '%' || :X2 || '%' AND :X3 IS NULL AND :X4 IS NULL AND :X1 IS NULL OR :X2 IS NULL AND :X3 IS NULL AND :X4 IS NULL AND :X1 IS NULL )
Devo dire che succede la stessa cosa con il file che ha postato Vladko, aprendolo in visualizzazione struttura il codice è molto più lungo di quanto descritto nel formulario.
Come dicevo funzionano entrambi, volevo solo capire se è normale questo fatto.