Copia di campi uguali su due tabelle

di il
20 risposte

Copia di campi uguali su due tabelle

Salve,
Sto realizzando un DB per la gestione della mia Associazione sportiva. I nostri atleti sono anche Soci ma non viceversa, (si può far parte della associazione come semplice socio NON atleta) Per far questo raccolgo i dati anagrafici del socio in una tabella con la sua maschera dedicata e i dati tecnico-sportivi in un'altra tabella con la sua maschera dedicata. In entrambe sono presenti i campi Cognome, Nome e Datanascita.
Mi è chiaro che sulla maschera Inserimento Socio devo mettere un pulsante che generi il corrispondente record nella tabella atleti e lo stesso dovrà essere visibile sulla maschera Inserimento Atleta ma non ho ancora trovato la soluzione
Ho cercato anche tramite query di accodamento ma non riesco a venirne fuori. Potreste darmi qualche indicazione e/o suggerimento ?

Grazie

GG

20 Risposte

  • Re: Copia di campi uguali su due tabelle

    È errato avere 2 tabelle con gli stessi campi.
    Nella tabella AnagraficaAssociati metti un campo Atleta di tipo Sì/No in cui specifichi se si tratta anche di un Atleta oppure no.
  • Re: Copia di campi uguali su due tabelle

    Mi rendo conto che uno o più campi duplicati non siano una scelta corretta.
    Resta il fatto che seppur specificando nella tabella Soci la qualità di Atleta come riporto il dato nella maschera che ne gestisce il profilo di atleta?
    Non sono molto preparato a usare il codice VBA purtroppo

    GG
  • Re: Copia di campi uguali su due tabelle

    VBA non centra nulla in questo discorso. Siamo ancora nella embrionale fase di progettazione del database.

    GigiPa ha scritto:


    seppur specificando nella tabella Soci la qualità di Atleta come riporto il dato nella maschera che ne gestisce il profilo di atleta?
    Questo è un ulteriore dettaglio che stai fornendo adesso. Cosa vorresti tracciare nello specifico ogni Atleta? Con quali campi?
    Ad ogni modo se un Socio non è Atleta, avrà i relativi campi "più inerenti a un Atleta" vuoti.
  • Re: Copia di campi uguali su due tabelle

    Il processo, così come l'ho pensato, inizia con la creazione di un record Socio, che comprende tutti i dati anagrafici, personali e recapiti inseriti in una tabella ad-hoc e relativa maschera.
    Successivamente se questo Socio è anche Atleta compilo un'altra maschera(tabella) in cui riporto tutti i dati biometrici e sportivi (es. ruolo, categoria, campionato, ecc...). L'obiettivo sarebbe quello di riportare i campi Cognome, Nome e data di nascita in questa seconda tabella (e maschera) senza doverli digitare nuovamente, così da avere un record "Atleta".
    Avevo pensato a una tabella unica su cui far confluire tutti i dati citati da due maschere diverse, ma ne verrebbe fuori una tabella enorme.
  • Re: Copia di campi uguali su due tabelle

    GigiPa ha scritto:


    Il processo, così come l'ho pensato, inizia con la creazione di un record Socio, che comprende tutti i dati anagrafici, personali e recapiti inseriti in una tabella ad-hoc e relativa maschera.
    Successivamente se questo Socio è anche Atleta compilo un'altra maschera(tabella) in cui riporto tutti i dati biometrici e sportivi (es. ruolo, categoria, campionato, ecc...). L'obiettivo sarebbe quello di riportare i campi Cognome, Nome e data di nascita in questa seconda tabella (e maschera) senza doverli digitare nuovamente, così da avere un record "Atleta".
    Avevo pensato a una tabella unica su cui far confluire tutti i dati citati da due maschere diverse, ma ne verrebbe fuori una tabella enorme.
    Questa analisi che fai è corretta. È corretto avere una tabella/maschera semplicemente Anagrafica. Per i DettagliSportivi (non so come vorresti chiamarla altrimenti) prevedi una seconda tabella con...non so i campi...ma più o meno così:
    IDDettaglio (PK)
    ...tanti campi di dettaglio tipicamente atletici (questo lo sai meglio tu che sei del settore)…
    IDPersona (o IDSocio) (FK)(dipende come hai chiamato la PK della tabella Anagrafica).
    Poi ti serve una relazione Persone.IDPersona uno-a-molti DettagliSportivi.IDPersona (o Soci.IDSocio uno-a-molti DettagliSportivi.IDSocio).

    A questo punto potresti progettare una maschera/sottomaschera Persone/DettagliSportivi e per ogni Persona, se egli è anche un Atleta avrà una lista di record compilati nella sottomaschera DettagliSportivi. Se non lo è, rimarrà vuota.
  • Re: Copia di campi uguali su due tabelle

    Nella prima tabella metti una colonna con un identificativo di tipo socio (S0=socio tipo 1, A0=atleta tipo due, ecc.), nella seconda metti solo i dati che ti interessano (dati biometrici, ecc.) e fai la chiave con lo stesso codice di socio della prima. Per estrapolare i dati (es su un foglio di riepilogo excel), apri le due tabelle, sulla prima filtri per tipo (a0=atleta), fai il sort (per il tipo di dato che ti va bene (anagrafica, codice, ecc.) posizioni il primo record (MOVEFIRST) poi "MOVENEXT" fino a fine recordset, e mano a mano che legge sulla prima tabella col codice socio va a pescare il record relativo sulla seconda tabella e prendi i dati dalle due tabelle creando un prospetto unico.
  • Re: Copia di campi uguali su due tabelle

    OsvaldoLaviosa ha scritto:


    GigiPa ha scritto:


    Il processo, così come l'ho pensato, inizia con la creazione di un record Socio, che comprende tutti i dati anagrafici, personali e recapiti inseriti in una tabella ad-hoc e relativa maschera.
    Successivamente se questo Socio è anche Atleta compilo un'altra maschera(tabella) in cui riporto tutti i dati biometrici e sportivi (es. ruolo, categoria, campionato, ecc...). L'obiettivo sarebbe quello di riportare i campi Cognome, Nome e data di nascita in questa seconda tabella (e maschera) senza doverli digitare nuovamente, così da avere un record "Atleta".
    Avevo pensato a una tabella unica su cui far confluire tutti i dati citati da due maschere diverse, ma ne verrebbe fuori una tabella enorme.
    Questa analisi che fai è corretta. È corretto avere una tabella/maschera semplicemente Anagrafica. Per i DettagliSportivi (non so come vorresti chiamarla altrimenti) prevedi una seconda tabella con...non so i campi...ma più o meno così:
    IDDettaglio (PK)
    ...tanti campi di dettaglio tipicamente atletici (questo lo sai meglio tu che sei del settore)…
    IDPersona (o IDSocio) (FK)(dipende come hai chiamato la PK della tabella Anagrafica).
    Poi ti serve una relazione Persone.IDPersona uno-a-molti DettagliSportivi.IDPersona (o Soci.IDSocio uno-a-molti DettagliSportivi.IDSocio).

    A questo punto potresti progettare una maschera/sottomaschera Persone/DettagliSportivi e per ogni Persona, se egli è anche un Atleta avrà una lista di record compilati nella sottomaschera DettagliSportivi. Se non lo è, rimarrà vuota.
    Cosa intendi per PK e FK ?
    Inoltre, avevo pensato a una strutturazione con sottomaschera ma risulterebbe tabulare e i dati sono parecchi (anche foto tessera). Ecco perché ho optato per una maschera a parte graficamente più immediata oltre che stilisticamente più gradevole. Potrei progettare la maschera con quei dati previsti in sottomaschera
  • Re: Copia di campi uguali su due tabelle

    mstatus ha scritto:


    Nella prima tabella metti una colonna con un identificativo di tipo socio (S0=socio tipo 1, A0=atleta tipo due, ecc.), nella seconda metti solo i dati che ti interessano (dati biometrici, ecc.) e fai la chiave con lo stesso codice di socio della prima. Per estrapolare i dati (es su un foglio di riepilogo excel), apri le due tabelle, sulla prima filtri per tipo (a0=atleta), fai il sort (per il tipo di dato che ti va bene (anagrafica, codice, ecc.) posizioni il primo record (MOVEFIRST) poi "MOVENEXT" fino a fine recordset, e mano a mano che legge sulla prima tabella col codice socio va a pescare il record relativo sulla seconda tabella e prendi i dati dalle due tabelle creando un prospetto unico.
    Grazie anche a te per l'aiuto, credo che questa proposta possa essere attuabile, mi devo strutturare le tabelle secondo la discriminante S0 e A0, a fronte dei quali dovrei prevedere una casella di testo per l'inserimento del campo.

    In ogni caso proverò entrambi i suggerimenti

    GG
  • Re: Copia di campi uguali su due tabelle

    Devo essere sincero al 100%. Gradirei che tu esponessi i nomi propri di tutti i campi di entrambe le tabelle. Da lì saprei darti un suggerimento più completo..anche riguardo il desiderio di vedere apparire Cognome-Nome-DataNascita nella tabella figlia. Indica anche i nomi propri di entrambe le tabelle.
  • Re: Copia di campi uguali su due tabelle

    OsvaldoLaviosa ha scritto:


    Devo essere sincero al 100%. Gradirei che tu esponessi i nomi propri di tutti i campi di entrambe le tabelle. Da lì saprei darti un suggerimento più completo..anche riguardo il desiderio di vedere apparire Cognome-Nome-DataNascita nella tabella figlia. Indica anche i nomi propri di entrambe le tabelle.
    Buongiorno, allora per rispondere alla tua richiesta :
    Tabella 1 : "ListaSoci" = ID (num. aut. + chiave primaria),NumeroTessera,Cognome,Nome,IDTipo [numerico = identifica il tipo di socio da altra tabella (TipoTessera) in relazione], DataInizio, DataScadenza, Quota,Abbonamento, Datanascita, CodiceFiscale, Indirizzo, Città (*), Provincia (*), CAP, Cellulare, Abitazione, Email, TitoloStudio, Professione (tutti i campi data sono in formato "Data/ora" i rimanenti sono di tipo "Testo")

    (*) Caselle combinate riferite a due tabelle "Comuni" e "Capoluoghi"

    Tabella 2 : "TB_Atleti" = ID (num. aut. + chiave primaria), Cognome,Nome, Datanascita, Età (numerico - calcolo automatico), Tesseramento, DataTesseramento, DataCertificato, ScadenzaCertificato, AltreSocietà,NumeroMaglia,Ruolo, Categoria, Campionato, Altezza, Peso, Maglia, Pantalone, Scarpe, Foto, (Tipo "Allegato"), CertificatoMedico (Tipo "Allegato"), IDRuolo (numerico- in relazione con altra tabella TB_Ruoli).

    Stanotte ripensavo alle vostre indicazioni ma se volessi inserire tutti i campi sopra citati in unica "Maschera a Schede"?

    Ecco i dettagli richiesti.

    GG
  • Re: Copia di campi uguali su due tabelle

    Correggimi dove sbaglio:
    1. Un Atleta è anche/sempre/comunque un Socio. Di conseguenza una sola tabella Soci.
    2. La differenza tra un Atleta e un SempliceSocio è che nel secondo caso non si devono compilare tutti quei campi più "strettamente atletici".
    3. Quello che noto dalla tua esposizione campi è che appaiono un po' tanti e mi pare di capire che tu non sai più dove metterli nello spazio del rettangolo del tuo monitor: vero? Per me si possono prevedere 2 scenari progettuali:
    A) Maschera con struttura a schede.
    In Scheda1 ci metti solo i dati Anagrafici. In Scheda2 solo quelli Atletici.
    B) Tutti quei campi che vanno da [AltreSocietà] a [IDRuolo]...secondo te potrebbero essere "verticalizzati"? Intendo dire, se tu non li compili tutti e prevedi una tabella figlia DettagliSoci con i seguenti campi
    IDDettaglio (PK)
    TipoDettaglio
    Valore
    IDSocio (FK)
    In questo caso suggerisco una maschera/sottomaschera Soci/DettagliSoci

    Legenda:
    PK=PrimaryKey=chiave primaria (di solito di tipo "numerazione automatica")
    FK=ForeighKey= chiave esterna (numerico)
  • Re: Copia di campi uguali su due tabelle

    OsvaldoLaviosa ha scritto:


    Correggimi dove sbaglio:
    1. Un Atleta è anche/sempre/comunque un Socio. Di conseguenza una sola tabella Soci.
    2. La differenza tra un Atleta e un SempliceSocio è che nel secondo caso non si devono compilare tutti quei campi più "strettamente atletici".
    Esatto
    3. Quello che noto dalla tua esposizione campi è che appaiono un po' tanti e mi pare di capire che tu non sai più dove metterli nello spazio del rettangolo del tuo monitor: vero?
    Non è un'esigenza di "spazio", la loro distribuzione su maschere diverse mi consente di avere tutto sottocchio e in maniera estetica gradevole (a mio gusto ) ma velocizzarne (ove possibile) la compilazione.
    Per me si possono prevedere 2 scenari progettuali:
    A) Maschera con struttura a schede.
    In Scheda1 ci metti solo i dati Anagrafici. In Scheda2 solo quelli Atletici.

    B) Tutti quei campi che vanno da [AltreSocietà] a [IDRuolo]...secondo te potrebbero essere "verticalizzati"? Intendo dire, se tu non li compili tutti e prevedi una tabella figlia DettagliSoci con i seguenti campi
    IDDettaglio (PK)
    TipoDettaglio
    Valore
    IDSocio (FK)
    In questo caso suggerisco una maschera/sottomaschera Soci/DettagliSoci
    Legenda:
    PK=PrimaryKey=chiave primaria (di solito di tipo "numerazione automatica")
    FK=ForeighKey= chiave esterna (numerico)[/quote]
  • Re: Copia di campi uguali su due tabelle

    Spero tu abbia capito di cosa hai bisogno. È rimasto in piedi il problema di "riportare" Cognome-Nome-DataNascita su 2a maschera. Io ci vedrei una casella combinata sul campo IDSocio (FK) organizzata in modo che tu veda "tutto insieme" in un unico controllo Cognome Nome DataNascita. Intanto leggi qui per ottimizzare una casella combinata

    in particolare il caso di concatenazione [Cognome] e [Nome]...nel tuo caso progetterei la concatenazione così:
    Socio: [Cognome] & " " & [Nome] & "(" & [DataNascita] & ")"
    se non ti piacciono le parentesi tonde, toglile dalla concatenazione...
  • Re: Copia di campi uguali su due tabelle

    OsvaldoLaviosa ha scritto:


    Spero tu abbia capito di cosa hai bisogno. È rimasto in piedi il problema di "riportare" Cognome-Nome-DataNascita su 2a maschera. Io ci vedrei una casella combinata sul campo IDSocio (FK) organizzata in modo che tu veda "tutto insieme" in un unico controllo Cognome Nome DataNascita. Intanto leggi qui per ottimizzare una casella combinata

    in particolare il caso di concatenazione [Cognome] e [Nome]...nel tuo caso progetterei la concatenazione così:
    Socio: [Cognome] & " " & [Nome] & "(" & [DataNascita] & ")"
    se non ti piacciono le parentesi tonde, toglile dalla concatenazione...
    Ho ricopiato le tabelle, inserito alcuni campi secondo le tue indicazioni, con nuove relazioni e sto lavorando a ricreare la maschera a schede.
    Fuori le schede tengo Cognome Nome e nelle schede riporto i dati anagrafici, di socio, info aggiuntive e dati tecnici-sportivi.

    Vediamo cosa ne viene fuori

    Tengo in caldo gli ultimi suggerimenti.

    Grazie infinite e vi aggiorno sull'andamento

    GG
Devi accedere o registrarti per scrivere nel forum
20 risposte