Perdita di dati

di il
4 risposte

Perdita di dati

Sono in tilt, anzi nel panico.
Ora che la mia banca dati raccoglie più di 200 voci, mi accorgo che da query non visualizzo tutte le voci che in effetti esistono nel database.
Ho una query dove ho inserito per determinati campi una condizione (criterio) AND per filtrare.
In questa query sono caricate tre tabelle da cui prendere informazioni che manderò in stampa.
La cosa strana è che se in una o più tabelle non vi sono dati collegati al record filtrato, il record non viene inserito nella query e quindi non mi viene stampato.
Esempio:
Tabella "Aderente" (madre): ID, nome, cognome, indirizzo id_telefono, id_interessi.
Tabella "Contatti" (figlio): id_telefono, nr.
Tabella "Interessi" (figlio): id_interessi, interesse.

Criterio al campo nome: Like [Forms]![M_Sel_Ade].[socio] & "*"
Morale: Se di un aderente non conosco ancora il suo nr. di telefono oppure un suo interesse, il record non mi entra nella query.
Tutto funziona regolarmente se non manca nessun dato.
Come faccio a dire alla query di ignorare l'assenza dei figli?

Potete darmi un aiuto?

Grazie
antonio

4 Risposte

  • Re: Perdita di dati

    Studia i diversi tipi di JOIN: quello che ti serve e' una OUTER JOIN
  • Re: Perdita di dati

    Ti ringrazio innanzitutto per aver aperto con me un dibattimento sulla cosa .
    Purtroppo non mi si è aperta nessuna breccia.
    Ho cercato OUTER JOIN su help ma senza successo.
    Ho consultato internet e lì ho scoperto che esiste LEFT e RIGHT e FULL OUTER JOIN, e ne ho afferrato il concetto.
    Nel frattempo a livello menù RELAZIONI, ho cambiato le join di relazione mettendole sul secondo gruppo. Praticamente ho chiesto di visualizzare tutti i record della tabella madre e solo i record della figlia che avessero una corrispondenza.
    Fra l'altro se modifico l' SQL della mia query mi dà errore di sintassi ovunque scriva OUTER JOIN.
    Purtroppo nulla mi è cambiato nel risultato. Forse non ho agganciato la soluzione.
    Ti mando l'SQL della query:
    SELECT Aderenti.professione, Aderenti.figura, Aderenti.titoloST, Aderenti.qualifica, Interessi.interesse, Aderenti.ragsoc, Aderenti.Indirizzo, Aderenti.ID_Ade, Contatti.contatto

    FROM Tipo_contatto INNER JOIN (Interessi INNER JOIN ((Aderenti INNER JOIN Contatti ON Aderenti.ID_Ade=Contatti.id_conade) INNER JOIN Profili ON Aderenti.ID_Ade=Profili.id_aderente)
    ON Interessi.ID_Int=Profili.id_interesse)

    ON Tipo_contatto.ID_Tc=Contatti.id_tipocon
    WHERE (((Aderenti.professione) Like Forms!M_Sel_Ade.profes & "*") And ((Interessi.interesse) Like Forms!M_Sel_Ade.inter & "*"))
    ORDER BY Aderenti.ragsoc;

    Dammi qualche altra dritta magari.
    ciao.
  • Re: Perdita di dati

    Si; tutto OK
    ho studuato i diversi titi di JOIN e, pur senza poche tribolazioni, ho risolto i miei problemi.

    Ino ogni caso non ha voluto accettarmi per motivi, diceva lui, di sintassi la voce OUTER, ma creando una query separata e poi richiamandola, il problema è rientrato.

    Grazie di nuovo
    antonio
  • Re: Perdita di dati

    migliorabile ha scritto:


    Studia i diversi tipi di JOIN: quello che ti serve e' una OUTER JOIN
    OUTER non è disponibile in tutte le versioni di Access.
Devi accedere o registrarti per scrivere nel forum
4 risposte