Aggiornamento automatico campo

di
Anonimizzato11482
il
9 risposte

Aggiornamento automatico campo

Buonasera,
volevo chiedere un'informazione forse un pò contorta.
Ho una tabella A che contiene 2 campi A1 e A2.
A1 è un campo precaricato da una select semplicissima. In base però alla scelta di A1, A2 deve caricare valori che dipendono proprio da A1 e che prende da una tabella B.
Io ho usato la seguente query:
SELECT DISTINCT [B.B1] FROM B, A WHERE [B.B2]=[A.A1];

Questa query funziona soltanto che considera tutti i valori di tutti i record A1, invece io dovrei farlo record per record.

Esempio per come dovrebbe funzionare correttamente:
creo il primo record, metto A1 = 1, A2 dovrebbe tornare 1 e 4
creo il secondo record, metto A1 = 2, A2 dovrebbe tornare 2

Esempio per come funziona a me erroneamente:
dopo l'inserimento del primo record va bene, però quando inserisco il secondo record con A1 = 2, A2 mi torna 1, 2 e 4

Non so se sono stato chiaro, spero abbiate capito.

9 Risposte

  • Re: Aggiornamento automatico campo

    Ti dico subito che in Access non è previsto che in una colonna-tabella si effettuino calcoli (come invece accade facilmente in Excel). Il campo A1 ti serve per inserire valori (anche se precaricati). Poi dovrai costruire una query, in cui in un campo nominato A2, stabilisci la formula che deve venire fuori considerando i valori in A1. In query, vicino alla colonna A2, puoi sempre tenerti la colonna A1.
    Riguardo ai calcoli che vorresti effettuare, non ci ho capito nulla.
  • Re: Aggiornamento automatico campo

    No non calcoli, anche A2 ha una query per il caricamento dei dati che è quella che ho scritto e che dipende da A1 solo che a me serve che venga fatta record per record invece carica A2 in base a tutti i record di A1
  • Re: Aggiornamento automatico campo

    Diaboldik ha scritto:


    SELECT DISTINCT [B.B1] FROM B, A WHERE [B.B2]=[A.A1];
    Credo di saper usare molto bene le query, ma credimi, nulla di SQL.
    Se non ti risponde un utente più esperto, avrei bisogno che tu raccontassi per bene la storia di tutti i campi sia di tabella A che di tabella B. Nessuna formula, di quelle che hai spiegato, ho compreso il significato.
  • Re: Aggiornamento automatico campo

    Allora io ho 2 tabelle: Calciatori e Formazioni
    La tabella Calciatori contiene l'elenco di tutti i calciatori di serie A con le relative squadre, mentre la tabella Formazioni contiene un campo Squadra e un campo Calciatore.
    Il campo Squadra si carica correttamente con una select di tutte le squadre presenti nella tabella Calciatori, il mio intento però è che, selezionata la squadra sulla tabella Formazioni, il campo Calciatore si carichi con tutti e soli i calciatori della squadra selezionata.

    Select distinct Calciatori.Calciatore From Calciatori,Formazioni WHERE Calciatori.Squadra=Formazioni.Squadra

    Selezionando la prima squadra nel campo Squadra vedo correttamente i giocatori della squadra che ho selezionato nel campo Calciatore ed inserisco correttamente il primo record, quando seleziono la seconda squadra cercando di inserire il secondo record, il campo Calciatore si carica con i giocatori della squadra selezionata + i calciatori della squadra selezionata in precedenza, invece io vorrei che caricasse solo i calciatori della seconda squadra selezionata.
  • Re: Aggiornamento automatico campo

    C'è qualcosa che non mi convince nel modo con cui hai pensato i campi nelle tabelle. Io forse una idea ce l'avrei, ma indipendentemente da tutto il discorso che hai fatto tu. Piuttosto preferisco che sia tu a dirmi tutte le tabelle coinvolte nel discorso con relative relazioni.
    Ad esempio, nella tabella Formazioni, avresti previsto anche un campo Data? Mi pare che per ogni partita, ogni Squadra ha una diversa Formazione.
    Idem per i Calciatori che, anche durante il corso del campionato, cambiano spesso casacca (Squadra).

    Diaboldik ha scritto:


    Allora io ho 2 tabelle: Calciatori e Formazioni
    Hai previsto anche una tabella Squadre? Forse ti tornerebbe molto utile.

    Ripeto, è importante conoscere bene la struttura, poi è anche possibile che tutti quei passaggi di caricamento che tu racconti, diventino superflui.
  • Re: Aggiornamento automatico campo

    Sicuramente, tutto quello che dici tu è giusto, la tabella Squadre la inserirò in modo tale che Formazioni sarà la relazione tra Squadre e Calciatori, così come Il campo Numero Giornata dentro la tabella Formazioni mi sarà utile, vorrei solo sapere se posso risolvere il mio problema in qualche modo.
  • Re: Aggiornamento automatico campo

    Io ho fatto una mia struttura che mi sembra logica, queste le tabelle:

    SQUADRE
    Squadra (testo, chiave primaria)

    CALCIATORI
    IDCalciatore (contatore, chiave primaria)
    Cognome
    Nome

    FORMAZIONI
    IDFormazione (contatore, chiave primaria)
    N_giornata
    Data
    Squadra
    IDCalciatore (numerico)

    Relazioni:
    SQUADRE.Squadra uno-a-molti con FORMAZIONI.Squadra
    CALCIATORI.IDCalciatore uno-a-molti con FORMAZIONI.IDCalciatore

    Si poteva creare un'altra tabella Giornate, ma considerato che ormai esse si svolgono in date diverse ed imprevedibili, direi che stanno bene lì i campi N_Giornata e Data.
    Con questa struttura, penso che cambierebbe anche tutto il ragionamento da fare su ciò che vuoi ottenere.
  • Re: Aggiornamento automatico campo

    Perfetto, ora vorrei che selezionando una squadra nel campo Squadra della tabella Formazioni caricasse tutti e soli gli ID dei calciatori della squadra selezionata nel campo IDCalciatore sempre della tabella Formazioni. Sai se si può fare?
  • Re: Aggiornamento automatico campo

    Io ho capito che tu nella tabella Formazioni hai già l'associazione Squadra-IDCalciatore. Avresti 2 o 3 strade per saperlo. Premesso che tu abbia creato le relazioni uno-a-molti (importantissime):
    1) Crea maschera/sottomaschera con creazione guidata Squadre/Formazioni. Dalla maschera principale dovresti vedere Squadra per Squadra, al di sotto tutti i Calciatori.
    2) Apri la tabella Squadre e aggiungi un Foglio dati secondario, scegli Formazioni e collega i campi Master. Otterrai un effetto ottico molto simile a quello di maschera/sottomaschera.
    3) Crea una query in cui importi soltanto la tabella Formazioni e trascini i campi Squadra e IDCalciatori. Applica un filtro al campo Squadra, al rigo Criteri, dove puoi scrivere ad es:
    Like "Inter" (se vuoi soltanto l'Inter per sempre)
    oppure
    Like [Digita la Squadra] (dove all'esecuzione query ti apparirà una finestra parametro in cui digitare una Squadra a scelta)
Devi accedere o registrarti per scrivere nel forum
9 risposte