Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Piccola gestione di preventivi

    Salve a tutti, premetto che di basi di dati e DBMS (access nel mio caso) sono molto principiante e pertanto mi sono rivolto a questo forum per la seguente domanda:
    In pratica come posso relazionare 3 tabelle che mi diano in output, in particolare nel report che poi dovrò stampare, un preventivo semplice con il nome del cliente che me lo ha richiesto, la data e il numero id del preventivo e le operazioni associate a questo preventivo?

    Io finora ne ho provate tante relazioni ma dopo che inserisco qualche dato e mi creo il report, me lo trovo errato perchè ogni cliente che ha fatto un preventivo mi esce nello stesso report

    quello che ho fatto io finora è questo:
    tabella CLIENTI (con ID_cliente e il resto dell'anagrafica)
    tabella PREVENTIVI (con ID_prev, data, idcliente)
    tabella OPERAZIONI (con ID_op, prodotto/servizio, quantità,costo unitario, costo totale,id_prev)

    Le relazioni che ho pensato io sono:
    1 cliente richiede 1 o più preventivi quindi relazione 1 a M;
    1 preventivo è composto da 1 o più operazioni quindi relazione 1 a M;

    credo che serva una relazione M a M ma non capisco qui il da farsi...
    Spero in un vostro aiuto!

  2. #2
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Originariamente inviato da cicciodoors
    tabella CLIENTI (con ID_cliente e il resto dell'anagrafica)
    tabella PREVENTIVI (con ID_prev, data, idcliente)
    tabella OPERAZIONI (con ID_op, prodotto/servizio, quantità,costo unitario, costo totale,id_prev)

    Le relazioni che ho pensato io sono:
    1 cliente richiede 1 o più preventivi quindi relazione 1 a M;
    1 preventivo è composto da 1 o più operazioni quindi relazione 1 a M;

    Direi che sostanzialmente "Non è malaccio"

    Alcine osservazioni ( alcune troppo banali ):

    ______1) Relazioni Molti a Molti non ti servono

    ______2) Nella tabella OPERAZIONI se hai gia la quantità e il
    costo unitario non ti serve ASSOLUTAMENTE il costo totale
    ( questo sarebbe un GRAVE errore )

    ______3) I prodotti/servizi che vengono esposti nella tabella
    OPERAZIONI sono sempre diversi oppure sono ripetitivi ??

    Nel caso fossero ripetitivi potrebbe essere meglio una tabella
    separata dei PRODOTTI e riportare nella tabella OPERAZIONI
    solamente il relativo ID
    ( questo significherebbe che anche il costo unitario si sposta di tabella )

    ______4) Aggiustati un pochino i nomi dei campi, ad esempio:
    __ data
    mi puzza di "parola riservata"

    __ prodotto/servizio
    Non usare caratteri particolari ( la / )

    __ quantità
    Non usare caratteri particolari ( la à )
    ( considerala una "licenza poetica" )

    __ costo unitario
    non usare spazi

    __ costo totale
    non usare spazi ( oltre ad eliminare totalmente il campo )

    __ idcliente
    se nella tabella OPERAZIONI hai scritto id_prev
    con il "_" perche non metti anche in
    tabella PREVENTIVI id_cliente ??



    .

  3. #3
    Ciao e soprattutto grazie per i tuoi utili suggerimenti, ho già messo a posto le cose più banali che giustamente facevi notare, devo cambiare anche data in data_emissione, di solito non uso mai caratteri particolari però stavolta siccome per la fretta di imparare e capire access non ci ho fatto caso.

    Per quanto riguarda la tabella operazioni come mai non va bene il costo totale? volevo fare in modo tramite una query che in questo campo si collocasse il risultato di quantita*costo_unitario...

    I prodotti_servizi sono un campo descrittivo dove dovrò inserire quello che mi viene richiesto quindi non credo sia ripetitivo.

    In ogni caso ho riprodotto il tutto in una semplice maschera e mi pare che qualcosa vada meglio ma non lo sò...il problema cè e si nota soprattutto nella creazione del report...

    Cmq ti ringrazio ancora e resto in attesa di una tua cortese risposta.
    Immagini allegate Immagini allegate

  4. #4
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Originariamente inviato da cicciodoors
    Per quanto riguarda la tabella operazioni come mai non va bene il costo totale?
    volevo fare in modo tramite una query che in questo campo si
    collocasse il risultato di quantita*costo_unitario...
    E giusto con una query ( che si chiama anche Vista ) calcolare
    la quantita*costo_unitario

    Quello che non va bene è scrivere il risultato in tabella! ... a cosa ti serve ?

    Nei report, maschre, bilancie dovunque ti serva potrai sempre richiamare
    quantita*costo_unitario ed avere il tuo totale poi raggruppato per
    mesi anni o quello che vuoi

    ________________________________________________


    Poi rischieresti di avere errori del tipo
    quantita 3
    costo_unitario 10
    costo_totale 36

    perche a qualcuno hai concesso uno sconto da 12 a 10

    _________________________________________________


    Solo se il DB avesse milioni di record allora potrebbe essere utile
    avere gia il valore totale scritto in tabella in modo
    che alla esecuzione di un ipotetico "bilancio"
    ___ invece di fare la moltiplicazione e poi la somma
    ___ faresti solo la somma
    guadagnando dei secondi

    Ma in questo caso devi stare MOLTO attento ad evitare il banale
    ( ma reale ) errore che ti ho esemplificato sopra


    Prova su Google a cercare " dati rindondanti "





    ___________________________________________
    ___________________________________________
    ___________________________________________
    ____________________________________________


    Invece quella maschera che hai esposto mi fa venire un dubbio

    Hai la maschera CLIENTI
    con ID=5

    poi hai la sottomaschera PREVENTIVO
    con ID_prev = 5
    e id_cliente = 5

    poi hai la sottomaschera OPERAZIONI
    con id_prev = 5


    Quest'ultimo id_prev fa riferimento
    a ID_prev della sottomaschera PREVENTIVO ?? ( Sarebbe giusto )
    oppure a ID della maschera CLIENTI ??? ( Sarebbe sbagliato )


    Ho la sensazione che siamo nel caso Sbagliato perche io vedo
    la maschera CLIENTI che ne contiene altre 2

    invece dovrei vedere la maschera CLIENTI
    che contiene SOLAMENTE la maschera PREVENTIVO
    che a sua volta contiene la maschera OPERAZIONI


    __________________________________________________ ______

    ho la sensazione che il tuo problema sul Report è
    dello stesso questo tipo



    .

  5. #5
    Allora per il totale ho capito perfettamente il tuo suggerimento e ho fatto come mi hai detto, solo che ora non si apre più il report o meglio mi chiede di inserire un parametro e poi si apre, cmq sia poi rifaccio tutto...

    Per la seconda risposta invece credo sia giusta la sottomaschera mi pare faccia riferimento ai preventivi, cmq non sò se da queste 2 immagini che ti allego puoi capire meglio...di sicuro capisco che sono teoricamente messo male...anche se ho il libro di basi di dati di Atzeni da cui cerco di capirci e studiarci più che posso...

    Cmq in caso lo ricomincio dalle maschere se le tabelle sono a posto...
    Immagini allegate Immagini allegate

  6. #6
    seconda immagine...
    Immagini allegate Immagini allegate

  7. #7
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    La cosa sta scivolando un po' troppo verso argomenti (maschere e report di Access) che come indicato dal regolamento, sono vietati in questa sezione

    Sposto in Windows e Software che è quella corretta

  8. #8
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Scusami Comas17 Non mi ero accorto che stavo scivolando.

    __________________________________________



    Adesso sembra anche a me che sia tutto a posto.

    L'immagine delle relazioni è corretta e
    anche l' ultima immagine della maschera

    __________________________________________

    NB: Magari nella maschera OPERAZIONI ( la piu interna )
    aggiungigli in Visualizzazione struttura una
    casella di testo Non Associata
    e scrivigli dentro ( Origine Controllo ):
    =[quantita]*[costo_unitario]

    Dovrebbe funzionare

    ___________________________________________
    ___________________________________________

    Il report non si apre piu perche gli manca quel campo
    che hai eliminato


    Prova a ricostruire il report e vediamo se funziona



    .

  9. #9
    Si grazie, ho aggiunto anche quel campo che calcola il totale ma ho problemi col report per il semplice fatto che sbaglio io, non lo sò faccio la creazione guidata ma i dati non si distribuiscono o non escono come vorrei e insomma credo che devo studiarmi anche sta parte...cmq sia grazie per l'aiuto più che risolutivo ricevuto fin ora.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.