Newsgroup: it.comp.appl.access
Titolo: SIB scusa ancora se ti rompo!

Ho capito il genere di impostazione di fatturazione che dici tu, è giusta
naturalmente, ma nel mio caso non credo perché, ti spiego il lavoro
dell'azienda: ci sono delle merci in entrata in conto deposito dei clienti
(con una maschera carico il magazzino che aggiorna una tabella di
magazzino), dopo un certo numero di giorni le merci vengono lavorate (con la
stessa maschera aggiorno le merci che sono entrate): il punto è che c'è un
prodotto finito e degli scarti in una determinata percentuale che vengono
calcolati, contemporaneamente vengono aggiornati i vari magazzini (materia
prima, prodotto finito, scarti); quindi la fatturazione avviene solo dopo la
lavorazione per conto terzi delle materie. Come ho impostato il DB io
prevedo che dopo la lavorazione si possano stampare le varie fatture e i
d.d.t. dei prodotti finiti. Quindi ho le query dei vari magazzini e delle
lavorazioni pronti solo per essere stampati, l'unica cosa che manca è una
numerazione progressiva. Avendo una maschera che funge da ingresso ed uscita
di merci, ho fatto varie query che selezionano i dati da mettere nei vari
documenti (non voglio in pratica comporre fatture e ddt direttamente). Allo
stesso problema mi ha risposto un'altra persona che mi ha dato una soluzione
per numerare e aggiornare i numeri progressivi nel momento apro il report,
ma la funzione non funziona, vorrei avere una tua opinione, ecco come mi ha
risposto:
Prima soluzione:
"- campo [numero fattura] numerico;
- controllo su evento "prima di aggiornare" della maschera con un dlookup()
che cerca il [numero fattura] appena inserito.
Poi con un poco di fantasia..."
(ma non ho capito molto)
Seconda soluzione:
- nuova tabella [progressivi] con un campo chiamato [numeroFattura] tipo
numerico;
- una funzione che legge e aggiorna il progressivo;
'----------------
Function getProgressivo() As Integer
'legge il numero della fattura e lo aggiorna
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("progressivi", dbOpenTable)
If rst.EOF Then
    rst.AddNew
Else
    With rst
        .MoveFirst
        .Edit
    End With
End If
rst!numerofattura = rst!numerofattura + 1
getProgressivo = rst!numerofattura
rst.Update
rst.Close
Set rst = Nothing
End Function
'----------------
- una casella di testo nel report chiamata progressivo.
- nelle proprietà del report - scheda evento - su pagina:
'------------------
Private Sub Report_Page()
Me!progressivo = getProgressivo()
End Sub
'------------------
(ma qui mi esce errore sottolineando di giallo la prima riga e di blu il
comando EDIT, lui mi ha risposto di inserire il riferimento alla libreria
DAO 3.51, ma io ho solo la 3.6 e comunque il risultato non cambia).
AIUTO!!!!!!! MI STO CONFONDENDO LE IDEE IN UNA MANIERA PAZZESCA E SOLO PER
UN MALEDETTO NUMERO!!!!

n.b non so se ho capito bene
comunque provo a darti una soluzione
inerente la numerazione progressiva di un corpo di un report
devi inserire una casella di testo dentro al corpo con
origine record =1
e poi c'č una proprietą inerene mi sembra somma gruppi
o somma parziale insomma somm con altro che devi mettere
a ragruppa

ho provato proprio adesso
è somma parziale impostata su gruppo

 Set rst = CurrentDb.OpenRecordset("progressivi", dbOpenTable)
L'opzione dbOpenTable apre la tabella progressivi in sola lettura, quindi
non puoi usare il metodo edit.
Devi aprirla come dbOpenDynaset.
Ma poi perche' dovresti avere una tabella a parte per i progressivi?
Penso che tu metta gia' da qualche parte i dati fattura (destinatario, data,
trasportatore, ecc) e' li' che devi mettere il progressivo.
Ciao, Sib

Ho provato anch'io ma mi esce sempre lo 1 come risultato.
"rr12rr" <rr1...@NOSPAMusa.net> ha scritto nel messaggio
news:39E8CD8A...@NOSPAMusa.net...



Hai presente l'esempio di DB che c'è in Access? Northwind? Io in pratica
avevo impostato le fatture nello stesso modo, in una query e non in tabelle,
è la stessa cosa?



 a questo punto la tua formula per la numerazione progressiva dove va
messa?
In realtà, la formula sul sito, nasce per essere inserita come valore
predefinito del controllo collegato al numero fattura in una maschera.
Occorre quindi rimaneggiarlo.
Il come dipende molto dalla struttura della tua query, immagino che la query
contenga le righe fattura (cioe'  i movimenti dei singoli codici di prodotto
con eventuali quantità) in questo caso ti serve un campo che "metta insieme"
tutti i record da fatturare al cliente. Questo campo sara' il tuo numero di
fattura.
Io procederei cosi':
Creerei una tabella che conterra' tutti i dati relativi alle fatture
(numero, data, destinatario,ecc), poi creerei una maschera di inserimento
che chiamerei, ad es, CreaFattura.
A questo punto farei in modo che, aprendo la maschera (ovviamente collegata
alla tabella fatture) avrei proposto il nuovo numero fattura (come ti ho
detto sopra) e dove potrei inserire tutti i dati necessari.
Una volta creato il record (ad es nell'evento dopoaggiornamento della
maschera) farei eseguire una query di aggiornamento che scova tutti i record
relativi al cliente che ho selezionato nella fattura che non hanno ancora un
numero e gli appioppa il numero fattura appena creato.
In questo modo avrei la possibilita', in qulunque momento, di emettere
fattura al cliente raggruppando insieme tutte le righe fattura create in
precedenza.
Con un po' di buona volonta', ma certamente dopoche questo primo metodo
risutli funzionante, potrei automatizzare l'emissione della fattura per
tutti i clienti.
Ciao, Sib
--
------------------------------------------------------
il sito comune di it.comp.database.access:
http://members.xoom.it/it_db_access
------------------------------------------------------
4000 anni fa', il saggio egizio Ptahhotep scrisse:
"... perche' non esistono saggi per nascita."
------------------------------------------------------
Saturiamo ECHELON:
bomba saddam attentato medio oriente

dentro la casella hai scritto per caso solo 1
se è così correggi con =1
e ricordati di attivare la proprietà somma gruppo

Si ma che risolvo, se poi voglio fare altre fatture il mese successivo non
esiste una traccia per continuare la numerazione



Newsgroups: it.comp.appl.access


 capito almeno il 5% di Access a questo punto (uso solo la guida in linea).
Ci hai detto niente!
Guarda che la guida in linea e' il miglior manuale in circolazione (checche'
se ne dica)
Se impari a usarla al meglio ci trovi tutto quello che ti serve. Capisco
anche che se uno non e' addentro gli viene difficile trovare l'argomento
giusto, ma con un po' di pazienza...
