Quesito di un neofita

di il
24 risposte

Quesito di un neofita

Salve a tutti,
sono davvero alle prime armi; il mio semplice quesito è questo:

Impostazione:
- Prodotti
- Destinazione prodotti (bar, tabacchi, supermercati ecc)
- N° Bar, tabacchi ecc x regioni e province
- prezzo (differente) x bar, tabacchi, supermercati ecc
- quantità totale venduta

Report da ottenere:
- n. tabacchi, bar ecc x regione e provincia
- elenco prodotti destinati al bar, al supermercato, al tabacchi
- quantità totale venduta
- quantità venduta al bar, tabacchi ecc
- quantità venduta x regione e x provincia

Quante tabelle dovrò creare?
Come impostarle?

In effetti il tutto diventa per me facile con excel, ma devo farlo in Access 2010...
Sicuro di un vostro intervento in tempi brevi, vi ringrazio fin d'ora.

24 Risposte

  • Re: Quesito di un neofita

    Hai usato un Titolo che decisamente non è di supporto al Forum per eventuali Ricerche per argomento, ti chiedo di modificarlo in modo adeguato ed utile.

    I Database vanno strutturati seguendo le 5 FORME NOMALI, che sono oggetto di volumi di oltre 1000 pagine...!

    Ti suggerisco come base di leggere qualche concetto inerente alla NORMALIZZAZIONE, perchè in caso contrario credo possa risultare difficile dialogare senza dover fare un trattato per ogni concetto.

    Esempio Minimalista:

    P.S. l'intervento in tempi "brevi" è facoltativo.
  • Re: Quesito di un neofita

    Gentile Alex,
    intanto grazie per la risposta, ma un ulteriore ringraziamneto va fatto per i consigli postati...
    riguardo al titolo mi indichi lei un titolo appropriato.
    p.s. chiedo scusa per aver utilizzato un termine poco consono al caso.
  • Re: Quesito di un neofita

    Anbufe ha scritto:


    Impostazione:
    - Prodotti
    - Destinazione prodotti (bar, tabacchi, supermercati ecc)
    - N° Bar, tabacchi ecc x regioni e province
    - prezzo (differente) x bar, tabacchi, supermercati ecc
    - quantità totale venduta
    Vediamo di andare un passo alla volta:
    Prodotti può essere una tabella
    Rivenditori, un'altra tabella
    Qualifiche (bar, tabacchi, supermercati ecc...), tabella relazionabile con Rivenditori
    Prezzo, per il momendo non saprei dove andare a metterlo
    N. bar, tabacchi ecc.... dovrà essere il risultato di una query
    Quantità totale venduta, un'altra query
    ...però così è ancora tutto molto vago, mancano molti altri elementi.
    Che vuol dire Destinazione prodotti?
  • Re: Quesito di un neofita

    Gentile OsvaldoLaviosa,
    grazie per l'interesse mostrato...in effetti il db che vorrei creare risulta alquanto complesso per un principiante; alla teoria sto associando un po di pratica quindi sto creando dei db per entrarci meglio dentro.
    Pongo allora un altro quesito:
    Database x spese familiari
    - elenco componenti famiglia
    - categoria spese (abbigliamento, alimentazione, svago, carburante, bollette ecc...)
    - tabella per inserimento cronologico delle spese (es: 23-08-12 papà spende € 15 x un cd (categoria svago)

    A questo punto vorrei ottenere dei report per sapere:
    - quanto spende un singolo componente della famiglia
    - quanto è stato spese per categoria svago, abbigliamento, ecc
    - spese per periodo definito (es. dal 15 luglio al 15 agosto)

    Come dovrò impostare il tutto?
  • Re: Quesito di un neofita

    Anbufe ha scritto:


    Database x spese familiari
    - elenco componenti famiglia
    - categoria spese (abbigliamento, alimentazione, svago, carburante, bollette ecc...)
    - tabella per inserimento cronologico delle spese (es: 23-08-12 papà spende € 15 x un cd (categoria svago)
    Crea le seguenti tabelle, con conseguenti campi:

    COMPONENTI
    Nome (testo)

    CATEGORIE SPESE
    Categoria (testo)

    Queste due tabelle sono molto semplici e non è necessario applicare uno specifico campo ID Contatore (come molta prassi cosiglia). Quindi i campi Nome (in questo caso, siccome si tratta di soli componenti familiari, non è necessario utilizzare anche il cognome), anche Categoria prevederà valori univoci. Perciò questi due campi possono essere tranquillamente Chiavi Primarie.
    Siccome ogni Componente può effettuare molte categorie spese e anche ogni categoria spesa può essere effettuata da molti componenti, queste due tabelle sono in relazione molti-a-molti, quindi occorre creare una tabella di congiunzione avente i seguenti campi:

    SPESE
    IDSpesa (Contatore, chiave primaria)
    Data/ora
    Componente
    Categoria
    Importo (valuta)

    Relazioni:
    COMPONENTI.Componente uno-a-molti con SPESE.Componente
    [CATEGORIE SPESE].Categoria uno-a-molti con SPESE.Categoria

    Anbufe ha scritto:


    A questo punto vorrei ottenere dei report per sapere:
    1) quanto spende un singolo componente della famiglia
    2) quanto è stato spese per categoria svago, abbigliamento, ecc
    3) spese per periodo definito (es. dal 15 luglio al 15 agosto)
    Orientativamente ti consiglio di creare prima 3 query e poi poggiare 3 report sulle query. Per tutte e tre le query potrai (almeno in questo caso) importare la sola tabella SPESE e trascinare tutti i campi nella griglia della visualizzazione struttura query, poi:

    1) quanto spende un singolo componente della famiglia
    In corrispondenza di Criteri: alla colonna Componente, scrivi (nel caso di Tizio):
    Like "Tizio"

    2) quanto è stato spese per categoria svago, abbigliamento, ecc
    In corrispondenza di Criteri: alla colonna Categoria, scrivi (nel caso di abbigliamento):
    Like "abbigliamento"

    3) spese per periodo definito (es. dal 15 luglio al 15 agosto)
    In corrispondenza di Criteri: alla colonna Data/ora, scrivi:
    Between 15/07/2012 And 15/08/2012

    Salva con nome ognuna di queste query, poi, ripeto crea, con creazione guidata, 3 report che poggiano su queste 3 query.
  • Re: Quesito di un neofita

    X Anbufe, questo thread passa visto che sei nuovo del forum...
    Nel prossimo thread usa un titolo che permetta agli altri utenti di capire di cosa hai bisogno senza dover accedere alla discussione.
  • Re: Quesito di un neofita

    Gentile OsvaldoLaviosa,
    grazie per la risposta ...ne farò tesoro e ci lavorerò sopra duramente.
    Le farò sapere l'evolversi della situazione.
    Saluti.
  • Re: Quesito di un neofita

    Fai attenzione Osvaldo, le tabelle senza una PK creano problemi nelle Query che diventano poi ReadOnly, oltretutto compromettono fortemente le prestazioni in velocità di esecuzione quando i dati aumentano...
    Il tutto senza parlare poi se si vuole modificare il TESTO..., andrebbe ad influire sulle tabelle relazionate... gli indici invece sono sempre quelli...!

    In fondo se "la prassi lo consiglia", si chiamano Forme NORMALI, qualche motivo ci sarà pure...
    In questo caso poi la necessità di avere legami relazionati funzionali rende OBBLIGATORIO che ci siano le PK e le FK a legare le Tabelle.
    Potrebbe non èssere un counter e su questo non ci piove, ma deve essere definito ChiavePrimaria con duplicati non ammessi, e campo Obbligatorio.

    Il tuo suggerimento pertanto, che potrebbe non essere errato in taluni casi ma non in questo se intendevi OMETTERE la PK(Counter o Testo che fosse), credo vada pensato in un modo più completo.
  • Re: Quesito di un neofita

    Ora forse io ho frainteso la richiesta... pertanto eventualmente non tenere conto del mio suggerimento...!

    Gestione Familiare...?

    Bene
    
    TblAnagraficaFamiliari
    IdFamiliare(PK)
    Cognome
    Nome
    ecc..
    ora i prodotti...
    
    TblAnagraficaProdotti
    IdProdotto(PK)
    Descrittivo
    Il prezzo non deve essere messo quì...perchè un prodotto comprato in un posto potrebbe avere un prezzo ed in un'altro posto un'altro prezzo...!
    Queste 2 Tabelle vanno relazionate in modo MOLTI-MOLTI con una Tabella di Dettaglio che relaziona ogni Familiare con Molti prodotti, e viceversa.
    In questa Tabella
    
    TblMovimenti
    IdMovimento(PK)
    IdFamiliare(Numerico FK)
    IdProdotto(Numerico FK)
    Data
    Luogo
    Quantità
    Prezzo
    IdCausale(Numerico FK)
    IdPagamento(Numerico FK)
    Altri campi tipici del movimento
    La Causale che ho individuato come Chiave esterna è dato dal fatto che ci dovrebbe essere una tabella Causali, che non è obbligatoria come le altre, ma agevola molto la razionalizzazione delle Causali di spesa... per ricerche, filtri ecc...

    IdPagamento è specifico per capire se il pagamanto è CASH o con CARTA/BANCOMAT/BONIFICO....ecc...

    Poi ci sono molte altre finezze....
    Valuta tu...
  • Re: Quesito di un neofita

    Gentile OsvaldoLaviosa,
    lei mi dice:
    Orientativamente ti consiglio di creare prima 3 query e poi poggiare 3 report sulle query. Per tutte e tre le query potrai (almeno in questo caso) importare la sola tabella SPESE e trascinare tutti i campi nella griglia della visualizzazione struttura query, poi:

    1) quanto spende un singolo componente della famiglia
    In corrispondenza di Criteri: alla colonna Componente, scrivi (nel caso di Tizio):
    Like "Tizio"

    2) quanto è stato spese per categoria svago, abbigliamento, ecc
    In corrispondenza di Criteri: alla colonna Categoria, scrivi (nel caso di abbigliamento):
    Like "abbigliamento"

    3) spese per periodo definito (es. dal 15 luglio al 15 agosto
    )
    In corrispondenza di Criteri: alla colonna Data/ora, scrivi:
    Between 15/07/2012 And 15/08/2012


    Ma così facendo dovrò creare tante query per quanti sono i componenti, le categoria di spesa, ed eventuali periodi di interesse...credo che ci sia un'altra strada, forse criterio OR ???
  • Re: Quesito di un neofita

    Anbufe ha scritto:


    Ma così facendo dovrò creare tante query per quanti sono i componenti, le categoria di spesa, ed eventuali periodi di interesse...credo che ci sia un'altra strada, forse criterio OR ???
    OK, vuol dire che preferisci 3 query con parametri. Correggi i 3 Like secondo i punti 1)2)3) così:

    1) Like [Digita un componente della famiglia]
    2) Like [Digita una Categoria Spesa]
    3) Between [Digita Data di inizio] And [Digita Data di fine]

    In questo modo avrai soltanto 3 query. Quando andrai ad eseguirle, ti apparirà una piccola finestra dove dovrai digitare un testo richiesto da ciò che è scritto fra parentesi quadre (es. Tizio, abbigliamento...), la query provvederà a filtrare in base al testo digitato.
    Fai poggiare ugualmente 3 report sulle 3 query, la finestra parametro apparirà lo stesso, digita ciò che ti viene richiesto, vedrai tutto di conseguenza.
  • Re: Quesito di un neofita

    Scusa Osvaldo,
    ma una cosa non mi è chiara: se volessi ottenere una sola condizione (es. Like [mamma] ; Like [abbigliamento] ; Between [01-08-12] and [30-08-12] allora in questo caso ottengo una query in cui mi dice le spese di mamma nel mese di agosto in abbigliamento; e per le altre condizioni? Mi ritrovo al punto di partenza...qualcosa ancora non mi è chiara.
  • Re: Quesito di un neofita

    Anbufe ha scritto:


    se volessi ottenere una sola condizione (es. Like [mamma] ; Like [abbigliamento] ; Between [01-08-12] and [30-08-12] allora in questo caso ottengo una query in cui mi dice le spese di mamma nel mese di agosto in abbigliamento
    OK, non ci avevo pensato. Si possono riversare tranquillamente tutte quelle condizioni con parentesi quadre in una sola query. Tale query ti chiederà per 4 volte di inserire un valore.
    Dove vuoi che venga inserito un valore parametro, tu lo indichi.
    Dove non vuoi che venga applicato il filtro/parametro, digita il carattere asterisco (*).

    Anbufe ha scritto:


    e per le altre condizioni?
    Nel precedente post ti avevo segnalato 3 query separate che si muovono soltanto sui quei tre campi isolatamente.

    Puoi scegliere se avere 3 query, per ognuna ti chiederà una sola domanda.
    Oppure una query soltanto, dove puoi combinare i filtri a tuo piacimento, dove dovrai digitare valori per 4 volte.
  • Re: Quesito di un neofita

    Grazie Osvaldo,
    la cosa migliore sarebbe quella di avere una sola query e poi mi vado a selezionare i parametri...ma non mi è chiaro come ottenere la suddetta query
Devi accedere o registrarti per scrivere nel forum
24 risposte