="" & Format(IIf(IsNull(DMax("[n_
impegno]";"[autorizzazioni]";"[n_impegno] like '?????/??/" &
Format(Date();"yyyy") & "'"));
1;Mid(DMax("[n_impegno]";"[autorizzazioni]";"[n_impegno] like
'?????/??/" & Format(Date();"yyyy") & "'");1;5)+1);"00000") & "/" &
Format(Date();"mm/yyyy")
presa dal sitocomune e che funge da contatore annuale, al quale ho
aggiunto l'indicazione del mese corrente.
Dico questo non per sottolineare la mia bravura in quanto non sono
affatto in gamba con le istruzioni di Access, ma solo perchè la
difficoltà maggiore che ho incontrato nell'affrontare il problema e
nel cercare di capire come funziona tale istruzione è stata
soprattutto capire il senso della punteggiatura e dei simboli usati.
Nella parte riguardante il criterio della funzione Dmax :
"[n_impegno] like '?????/??/" &
Format(Date();"yyyy") & "'"
non mi è chiaro quanto segue:
- il significato delle apicette ' dopo like
- perchè dopo ????/??/ vengono aperte le virgolette doppie
- perchè è presente una & alla fine dopo Date();"yyyy")
Vi sarei grato se mi aiutaste a comprendere meglio, anche se il
problema può sembrarvi banale.
Grazie infinite.
--
Remigio
www.ricoclaun.it
la clownterapia come volontariato di corsia
Perchè le stringhe inserite in criteri SQL richiedono come
delimitatori gli apicetti.
> - perchè dopo ????/??/ vengono aperte le virgolette doppie
Perchè il Carattere " lo si può inserire solo raddoppiandolo oppure
usando l'equivalente chr(34)...
> - perchè è presente una & alla fine dopo Date();"yyyy")
Concatenazione delle stringhe... si usa & per concatenare la prima
parte alla 2°...
> Vi sarei grato se mi aiutaste a comprendere meglio, anche se il
> problema può sembrarvi banale.
> Grazie infinite.
>
> --
>
> Remigiowww.ricoclaun.it
> la clownterapia come volontariato di corsia
Quella funzione scritta nel SC pur funzionando è realmente
INCOMPRENSIBILE senza un pò di esperienza...
C'è modo e modo di scrivere codice e funzioni... quello è un modo poco
immediato...
Per fare un'esercizio di studio... dovresti spezzare la funzione
partendo dall'interno verso l'esterno, creando dei piccoli passi
singoli
che ti aiutano a comprendere meglio come agisce...
Tuttavia le domande che hai posto, richiedono un'approfondimento dei
rudimenti della sintassi base.
@Alex
Ciao, benissimo la volontà di capire, quindi:
la sintassi delle istruzioni comprendenti variabili (o costanti)
stringa non è molto semplice anche se il concetto non è assolutamente
difficile.
Nello specifico, l'argomento "criterio" deve essere, alla fine, una
stringa, anche se composta da più sottostringhe concatenate dalla &.
Immagina di filtrare una persona che si chiama Paolo, metterai "where
nome= 'Paolo'" dove l'apostrofo ha la stessa funzione delle virgolette
per far capire che si tratta di una stringa.
Analogamente se il nome Paolo sta nel campo nome di una maschera
allora diventa "where nome='" & Me!nome &"'", anche qui gli apostrofi
hanno lo stesso significato.
Puoi verificare quello che ti ho detto in fase di debug, così vedrai
bene il comportamento delle virgolette e degli apostrofi.
> - il significato delle apicette ' dopo like
perchè l'argomento di Like è una
stringa
> - perchè dopo ????/??/ vengono aperte le virgolette doppie
perchè Format(Date();"yyyy") è una stringa
> - perchè è presente una & alla fine dopo Date();"yyyy")
per contenere l'apostrofo che chiude il precedente
Spero di essermi fatto capire
Ciao
Alberto
Vi ringrazio entrambe per le spiegazioni.
In effetti avevo compreso abbastanza bene le funzioni Iif, Dmax,
Format, IsNull e Mod ma senza capire a fondo l'uso della
punteggiatura.
Il problema è che sulla guida di Access non ho trovato riferimenti
espliciti all'uso di essa, pur essendo una delle cose più importanti
assieme alla sintassi.
Sapreste dirmi se trovo in rete degli esercizi o degli esempi
spiegati?
Ancora grazie per il prezioso contributo.
Un saluto.
--
Remigio