Newsgroup: it.comp.appl.access
Titolo: codice sql

Ciao a tutti,
premetto che conosco poco Access ed anche meno SQL (sebbene mi sia sforzato
di apprendere qualcosa in piu'). Ho sempre lavorato con altri db e linguaggi
di programmazione.
Ho una piccola necessita' per un applicativo di fatturazione.
In pratica devo raggruppare tutti i ddt di tutti i clienti in un determinato
periodo (normalmente il mese corrente o quello trascorso) e farli diventare
delle fatture. I ddt dello stesso cliente, se sono piu' d'uno, devono
diventare 1 sola fattura ma le righe dei ddt devono poter essere ripetute
nel corpo fattura.
Spero di essere stato chiaro fin qui.
La tabella delle testate ha una struttura simile (non identica per comodita'
di esposizione):
......
.....
IDCLIENTE
NUMERODDT
DATA DDT
NUMEROFT
DATAFT
.....
....
In questo modo, quando vengono create le fatture, e' sufficiente memorizzare
i rispettivi numeri e date all'interno dei campi in precedenza vuoti. Questo
significa che se son ovuoti sono ancora dei ddt e se sono pieni non devono
piu' essere raggruppati.
A questo punto mi trovo nella .... fino agli occhi in quanto non so neanche
da che parte cominciare.
Normalmente inizio un ciclo che scorre l'intero archivio ordinato per codice
cliente, quindi faccio tutti i miei test e memorizzo i dati che mi servono
negli appositi campi. Una volta terminato di leggere la tabella esco dal
ciclo e finisco il lavoro.
Con Access e SQL non ho la benche' minima idea di dove cominciare. Ho
cercato nei vari file di esempio di trovare una cosa che potesse indicarmi
"la via" ma inutilmente.
Immagino che sia di una facilita' disarmante per voi e proprio per questo
motivo vengo a chiedere il Vs. aiuto.
Ciao,
Marco Boeri

 ha scritto nel messaggio
news:0ye1f.280$TJ5....@twister1.libero.it...

ciao Marco,
provo a darti questo consiglio.
Nella tabella che hai indicato potresti mettere un flag ( casella ti
controllo si/no)
Fai una maschera in cui per ogni cliente visualizzerai i relativi ddt, con
due controlli che ti consentano di stabilire un range preciso di date in cui
i ddt sono state emesse.
A questo punto avvierai la creazione della fattura che sarą una query a
campi calcolati -> che ti consentirą di stampare il report solo per i ddt
che hai flaggato per quel cliente.
La query che visualizza i ddt dei clienti la puoi impostare in modo che ti
visualizzi sono i ddt che devi ancora fatturare (tuaCheckBox=false)
Penso che sia la strada giusta. Vediamo cosa dicono gli altri.
Ciao, notte, Sandro

Non è per niente semplice, serve del codice o, almeno, una query di
comando....
Io ho risolto in questo modo (nn ricordo i dettagli, se servono li vado
a ripescare).
Intanto, in tab DDT ci metti 1 flag "fatturata", ed un campo
"idFattura". Ti crei 1 maschera che ti mostri, per un dato cliente, i
DDT non ancora fatturati (io la chiamo "fattura potenziale"). si
tratterà di 1 maschera con sottomaschera, nell'intestazione - maschera
principale -  ci sta il cliente, nella sottomaschera tutti i DDT ancora
da fatturare.
Su questa maschera ci sta 1 pulsante di comando "genera fattura" che fa
questi passaggi:
1. calcola un nuovo numero di fattura (cerca il numero di fattura +
alto presente quest'anno, e ci aggiunge 1)
2. crea 1 nuova fattura, assegnandoci questo numero
3. si legge l'ID fattura generato, e lo scrive in tutti i DDT
potenziali relativi a questo cliente.
A questo punto la fattura è fatta, nel senso che ti leggi
l'intestazione della fattura nella tab fatture, e tutti i dettagli
nella tab DDT (con il link dell'id fattura). Immagino che nel DDT i
dettagli economici (qta, prezzo unit, aliq iva) ci siano già,
altrimenti ti fai 1 tab "righe fattura" con relazione 1-1 con la tab
DDT (o con 1 tab "righe DDT", non so i dettagli del tuo applicativo).
Nota che non puoi usare il num fatture come chiave primaria della tab
fatture xché non  è unvoco, dopo 1 anno si ripete.
Spero sia chiaro

 ha scritto nel messaggio
news:0ye1f.280$TJ5....@twister1.libero.it...
