Database per gestione rapporti interni

di
Anonimizzato12885
il
9 risposte

Database per gestione rapporti interni

Un saluto a tutto il forum.
Avrei bisogno di un consiglio su come realizzare un database con access 2000 per gestire dei rapporti interni di una azienda.
In pratica la cosa deve funzionare così:
1- il dipendente crea un rapporto indicando nome - cognome - data e richiesta. una volta creato il rapporto non può più essere modificato da nessuno;
2 - il capo ufficio richiama il rapporto creato dal dipendente e in un'altra maschera (possibilmente mentre scrive dovrebbe poter leggere quanto scritto dal dipendente) inserisce le sue considerazioni, che, anche in questo caso una volta inserite non possono essere più modificate da nessuno.
3 - il titolare dell'azienda richiama a sua volta il rapporto del dipendente, legge le considerazioni del capo ufficio (se possibile come sopra dovrebbe poter leggere quanto scritto prima dai due dipendenti) e quindi scrive le sue conclusioni anche queste immodificabili.
Grazie.

9 Risposte

  • Re: Database per gestione rapporti interni

    Benvenuto nel forum, mi pare questo sia il tuo primo argomento postato. Spero tu abbia letto il regolamento dove non sarebbe ammesso creare un intero database come risoluzione di un problema (la cosiddetta "pappa pronta"). Non leggermi come un utente dal giudizio cattivo, piuttosto vediamo di risolvere uno o più problemi passo passo. Almeno a me, non sono chiari:
    1. Cosa intendi per database di rapporti interni?
    2. Che significato ha il campo "richiesta"?
    3. Potresti fare qualche esempio pratico, anche inventato?
    4. Hai già impostato qualche tabella, con relativi nomi campo? Oppure dobbiamo partire da zero?
  • Re: Database per gestione rapporti interni

    Ciao Osvaldo grazie per l'interessamento.
    Non voglio assolutamente che mi venga creato un intero database mi serve solo l'idea di come impostare le tabelle e le relazioni visto che sono giorni che provo e non ci riesco.
    1- per database rapporti interni intendo per esempio una resoconto del dipendente sulla giornata lavorativa da sottoporre alla visione del capo reparto, che a sua volta, dopo avere inserito le sue considerazioni vengono lette dal capo della ditta che esprime a sua volta il suo giudizio.
    Spero tanto di essere stato chiaro.
    2 - ho provato ad impostare 3 tabelle, "rapporto", "DecCapoOfficina", "Dectitolare" provando a creare relazione "uno a uno" con gli ID, ma non riesco proprio ad impostarlo in modo da potere, per esempio, come Capo Officina richiamare in qualche modo il rapporto e scrivere le considerazioni.
    Spero di essere stato un pò più chiaro.
    Grazie ancora per l'interessamento.
  • Re: Database per gestione rapporti interni

    rat65 ha scritto:


    per database rapporti interni intendo per esempio una resoconto del dipendente sulla giornata lavorativa da sottoporre alla visione del capo reparto
    Ho bisogno di 2-3 esempi per capire cosa vuoi dire. Soprattutto mi serve che tu espliciti questo concetto con alcuni campi che hai in mente.

    rat65 ha scritto:


    ho provato ad impostare 3 tabelle, "rapporto", "DecCapoOfficina", "Dectitolare" provando a creare relazione "uno a uno" con gli ID
    Anche qui per me si brancola nel buio. Mi servono i campi.
    Attento a quando parli di relazione uno-a-uno. Benchè contemplata da manuali e guida in linea, praticamente non la si usa mai e si preferisce includere i campi in una stessa tabella.

    Quando parli di rapporto, mi viene di pensare a un testo (tipo Word) in cui ci si scrive dentro un testo libero...bla bla bla...ma non saprei se all'interno di esso è possibile individuare una serie di parametri da archiviare/incasellare in tabelle di Access. Esiste il campo di tipo Memo dentro il quale è possibile scrivere molte migliaia di caratteri, ma non sono sicuro se sia questo il tuo intento.

    Rileggendo tutto, cerchiamo di risolvere innanzitutto il tuo punto 1., poi vediamo cosa deve accadere dopo.
  • Re: Database per gestione rapporti interni

    Per quanto riguarda i campi memo hai capito bene li vorrei usare per scrivere come testo word libero senza parametri da archiviare.
    Per realizzare il database uso le autorizzazioni utenti e gruppi (quelle che si configurano con il wrkgadm per intenderci)
    Pensavo quindi di usare tre tabelle separate in modo da rilasciare le autorizzazioni di lettura su tutte le tabelle a tutti gli utenti e quelle di scrittura solo al Dipendente per la tabella rapporto dipendente, al Capo officina per la tabella capo officina e al proprietario per la tabella proprietario.
    Quello che non riesco a capire è come collegare le tre tabelle per far si che il capo Officina legga quello che ha scritto l'operaio e che il proprietario legga quello che hanno scritto gli altri due.
    Di fondamentale importanza inoltre che una volta scritto sul campo memo nessuno possa più modificare niente (tranne me che ho creato il DB naturalmente)
    Ti elenco le tabelle che ho creato fino ad ora:

    Tabella Rapporto Dipendente
    IdRapporto contatore (chiave prmaria)
    CognomeDip Testo
    NomeDip Testo
    Rapporto Memo (da scrivere come se fosse testo word)


    Tabella Decisioni Capo Officina
    IdDecCapOff contatore (chiave primaria)
    IdRapporto numerico (relazione uno a uno con IdRapporto della tabella rapporto Dipendente)??????
    DecCapOfficina Memo (da scrivere come se fosse testo word)


    Tabella Decisioni Proprietario
    IdDecProp contatore (chiave primaria)
    IdRapporto numerico (Relazione uno a uno con IdRapporto della tabella rapporto Dipendente)???????
    DecProp Memo (da scrivere come se fosse testo word)

    Certo se fosse possibile mettere tutto su una unica tabella sarebbe più semplice ma poi non saprei come gestire i permessi di cui sopra.
    Spero di essere stato un pò più chiaro.
    Grazie.
  • Re: Database per gestione rapporti interni

    rat65 ha scritto:


    Per realizzare il database uso le autorizzazioni utenti e gruppi (quelle che si configurano con il wrkgadm per intenderci)
    Con me non mi intendi affatto. Non ci capisco nulla al riguardo.

    Io imposterei le tabelle così:

    Dipendenti
    IDDipendente (contatore)
    Nome
    Cognome

    Rapporti
    IDRapporto (contatore)
    Data (si intende la data riferita al giorno di osservazione del rapporto e non la data di descrizione dello stesso)
    IDDipendente (numerico)
    RapportoDipendente (Memo)
    RapportoCapoOfficina (Memo)
    RapportoProprietario (Memo)

    Relazione Dipendenti.IDDipendente uno-a-molti con Rapporti.IDDipendente

    Questo è ciò che di meglio mi viene in mente di strutturare. Come ti dicevo i tre campi Rapporto possono stare in una stessa tabella.
    Riguardo al fatto di "bloccare" il testo nel campo Memo, ciò sarebbe possibile farlo, sfruttando una delle proprietà campo in maschera Abilitato o Bloccato. Ma non è possibile fare lo stesso in tabella. Chiunque potrebbe aprire la tabella e manipolare i testi all'interno di un campo Memo.
    Forse esistono altri strumenti di protezione tabelle o database stesso...ma, da questo punto di vista, non sono affatto in grado di aiutarti...spera nella risposta di un utente più esperto.
  • Re: Database per gestione rapporti interni

    Grazie ancora Osvaldo per il tuo suggerimento.
    Ho creato due tabelle come hai detto tu, e tre maschere (praticamente uguali) su cui ho impostato le caselle di testo RapportoDipendente, RapportoCapoOfficina, RapportoProprietario, su abilitato si/no a seconda di chi utilizza le maschere.
    finora tutto ok. il problema adesso è come fare a impedire alla persona che a scritto il suo campo memo di modificarlo dopo che gli altri hanno scritto le loro decisioni.

    Grazie.
  • Re: Database per gestione rapporti interni

    Forse ti sei dato la risposta da solo e non te ne sei accorto. Hai detto di essere riuscito ad Abilitare sì/no in base a chi utilizza "la" maschera. Preferisco usare il singolare perchè potresti usare una sola maschera e condizionare opportunamente qualsiasi controllo (quindi uno dei tre campi Memo) e Bloccare/Abilitare sì/no di conseguenza.
  • Re: Database per gestione rapporti interni

    Si potrei anche usare una sola maschera ma comunque non saprei poi come impedire la modifica del testo. in pratica servirebbe una funzione abbinata ad un pulsante che avvertirebbe: "sei sicuro di voler procedere? i dati inseriti non posso più essere modificati. Proseguire si/no)
    Grazie.
  • Re: Database per gestione rapporti interni

    Allora per il momento ho risolto così.
    Ho creato una sola tabella come suggerito da Osvaldo e ho aggiunto alla stessa un campo "Bloccato" di formato si/no.
    Ho inserito in una maschera (che prende dati da una query) un pulsante con la funzione di stampa e in fondo alla stessa routine ho aggiunto:

    Me.Bloccato = 1

    Quindi sulla stessa maschera su "tasto giù" ho inserito:

    If Me.Bloccato = 1 Then
    KeyCode = 0
    End If
    Alla successiva apertura della maschera la query filtra il campo "Bloccato" e nasconde i record con valore "si".
    Certamente un utente un po scaltro può arrivare comunque alla tabella e cancellare i dati, per cui se qualcuno conosce un sistema più sicuro il suo suggerimento sarebbe sicuramente prezioso.
    Un saluto a tutti e un grazie particolare a Osvaldo
Devi accedere o registrarti per scrivere nel forum
9 risposte