Newsgroup: it.comp.appl.access
Titolo: Contatore/aa

Buongiorno a tutti. Questa volta ho un problema molto più serio di
quello delle maschere colorate (che comunque non sono riuscito a
risolvere...)
Mi sono accorto di aver bisogno, nella mia tabella principale, di un
campo come in oggetto, tipo 01/06 - 02/06 - 03/06 - 01/07.... etc
ho trovato nel sito comune questo esempio:
="E" & Format(Date();"aa") & "/" &
Format(IIf(IsNull(DMax("MioContatore";"MiaTabella";"MioContatore like
'?" &
Format(Date();"aa") &
"/????'"));1;Right(DMax("MioContatore";"MiaTabella";"MioContatore like
'?" & Format(Date();"aa") & "/????'");4)+1);"0000")
che andrebbe impostato come valore predefinito del campo, e che
restituisce però qualcosa tipo"E06/0001".
Non sono in grado di modificarlo per le mie esigenze, qualcuno potrebbe
aiutarmi o, eventualmente indicarmi strade diverse? Nel NG non ho
trovato nulla..
Un saluto.

T_A_O ha scritto:

Io ho usato per un caso simile al tuo una normale maschera di input del
tipo 0000/000 direttamente nel controllo della maschera, creata ad hoc
per l'occasione...

T_A_O ha scritto:

non ho fatto un analisi completa, ma a prima vista credo potresti fare
così:
=Format(IIf(IsNull(DMax("MioContatore";"MiaTabella";"MioContatore like
'?" &
Format(Date();"aa") &
"/????'"));1;Right(DMax("MioContatore";"MiaTabella";"MioContatore like
'?" & Format(Date();"aa") & "/????'");4)+1);"0000") & "/" &
Format(Date();"aa") 
prova e fammi sapere
ciao

wlady ha scritto:

Grazie mille ad entrambi, ora provo...

T_A_O ha scritto:

Se lo metto come campo numerico mi dice che è possibile ci sia un
operando senza l'operatore, non posso metterlo come contatore perche ho
già la chiave primaria contatore e mi è necessario resti
così....come posso fare? ne ho proprio bisogno....
Per quanto riguarda la soluzione di Gianluca mi sembra di capire che
dovrei inserirli manualmente i dati invece io avrei bisogno di un campo
che si aggiornasse in automatico.
E' un mondo difficile......

wlady ha scritto:

Ho provato a metterlo nel valore predefinito controllo della mia chiave
primaria contatore ma sembra non funzioni, mi da il contatore come
sempre....

T_A_O ha scritto:

credo tu possa usare una semplice funzione del tipo:
=DMax("CampoDaContare";"Tabella") & "/" & Format(Date();"aa")
ciao

wlady ha scritto:

Non succede nulla di significativo wlady, sempre messo nel valore
predefinito dela campo contatore nella maschera, mi viene fuori solo il
numero, come se non facessi nulla.
Può essere rilevante che sia il nome del campo, ovverosia "N°
cliente" che il nome della tabella sono composti? ho provato anche con
"N°_cliente" ma non da segni di vita...
So che sono uno dei tuoi clienti peggiori......sorry.....

 ha scritto nel messaggio 
news:1150440929....@f6g2000cwb.googlegroups.com...



Ciao T_A_O
prova con:
="E" & Format(Date();"aa") & "/" &
Format(IIf(IsNull(DMax("MioContatore";"MiaTabella";"MioContatore like
'?" &
Format(Date();"aa") &
"/??'"));1;Right(DMax("MioContatore";"MiaTabella";"MioContatore like
'?" & Format(Date();"aa") & "/??'");2)+1);"00")
tutto questo per funzionare lo devi mettere nel valore predefinito di un 
controllo
della maschera ed il campo associato della tabella deve essere testo.
non puoi e non è conveniente(che io sappia) utilizzare il campo contatore 
della tabella.
Daniele 

T_A_O ha scritto:

ma il campo è di tipo testo, vero?

wlady ha scritto:

Ehm....no....ora provvedo e poi ti faccio sapere...grazie per
l'aiuto....

T_A_O ha scritto:

Aggiornamento, la prima formula di wlady, con il campo testo mi darebbe
la formattazione che mi servirebbe, cioè 0001/06, il problema è che
non si autoincrementa sul nuovo record, rimane così.
la formula di daniele funziona ma mi da E/06/01 - E/06/02 e non è ciò
che mi serve....
La seconda formula di wlady mi da 06 - 06/06 - 06/06/06 ect.....
Buonanotte e a domani.....

T_A_O ha scritto:

riprendo la formula di Daniele, cambiando un po' l'ordine degli
elementi:
= Format(IIf(IsNull(DMax("MioContatore";"MiaTabella";"MioContatore like
'?" &
Format(Date();"aa") &
"/??'"));1;Right(DMax("MioContatore";"MiaTabella";"MioContatore like
'?" & Format(Date();"aa") & "/??'");2)+1);"00") & "/" &
Format(Date();"aa")
è la stessa ma senza la E e con contatore e anno invertiti...
anche se a me non piace questa soluzione;
io scriverei il campo in programmazione dopo l'evento di inserimento
ciao

wlady ha scritto:

Wlady, ma a te funziona? a me resta fermo a 01/06 su nuovo record.....

T_A_O ha scritto:

mi viene un dubbio...mi posti esattamente quello che hai messo nel tuo
controllo?

wlady ha scritto:

Eccolo:
= Format(IIf(IsNull(DMax("IdA";"tab clienti";"IdA like '?" &
Format(Date();"aa") &
"/??'"));1;Right(DMax("IdA";"tab clienti";"IdA like


T_A_O ha scritto:

allora ci sono due problemi sostanziali:
1. La funzione DMax calcola il valore massimo e non funzionerà se
modifichiamo il campo aggiungendo /aa in quanto la funzione DMax non
riesce ad interpretarlo correttamente
2. C'è un errore nel confronto LIKE, in quanto è impostato un formato
sbagliato
l'ho riscritta in questo modo:
=Format(IIf(IsNull(DCount("IdA";"tab clienti";"IdA like '??/" &
Format(Date();"aa") & "'"));1;Right(DCount("IdA";"tab clienti";"IdA
like
'??/" & Format(Date();"aa") & "'");2)+1);"00") & "/" &
Format(Date();"aa")
naturalmente il campo IdA che tu specifichi nella formula deve essere
lo stesso dove inserisci il contatore..


wlady ha scritto:

Ti presenterei mia sorella se ne avessi una... :)
Solo due dubbi, non è che così il numero massimo degli inserimenti è
99? posso inserirne 3785/06 giusto?
L'altro è, posso stare tranquillo che non mi facciano rientrare dalla
ferie a capodanno perchè rimane /06 e non /07? :)
Grazie mille, come sempre paziente e gentilissimo

T_A_O ha scritto:

Il primo dubbio è fugato, effettivamente si fermava a 100 e non andava
più avanti, ho modificato così:
=Format(IIf(IsNull(DCount("IdA";"tab clienti";"IdA like '????/" &
Format(Date();"aa") & "'"));1;Right(DCount("IdA";"tab clienti";"IdA
like '????/" & Format(Date();"aa") & "'");2)+1);"0000") & "/" &
Format(Date();"aa")
Ora è perfetta!

T_A_O ha scritto:

No, rettifico, a 100 mi ricomincia da 0001/06.... non mollarmi...ci
siamo quasi.....

T_A_O ha scritto:

prova a impostare la data del tuo pc al 2007 così ti togli anche il
secondo dubbio ;)
non ce l'hai una cugina?
ciao!!

wlady ha scritto:

Spero che tu abbia letto anche il seguito...avevo cantato vittoria
troppo presto...

T_A_O ha scritto:

mi stai facendo fare gli straordinari...prova così:
=Format(IIf(IsNull(DCount("IdA";"tab clienti";"IdA like '????/" &
Format(Date();"aa") & "'"));'0001';DCount("IdA";"tab clienti";"IdA like
'????/" & Format(Date();"aa") & "'")+1);"0000") & "/" &
Format(Date();"aa")

wlady ha scritto:

La statua nel giardino la vuoi semplice o equestre con cavallo rampante
e spada sguainata? :)
Scherzi a parte, grazie davvero, mi hai risolto un problemone!!!