Newsgroup: it.comp.appl.access
Titolo: Normalizzare una tabella in Access - Gestione Ordini

Ciao sono MeiHua,
e' la prima volta che scrivo sul NG ed ho cercato qualcosa che rispondesse
alle mie esigenze ma non mi pare di aver trovato niente al riguardo percio'
mi azzardo a fare una domanda credo piuttosto semplice (purtroppo sono due
anni che non lavoro in access e quando ho cominciato ero comunque una
principiante percio' ho dimenticato anche le poche nozioni che avevo
acquisito).
Innanzitutto ho un file.mdb con dentro una tabella che si chiama Clienti e
qui oltre alla rag. sociale, indirizzo ecc. ho anche gli estremi dei
relativi ordini con prodotti ecc.
Ora la cosa che devo fare e' innanzitutto creare un db clienti in cui il
campo Rag_Soc riporti una sola volta la stessa voce così da sapere il n.
esatto dei clienti al di la' degli ordini che hanno fatto.
Ho provato a fare una query selezionando soli i dati necessari come Rag_Soc,
Indirizzo ecc. ma il risultato e' che vengono conteggiati 25 records perche'
ogni cliente e' ripetuto piu' di una volta.
Come si puo' filtrare solo un records per ogni Rag_Soc. così da ottenere il
n. giusto di clienti ed i loro estremi?
Ho pensato che dopo aver normalizzato questi dati potrei creare un'altra
tabella (Ordini) in cui inserire gli ordini man mano che arrivano e tramite
la compilaz. del campo Rag_Soc. ottenere in automatico almeno l'indirizzo
(cap, prov, ecc.) per evitare di riscrivere dati di questo tipo che alla
fine sono tutti uguali.
Il tipo di gestione che devo ottenere altro non e' che un database sugli
Ordini che parta da gennaio a dicembre e mi permetta poi in output di
generare dei grafici in Excel con dei dati a cadenza settimanale. Prima lo
facevo con Excel ma gia' da tempo avrei voluto passare ad Access percio'
visto che il nuovo anno e' iniziato vorrei approfittare.
Grazie per l'attenzione.

 wrote in message
85v8bi$5vm$1...@stargate1.inet.it...

Suggerimento 1:
Cerca di essere piu' sintetico la prossima volta, se possibile.
Suggerimento 2:
Se fai l'autocomposizione maschera con sottomaschera ti fa tutto da solo.
Suggerimento 3:
In alto a sinistra, quando apri la query, hai un pulsante che ti consente di
passare alla struttura o all'SQL (il codice vero e proprio dell'istruzione
che ripesca i dati), ecco, vai li' e vedrai che comincia con: SELECT ... o
con SELECT DISTINCTROW... ecco, tu fallo diventare: SELECT DISTINCT e vedrai
che i clienti duplicati spariscono
Ciao, Sib

Innanzi tutto la singola tabella va divisa in due: Clienti e Ordini legate
da una relazione uno a molti tra il cliente(1) e il suo riferimento(in
genere l'ID) (molti) nella tabella Ordini.
Per estrapolare una sola volta i clienti puoi fare così:
1 costruisci una query che deriva dalla tabella Clienti (quella che hai)
2 nella prima colonna della query metti il campo "RagSociale"
3 dal menù "visualizza" seleziona "Totali"
4 nella riga "Formula" della query seleziona "Raggruppamento"
5 esegui la query e vedrai una sola ragsociale per ogni cliente
6 torna in struttura e trasforma la query in una query di creazione tabella
(menù query, Query di creazione tabella...)
7 dai un nome alla nuova tabella (p.e. con molta fantasia NuoviClienti)
A questo punto avrai una nuova tabella con tutti i clienti. Stabilisci una
chiave primaria che sarà la parte uno della relazione con la tabella Ordini.
Spero di esserti stato d'aiuto.
Ciao, Carlo
--
Posted from 
ro...@www.paola.antares.it
 [195.216.145.2]
via Mailgate.ORG Server - 
http://www.mailgate.org