Scheda personale dipendenti

di il
11 risposte

Scheda personale dipendenti

Ciao a tutti.
Sono nuovo nel forum.
Da tempo mi sono avvicinato ad Access 2010 ma non ho sviluppato mai nulla di particolarmente impegnativo, soprattutto in merito ai report.
Sto realizzando un database in cui inserire dati di dipendenti e l'ho strutturato in questo modo:
Tabella Personale: IDPersonale, Cognome, Nome, ecc;
Tabella TipoTelefono: IDTipoTelefono; TipoTelefono; (per tipo telefono intendo Casa/Ufficio/Cellulare, ecc.)
Tabella TelefonoPersonale: IDTelefonoPersonale; IDPersonale; Telefono;
Tabella TipoEmail: IDTipoEmail; TipoEmail; (per tipo telefono intendo Casa/Ufficio/YAHOO, ecc.)
Tabella EmailPersonale: IDEmailPersonale; IDPersonale; Email.

Le tabelle TelefonoPersonale e EmailPersonale sono collegate alla tabella Personale con una relazione "uno a molti" sul campo IDPersonale. Organizzando così il database riesco a memorizzare infiniti numeri di telefono ed email per ogni singola persona.

Il mio problema, a questo punto è realizzare una scheda personale nella quale siano presenti, per ogni persona tutti i dati ad essa riferiti.
Nello specifico, inuma zona "Intestazione" tutti i dati generici della persona (Cognome, Nome, Nascita, ecc.), mentre in altre zone successive alla prima: email, telefono, ecc.).
Vorrei creare un report che nella parte Email e Telefono mi visualizzi tutti i dati della persona nel seguente modo:
Email TipoEmail Email
TipoEmail Email
TipoEmail Email
Telefono TipoTelefono Telefono
TipoTelefono Telefono
TipoTelefono Telefono
Ovviamente le etichette Email e Telefono devo apparire solo vicino alla prima e non vicino ad ogni voce.
Nel caso in cui una persona non abbia Email e/o Telefono il report dovrà presentarsi in questo modo:
Email [_________________] [________________________]
Telefono [_________________] [________________________]
Ho provato con i sottoreport ma non riesco ad ottenere quello che voglio nemmeno sfruttando FormatCount nell'evento Formattazione.

Potete aiutarmi con qualche riga di codice? Oppure semplicemente spiegandomi come venirne fuori?

Grazie.

11 Risposte

  • Re: Scheda personale dipendenti

    bennyatc ha scritto:


    Tabella Personale: IDPersonale, Cognome, Nome, ecc;
    Tabella TipoTelefono: IDTipoTelefono; TipoTelefono; (per tipo telefono intendo Casa/Ufficio/Cellulare, ecc.)
    Tabella TelefonoPersonale: IDTelefonoPersonale; IDPersonale; Telefono;
    Tabella TipoEmail: IDTipoEmail; TipoEmail; (per tipo telefono intendo Casa/Ufficio/YAHOO, ecc.)
    Tabella EmailPersonale: IDEmailPersonale; IDPersonale; Email
    Io avrei realizzato solo 2 tabelle. Personale: OK. Poi Contatti
    IDContatto
    TipoContatto (qui scegli, magari con casella combinata, un valore tra Telefono, Cellulare, e-mail, www...)
    Contatto
    IDPersonale

    In questo modo ti risulta tutto più facile, sia se decidi di progettare maschera/sottomaschera, sia report/sottoreport...(se ho capito bene) esattamente come vorresti tu.
  • Re: Scheda personale dipendenti

    In questo modo risulterebbe tutto confuso e faticherei per la separazione, nella scheda, dei numeri di telefono dalle email.
    Comunque non ho capito come potrei fare per impostare il report.
  • Re: Scheda personale dipendenti

    bennyatc ha scritto:


    In questo modo risulterebbe tutto confuso e faticherei per la separazione, nella scheda, dei numeri di telefono dalle email.
    No. Se organizzi la visualizzazione ad es. secondo Ordinamento Crescente di TipoContatto, visualizzeresti in modo raggruppato tutti i Telefono, tutti i Cellulare, tutti i e-mail, ecc...

    bennyatc ha scritto:


    Comunque non ho capito come potrei fare per impostare il report.
    Consiglio di procedere così:
    1. Crea una query di selezione dove importi entrambe le tabelle Personale e Contatti
    2. Trascina (direi) tutti i campi nella griglia
    3. Salva con nome la query X
    4. Crea un report che poggia sulla query X usando la procedura guidata
    5. Durante la procedura guidata hai la possibilità di creare più livelli gerarchici. Ti basta indicare in base a Personale (report principale) e sotto i Contatti
    6. Continua fino alla fine dando un nome al report che puoi aprire immediatamente dopo per vedere come appare il suo look finale
  • Re: Scheda personale dipendenti

    Ma facendo così se volessi usare un tipo email "casa" e un tipo telefono "casa" finirei per avere mischiati email e telefoni.
    Tenendoli separati sono sicuro che, qualunque nome dia al tipo telefono o al tipo email, resterebbero sempre separati.
  • Re: Scheda personale dipendenti

    Se vuoi creare questa ulteriore specificazione, aggiungi un campo Specifica nella tabella Contatti.
  • Re: Scheda personale dipendenti

    Anche io la penso come Osvaldo.

    Ad essere più precisi, io uso i Recapiti (e RecapitiTipo), più che i Contatti, in quanto i recapiti nei miei programmi includono diverse tipologie di recapito, come:
    -email (lavoro, privata, ...)
    -telefono (interno, lavoro, privato, ...)
    -cellulare (lavoro, privato, ...)
    -indirizzo (sede fiscale, sede operativa, magazzino, ...)
    -sito web
    -e così via...
    Non c'è limite

    Come diciamo io e Osvaldo, se un domani devi gestire nuovi tipi di recapito, basta solamente aggiungerli alla tabella RecapitiTipo.
    Nel tuo sistema, che fai? Aggiungi una nuova tabella? Significa modificare la struttura del database e quella dell'interfaccia grafica.
    Una bella differenza.
    Consideriamo anche il fatto che quando dovrai elencare tutti i tuoi recapiti (in una maschera o in report) l'interrogazione dovrai mettere in JOIN più tabelle. Niente di difficile, ma sarà più complesso.

    Comunque, se a te il tuo approccio basta e avanza, allora mantieni quello;
    però riflettici bene, perché una volta scelta la strada (giusta o sbagliata che sia), non potrai tornare indietro, se non rifare tutto da capo.

  • Re: Scheda personale dipendenti

    Ok ragazzi. Ci penso.
    Ma visto che ormai ho impostato il database in questo modo come posso fare per realizzare il report nel modo che ho chiesto?
  • Re: Scheda personale dipendenti

    Nessun utente può aiutarti se lasci quelle 4 tabelle NON NORMALIZZATE. Si tratta di uno scenario atipico/sbagliato e si fa prima a correggere secondo l'indicazione di 2 sole tabelle come ti abbiamo suggerito.
  • Re: Scheda personale dipendenti

    Scusa ma penso di non aver chiarito bene il mio problema.
    Ipotizziamo che le tabelle non siano entrambe di recapiti ma una di numeri di telefono e l'altra di assenze dal lavoro.
    Come potrei, in questo caso, ottenere un report simile a quello che mi interessa?
  • Re: Scheda personale dipendenti

    Vorresti aggirare il problema?

    Provo a rispondere ugualmente, ma secondo il nuovo scenario, dove la logica è molto diversa:
    Personale uno-a-molti Contatti
    Personale uno-a-molti AssenzeLavoro.
    Io ci vedrei un report che intesta innanzitutto Personale, con accanto tutti i suoi Contatti. Poi il sottoreport AssenzeLavoro.
    Quindi procederei così:
    1. Crea una query di selezione dove importi le tabelle Personale, Contatti e AssenzeLavoro
    2. Trascina (direi) tutti i campi nella griglia
    3. Salva con nome la query X
    4. Crea un report che poggia sulla query X usando la procedura guidata
    5. Durante la procedura guidata hai la possibilità di creare più livelli gerarchici. Io metterei sullo stesso livello Personale e Contatti, sotto AssenzeLavoro
    6. Continua fino alla fine dando un nome al report che puoi aprire immediatamente dopo per vedere come appare il suo look finale
    7. Forse questo report ha bisogno di qualche ritocco manuale, quindi andrei in visualizzazione struttura report e indicherei di non mostare i valori relativi a Personale qualora siano duplicati, quindi impostare per ogni campo di Personale la proprietà Nascondi duplicati: Sì.
    8. Salva tutto
  • Re: Scheda personale dipendenti

    bennyatc ha scritto:


    Ipotizziamo che le tabelle non siano entrambe di recapiti ma una di numeri di telefono e l'altra di assenze dal lavoro.
    Cosa c'entrano adesso le assenze ????
Devi accedere o registrarti per scrivere nel forum
11 risposte