Access : Chiave esterna e query SQL

di
Anonimizzato10848
il
1 risposte

Access : Chiave esterna e query SQL

Ciao a tutti, sto implementando una Rubrica a scopo (auto)didattico ma ho un problema e spero che qualcuno abbia coraggio e pazienza per leggersi quanto segue

Al momento ho inserito le seguenti tabelle

Anagrafica(ID, Nome, Cognome, Cell)
Tipologia(IDTipologia, NomeTipologia)
AssociazioneTipologia(IDAssociazione, LookUpAnagrafica, LookUpTipologia)
DatiAmico(FK_Amico, FilmPreferito, SquadraDelCuore)
DatiCollega(FK_Collega, Reparto, sede)

Ecco i significati delle tabelle.

- Anagrafica(ID, Nome, Cognome, Cell) : persone inserite
- Tipologia(IDTipologia, NomeTipologia) : in NomeTipologia metto "amico","collega","cliente" etc. IDTipologia e' chiave primaria ed e' di tipo contatore.
- AssociazioneTipologia(IDAssociazione, LookUpAnagrafica, LookUpTipologia) :
Siccome una persona puo' appartenere a una o piu' tipologie ho creato questa tabella in cui effettuare questa associazione. I campi lookUpAnagrafica e LookUpTipologia puntano rispettivamente alla chiave primaria delle tabelle anagrafica e tipologia. Siccome per inserire i dati in questi campi volevo che comparissero nel menu' a tendina i dati dei campi a cui puntavano, Il "Data Type" di questi campi e' stato creato in Access, col menu' a tendina e selezionando "lookUp Wizard". In tal modo quando devo inserire un nome e associarlo alla tipologia, mi compare autmaticamente e non devo far altro che selezionarlo.

orbene adesso mi sono creato una tabella in cui devono comparire i dati SOLO degli amici :
DatiAmico(FK_amico, SquadraDelCuore, Filmpreferito)
e creero' anche tabelle analoghe tipo DatiCollega etc.

Ecco il PROBLEMA:
in questa tabella (DatiAmico) la chiave esterna FK_Amico deve contenere SOLO ed ESCLUSIVAMENTE gli ID delle persone che sono state definite appartenenti alla tipologia "amico", andando a leggere nella tabella con le associazioni (Tabella AssociazioneTipologia). Dovrebbe quindi ottenere gli ID delle persone identificate come "amico" e (possibilmente) popolare il menu' a tendina relativo all'inserimento dati nella tabella.

Quindi e' come se la FK_Amico dovesse essere legata ad una query giusto?
Mi date un consiglio su come implementare questa soluzione?

L'esito finale dovrebbe essere che cliccando sulla tabella "DatiAmico" e volendo immetter eun valore nel campo FK_Amico, mi compaiono gia' come nomi possibili SOLO quelli definiti come amici. Ero riuscito a farlo col LookUp wizard ponendo la relazione ad una query anziche' ad una tabella ma vedo solo i "numeri" dell' ID a cui punta, il che e' corretto ma dal punto di vista intuitivo non e' possibile far comparire il NOME della persona a cui si riferisce l'ID?

Grazie per l'attenzione...se siete riusciti a leggere fin qui senza addormentarvi

1 Risposte

  • Re: Access : Chiave esterna e query SQL

    Avevamo già affrontato insieme questo database, nel quale ti avevo suggerito di mettere tutti i campi in un'unica tabella, in alcuni record vedrai più valori da amico, in altri vedrai più valori da collega, in altri vedrai compilati un po' più tutti i campi (amico-collega).
    La tabella AssociazioneTipologia non l'ho capita.
    La tabella Tipologie, tecnicamente va bene, ma considera pure che contiene così pochi valori che scomodare un ID apposta apposta, risulta superfluo (opinione personale!)
    Tutti i campi di DatiAmico e DatiCollega possono tranquillamente far parte della tabella Anagrafica.

    Adesso, ho capito che tu vuoi vedere separato da qualche parte l'"insieme Amici" dall'"insieme Colleghi", dall'"insieme Clienti". Per tutto questo provvedono le query, quindi, giusto per fermarmi a quei tre valori che ho citato, ti consiglio di creare 3 query, in cui, non solo filtri ora Amico, ora Collega, ora Cliente, ma di conseguenza tutti i campi che tu ritieni più attinenti ad ogni tipologia, così non avrai visualizzati tutti i campi inutili......spero di essere stato chiaro, altrimenti dovrò schematizzare tutto.

    pitopito ha scritto:


    L'esito finale dovrebbe essere che cliccando sulla tabella "DatiAmico" e volendo immetter eun valore nel campo FK_Amico, mi compaiono gia' come nomi possibili SOLO quelli definiti come amici. Ero riuscito a farlo col LookUp wizard ponendo la relazione ad una query anziche' ad una tabella ma vedo solo i "numeri" dell' ID a cui punta, il che e' corretto ma dal punto di vista intuitivo non e' possibile far comparire il NOME della persona a cui si riferisce l'ID?
    Occorre aggiustare qualcosa alla casella combinata:
    1) Apri la tabella, dove hai il campo con la casella combinata, in visualizzazione struttura
    2) Seleziona il campo con casella combinata
    3) In basso clicca sulla scheda Ricerca
    4) Adesso non so quante colonne si vedono quando tu clicchi momentaneamente sulla tua casella combinata, immagino almeno 2, io farò l'esempio per 4. Generalmente accade
    1a colonna: ID
    2a colonna: Testo1
    3a colonna: Testo2
    4a colonna: Testo3
    quindi imposta così:
    Numero colonne: 4
    Larghezza colonne: 0 cm; 5 cm; 3 cm; 2 cm (vado a caso, ma è importante nascondere la 1a colonna attribuendole valore 0 cm)
    Larghezza elenco: 10 cm (cioè il totale di Larghezza colonne)
Devi accedere o registrarti per scrivere nel forum
1 risposte