Newsgroup: it.comp.appl.access
Titolo: Ricominciare da 1 ...

Intanto Auguri di felice anno nuovo a tutti da parte mia.
Avrei da chiedere un consiglio , vorrei sapere come si puo' risolvere questo
problema. Io ho una tabella delle fatture e una tabella dei dettagli delle
fatture. Fin qui tutto bene. La tabella fatture e' comprensiva del numero
fattura, che incremento con un click di un pulsante dalla maschera delle
fatture. Se io adesso che siamo a fine anno devo ricomnciare da 1
riutilizzando la stessa tabella, che era gia' arrivata a 750, come posso
fare, non vorrei copiare la tabella, rinominarla e cancellare il contenuto
della tabella per cosi' dire "vecchia". E' ovvi che il problema si pone su
tutte le tabelle che devono "rcominciare ...". Porca miseria non so' come
fare. Come sopra detto, gli anni scorsi io creavo la tabella "fatture2" e ci
incollavo i dati della tabella originale. Tutto con copia e incolla.
Sicuramente si fara' anche via codice, ma non saprei come. Aiuto.
Un grazie e un rinnovamento di auguri di buon anno a tutti.
Luca.

Sei Partito Male
Devi Dare il numero di fattura in funzione dell'anno
Dim UltimoID As Variant
  UltimoID = DMax("[ID Serie Fattura]", "Fatture Clienti", "(Int([ID Serie
Fattura]/100000))=((Year(Date()))-1995)")
  If IsNull(UltimoID) Then UltimoID = ((Year(Date) - 1995) * 100000)
  DoCmd.RunMacro "AutoID.NuovoRecord"
  [AutoID] = UltimoID + 1
  Call DataFattura_AfterUpdate
  DoCmd.RunMacro "AutoID.SalvaRecord"
Fammi sapere
A me funziona
Anche il dettaglio della fattura è moltiplicato per 100

Sicuramente si fara' anche via codice, ma non saprei come. Aiuto.
a mio avviso il modo piu' semplice sarebbe quello di creare una nuova
tabella di un solo record partendo dalla prima e cancellare anche quel
singolo record, il tutto con un paio di righe sql:
docmd.setwarnings false
docmd.runsql "SELECT TOP 1 * INTO NuovaTabella FROM TabellaOriginale"
docmd.runsql "DELETE * FROM NuovaTabella"
docmd.setwarnings true
puoi anche creare una nuova tabledef e ciclarne i fields, ma se le due
tabelle devono essere di tracciato identico fai prima come sopra.
-----------------------------------
ATTENZIONE: il ng it.comp.database.access cambia nome e diventa it.comp.appl.access
linkatelo!
-----------------------------------
il sito comune di it.comp.database.access:
http://members.xoom.it/it_db_access

della tabella per cosi' dire "vecchia". 
Se nella tabella hai il campo data fattura puoi fare una cosa del tipo
(non ho messo le virgolette):
n = nz(dmax(nfat,fat,year(dfat)=year(now)),0)+1
Cosi' hai una sola tabella che contiene tutti gli anni.
--
Lorenzo Coronati
--
Quesito a risposta binaria SI/NO:
"Risponderai no a questa domanda?"
--


Struttura della tabella "Fatture"
id_fattura (contatore) : utilizzato solo come rif. univoco
numerofattura (numerico) : utilizzato per dare il numero della fattura
data_fattura (data/ora) : (formato  =date() )
note (testo) : utuilizzato per diciture in fattura
Spero che basti, ci sono altri 3 campi ma non sono importanti ai fini del
quesito da me postato ieri.
Intanto mi studio quanto hai scritto. Ovvio che se hai altri consigli ...
Ciao e Buon Veglione.
Luca.

 Cosi' hai una sola tabella che contiene tutti gli anni.
Non ho ben capito, puoi rispiegarmi meglio la funzione e il concetto
"tabella che contiene tutti gli anni"?
Grazie.
Ciao Lorenzo.
Luca.


- Perchč?
Ciao e grazie.
Luca.

note (testo) : utuilizzato per diciture in fattura
-----------------------------------



Ciao. Tu hai capito tutto. Perfetto. Ora: come filtrare il dmax in base
all'anno in corso?
Ciao.Luca.

all'anno in corso?
dim sFiltro as string
sFiltro= "datafattura Between #" & year(now()) & "/01/01 AND #" &
year(now()) & "/12/31"
numnuovafattura=1+dmax("numfattura", "tabellafatture", sFiltro)
forse come come condizione filtro di dmax (che comunque ti invito a
vedere sull'help) potresti anche usare:
sFiltro="year(datafattura) = " & year(now)
che e' piu' breve.  pero' non sono sicuro che funzioni, provala.
ovviamente numfattura, datafattura e tabellafatture sono
rispettivamente i nomi del campo che contiene il numero fattura, la
data della fattura e della tabella delle fatture.
dai anche un'occhiata al sito comune dove troverai altre cose su
questa problematica.
--------------------------------------------------
ATTENZIONE!
it.comp.database.access diventera' it.comp.appl.access!
cercalo tra i nuovi ng e linkalo!
-----------------------------------
rimuovere NOSPAM. per mandare email


"tabella che contiene tutti gli anni"?
Invece di usare una tabella fat per ogni anno, puoi usarne una sola, a
patto di metterci la data fattura: la n 43 del 18/2/99 sara' diversa
dalla n. 43 del 10/2/2000, no?
In pratica hai l'anno come discriminante.
Allora il dmax(nfat,fat,year(dfat)=year(now)) sara' l'ultimo numero
usato per l'anno corrente, sostituendo year(now) con l'anno che ti
serve trovi l'ultimo numero di quell'anno.
Poi nz ci vuole perche' se non hai ancora nessuna fattura ti da 0,
cosi' quando aggiungi 1 hai proprio 1.
Capito?
P.S. guarda che per posta non mi e' arrivato niente ;-)
Baibai


 P.S. guarda che per posta non mi e' arrivato niente ;-)
e tu come fai a saperlo ?
