Ricerca dati non corrispondenti

di il
2 risposte

Ricerca dati non corrispondenti

Ciao a tutti,
per un'associazione di volontariato sto cercando di creare un piccolo gestionale che consenta, tra le varie altre cose, di tenere traccia dei corsi somministrati ai vari volontari.
Tra le varie tabelle ho la tabella ANAGRAFICA e la tabella CORSIFRUITI relazionate 1 a molti.
Creare report per visualizzare i corsi fruiti o report per visualizzare a chi è già stato somministrato un corso è molto semplice, il problema mio è creare report per visualizzare a chi NON è stato già somministrato un determinato corso.

Se uso la funzione di ricerca dati non corrispondenti ottengo la lista di chi non ha quel determinato corso, ma se un volontario ha altri corsi mi compare nella lista.

Parte della lista di chi ha usufruito del corso “Modulo base”

Parte della lista che ottengo se cerco chi non ne ha usufruito dove si vedono anche gli id di chi ne ha usufruito

Non so se sono stato chiaro e mi scuso per la lungaggine o se ho infranto regole. Grazie dell'aiuto

2 Risposte

  • Re: Ricerca dati non corrispondenti

    In realtà manca una tabella con l'elenco dei corsi. E una terza tabella dovrebbe contenere l'associazione utente-corso.

    Così come fai adesso, sicuramente ripeterai la descrizione del corso nella tabella CORSIFRUITI e non va bene dal punto di vista della normalizzazione.

    Per il problema, in particolare, puoi dettagliare quale è la query che usi per la ricerca e quali parametri usi?

  • Re: Ricerca dati non corrispondenti

    Grazie Oregon

    la tabella dei corsi è presente, mi serve anche per vincolare chi inserisce i dati a nomi predeterminati ed impedire l'inserimento di dati “di fantasia”.

    ho anche una tabella DUMMYCORSOFRUITO che svuoto e popolo via VBA ad ogni chiamata del corso da ricercare, tabella che poi confronto con CORSIFRUITI

    l'associazione utente-corso la eseguo direttamente sulla tabella CORSIFRUITI relazionata con l'anagrafica  

    concordo che la normalizzazione non va bene in quanto e in effetti, pur avendo la tabella dei corsi, ripeto la descrizione, ma questo mi ha semplificato la vita in altre parti del programma.

    la query la eseguo tra le tabelle  CORSI FRUITI e DUMMYCORSI tirandomi dietro l'anagrafica per recuperare, subito, i nomi:

    SELECT tblCorsiFruiti.idCorsiFruiti, tblCorsiFruiti.idAnagrafica, tblAnagrafica.Cognome, tblAnagrafica.Nome, tblCorsiFruiti.Descrizione
    FROM tblAnagrafica INNER JOIN (tblCorsiFruiti LEFT JOIN tblDummyCorso ON tblCorsiFruiti.[Descrizione] = tblDummyCorso.[Corso]) ON tblAnagrafica.IdAnagrafica = tblCorsiFruiti.idAnagrafica
    WHERE (((tblDummyCorso.Corso) Is Null));

     Seguo il tuo consiglio di creare la tabella con l'associazione utente-corso per vedere se ne esco

Devi accedere o registrarti per scrivere nel forum
2 risposte