Filtro su più tabelle: è possibile?

di il
33 risposte

Filtro su più tabelle: è possibile?

Ciao sono un newbie su Access.
Mi è stato presentato il seguente problema: ho un database che contiene una serie di informazioni su delle aziende. Questo database è composto da due tabelle, sulla prima tabella c'è la parte anagrafica delle aziende (nome, telefono, indirizzo...) sulla seconda tabella ci sono invece i nomi dei referenti di queste aziende.
Mi è stato chiesto se è possibile fare in modo che un filtro fatto sulla prima tabella possa propagare il proprio effetto anche sulla seconda.
Provo a spiegarmi meglio: nella prima tabella è presente il campo Settore Aziendale (turismo, energia...) quello che si vorrebbe riuscire a fare (usando solo i filtri) è ottenere i nomi dei referenti delle aziende di un determinato settore, filtrando dalla prima tabella (in cui c'è il campo Settore Aziendale).

E' possibile?

Grazie...

33 Risposte

  • Re: Filtro su più tabelle: è possibile?

    Ciao,

    1) Premi la scheda del menu "Strumenti Database" e poi "Relazioni" espandi le 2 tabelle incriminate e fai una immagine che le mostri entrambe... poi postala qui nel forum e scrivi esplicitamente quali campi della prima tabella vuoi usare come filtro per la seconda...
    2) Scrivi o posta un esempio di un paio di record di entrambe le tabelle... magari record collegati

    a presto.
  • Re: Filtro su più tabelle: è possibile?

    Ciao grazie per la risposta, sei gentile, ora non posso inviare materiale perché non ho il file con me, lunedì invio.

    Grazie ancora
  • Re: Filtro su più tabelle: è possibile?

    Per me la descrizione è abbastanza chiara. Devi creare una query che includa entrambe le tabelle.
    1. Apri una nuova query In visualizzazione struttura
    2. Importa entrambe le tabelle Aziende e Referenti (noterai la linea di join che le collega automaticamente)
    3. Trascina nella griglia della visualizzazione struttura query i campi che vorresti vedere, ma soprattutto Settore Aziendale, poi uno o più campi significativi da Aziende e uno o più campi significativi da Referenti.
    4. Alla colonna Settore Aziendale, in corrispondenza di Criterio, scrivi ad esempio:
    Like "turismo"
    oppure
    Like [Digita un Settore Aziendale]
    Per Like "turismo" vedrai tutti i referenti di tutte le Aziende "turismo". Per Like [Digita un Settore Aziendale] ti apparirà una piccola finestra dove digitare un Settore. Quest'ultimo caso è più generale del primo (consigliato).
    5. Salva la query
  • Re: Filtro su più tabelle: è possibile?

    Ciao OsvaldoLaviosa,
    intanto grazie per la risposta; in effetti ho fatto una query; però in ufficio dove lavoro, per esigenze loro preferirebbero potere usare i filtri, insomma loro sperano che sia possibile fare in modo che, in generale, qualunque filtro si applichi su qualunque tabella, si propaghi a tutte le tabelle.
    Anche in un altro forum su cui ho scritto mi hanno immediatamente suggerito di fare una query, però un utente mi inviato del codice, credo in Vba (ma non sono sicuro), il guaio è che io non so programmare in Vba, dunque è un bel guaio.

    Non per farla più complicata di quello che è, ma lascio qui di seguito il link al tread che ho postato sull'altro forum, quello con il codice, così magari se qualcuno ne sa qualcosa può darmi qualche dritta sull'attendibilità di quello che c'è scritto, e sul da farsi.

    Grazie.

    http://www.access-programmers.co.uk/forums/showthread.php?s=0accc9ea6d8f1c3497b4a1c521015d85&t=262430
  • Re: Filtro su più tabelle: è possibile?

    Per me non è questione di codice. Più semplicemente si tratta di organizzare una visualizzazione coerente alla tua esigenza...che però non è chiara. A questo punto anch'io avrei bisogno di vedere una immagine di cosa vorresti realizzare. Ovviamente descrivi dettagliatamente tutti i campi di tutte le tabelle.
  • Re: Filtro su più tabelle: è possibile?

    Ok, allora vi invio la stampa a schermo delle relazioni tra le due tabelle; in sostanza la tabella di destra contiene la parte anagrafica delle aziende, e quella a sx i nomi e i contatti dei referenti di quelle aziende. Si vorrebbe fare in modo che usando il filtro sul campo "Settore primario" della tabella di dx, questo si propaghi anche su quella a sx, mostrando quindi solo i campi dei referenti delle aziende filtrate.
    Allegati:
    14310_a67fa3c3e764ba3e02fe66f51f0c0340.png
    14310_a67fa3c3e764ba3e02fe66f51f0c0340.png
  • Re: Filtro su più tabelle: è possibile?

    Diciamo così però, in generale, si vorrebbe fare in modo che i filtri si propaghino sempre su entrambe le tabelle, sempre (anche se non so dire se poi questo ha sempre senso); tuttavia questo è ciò che mi è stato richiesto.
  • Re: Filtro su più tabelle: è possibile?

    Errori:
    1. Il titolo del thread: solo tu puoi correggerlo (possibile)
    2. Le due tabelle hanno 2 relazioni: ne basta una. La relazione [Referenti aziendali].[Cognome]---[Anagrafica Aziende].[Cognome CP] non serve, anzi è dannosa. Di conseguenza devi eliminare il campo [Cognome CP]
    3. Io avrei chiamato di 2 campi ID rispettivamente IDReferente e IDAzienda.
    4. La linea di join non ha la caratteristica "Applica integrità referenziale" che io considero importantissima.

    Domande:
    1. I Referenti sono strettamente legati alle Aziende? Oppure un Referente può lavorare con più di una?
    2. Un Referente lavora per un solo Settore? Se può lavorare in più Settori, come gestisci questa cosa?
    3. Non hai previsto una tabella Settori?
  • Re: Filtro su più tabelle: è possibile?

    Ok, grazie per tutte le dritte (compresa la prima...). Questo database non l'ho progettato io (che di Access, come avrai intuito, non so nulla) effettivamente tutti i manuali citano l'importanza dell'integrità referenziale...

    Provo a rispondere meglio che riesco alle tue domande:

    1. i referenti sono personale interno alle aziende, quindi lavorano per una singola azienda
    2. sì ciascun referente lavora per un singolo settore
    3. se è utile, perché no
  • Re: Filtro su più tabelle: è possibile?

    1. Crea una tabella Settori, magari con un solo campo testo Settore (chiave primaria), poi relazione Settori.Settore uno-a-molti con Referenti.[Settore Aziendale]
    2. Aziende uno-a-molti con Referenti attraverso un campo che io avrei chiamato IDAzienda (più i nomi campo sono corti ed essenziali meglio è).

    Per provare a rispondere alla tua domanda iniziale, io penserei a una maschera Settori che guarda una sottomaschera Referenti+Aziende. Resta comunque il fatto che Referenti+Aziende è una query. Io ci vedrei una cosa del genere. Nulla altro di più. Nessu codice. Non so se ho centrato lo scopo della tua domanda.
  • Re: Filtro su più tabelle: è possibile?

    I punti 1. e 2. sono molto interessanti, davvero, sono proprio un profano, ma queste cose stanno cominciando a intrigarmi.

    Azz anche l'idea maschera --> sottomaschera è eccellente.

    Alla fine dei conti anche io vedrei bene una query,è un comando semplice e potentissimo (almeno per il mio livello che è prossimo allo zero assoluto) ma appunto qui volevano sapere se fosse stato possibile usare i filtri dalle singole tabelle.

    Ho parecchie cose su cui ragionare, grazie...

    p.s. se vengono fuori ancora questioni non esiterò a chiederti/vi aiuto...
  • Re: Filtro su più tabelle: è possibile?

    iaccess14 ha scritto:


    ma appunto qui volevano sapere se fosse stato possibile usare i filtri dalle singole tabelle
    Potresti fare 3-4 esempi di cosa vorrebbero (record alla mano) i tuoi colleghi?
  • Re: Filtro su più tabelle: è possibile?

    Mettiamo di avere un mini database analogo a quello reale:
    nella prima tabella (Aziende) ci sono i records dell'azienda X e quello dell'azienda Y (con nome, indirizzo, telefono, Settore...), nella seconda tabella (Referenti) ci sono i nomi e i dati di Tizio e Caio che lavorano presso l'azienda X, e di Sempronio che lavora presso l'azienda Y. Supponiamo che l'azienda X operi nel settore turismo e l'azienda Y in un qualsiasi altro settore. Ora supponiamo che io stia tentando di visualizzare solo i nomi dei referenti delle aziende che operano ne settore turismo. Allora applico un filtro al Settore aziende (che stà nella prima tabella), dunque otterrò solo l'azienda X come giusto che sia. Poi guardo nella tabella referenti, aspettandomi di leggere solo i nomi di Tizio e Caio, invece ovviamente, è ancora presente anche il nome di Sempronio, in quanto il filtro non ha effetto sulla seconda tabella.

    Qui da me si aspettano invece di riuscire a fare in modo di ottenere solo Tizio e Caio usando solo i filtri, senza insomma fare query.
  • Re: Filtro su più tabelle: è possibile?

    iaccess14 ha scritto:


    Supponiamo che l'azienda X operi nel settore turismo e l'azienda Y in un qualsiasi altro settore
    Dall'immagine risulta che il campo [Settore aziendale] compare nella tabella Referenti.
    Perchè parli di Settore di Azienda (che tra l'altro così lo avevo immaginato dall'inizio)?
    Hai sbagliato a mettere il campo Settore Aziendale in Referenti, mentre volevi metterlo in Aziende?
    Esistono Aziende apppartenenti a più (molti) Settori?
Devi accedere o registrarti per scrivere nel forum
33 risposte