Quote:
Originariamente inviato da cionci
Io intendevo un semplice campo Anno e un campo IDProgressivo...
Poi dopo selezioni le righe relative ai due campi e li setti come Chiave Primaria...
Ecco, a questo punto la coppia Anno/Progressivo non può essere ripetuta all'interno del database...
Poi dalla maschera l'unica cosa che dovrai fare quando crei una nuova fattura è incrementare il progressivo...
|
Non mi serve per le fatture
Si tratta di un archivio per cartelle cliniche.
Il problema è che ad ogni paziente deve essere assegnato un codice identificativo composto esattamente da un numero progressivo e dall'anno (00001/2000) ed il numero progressivo deve ripartire da 1 per ogni anno (00001/1999; 00002/1999....10000/1999; 00001/2000; 00001/2001 ecc.).
L'espressione
="" & Format(IIf(IsNull(DMax("[ID]";"[Cartella clinica Generale]";"[ID] like '?????/" & Format(Date();"aaaa") & "'"));1;Mid(DMax("[ID]";"[Cartella clinica Generale]";"[ID] like '?????/" & Format(Date();"aaaa") & "'");1;5)+1);"00000") & "/" & Format(Date();"aaaa")
inserita nel "valore predefinito" della maschera che richiama la Tabella (Cartella Clinica Generale) funziona egregiamente nel caso si inseriscano nuovi pazienti dell'anno in corso e penso che dovrebbe funzionare bene anche in futuro (nel 2007, 2008...2020

) almeno spero (ho provato a cambiare l'anno del pc e ha funzionato senza modificare i record inseriti precedentemente).
Il problema fontamentale è che io adesso devo inserire 2 o 3000 cartelle che vanno dal 1997 al 2006 e purtroppo il materiale cartaceo è stato ordinato in modo alfabetico e non in base all'anno

quindi sono costretto ogni volta a dover controllare quale numero assegnare ad ogni cartella.
Vorrei evitare di separae i due campi anche perché il database è praticamente finito e sono state impostate tutte le relazioni e non vorrei ricominciare da zero... sono convinto che deve esserci un modo per far assegnare automaticamente il numero una volta inserito l'anno nelle ultime quattro posizioni del campo oppure una volta inserita la data nell'altro campo di cui parlavo e da cui il campo "ID Codice/Anno" potrebbe prelevare in automatico le quattro cifre della data corrispondenti all'anno e poi assegnare il numero progressivo giusto confrontando il record con tutti gli altri record dello stesso anno (e quindi il numero del nuovo record dell'anno x sarà uguale al numero più alto dello stesso anno x aumentato di 1). E' giusto? Io purtroppo non conosco linguaggi di programmazione e non saprei da dove cominciare