Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

chiarimenti sulla sintassi

16 views
Skip to first unread message

remigio

unread,
Feb 20, 2011, 9:53:55 AM2/20/11
to
Ciao,
ultimamente, leggendo la guida delle varie funzioni interessate e
usando soprattutto l'intuito, sono riuscito a risolvere un problema
che avevo con l'istruzione seguente:

="" & 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

@Alex

unread,
Feb 20, 2011, 2:53:37 PM2/20/11
to
On 20 Feb, 15:53, remigio <realel...@tiscali.it> wrote:
> Ciao,
> ultimamente, leggendo la guida delle varie funzioni interessate e
> usando soprattutto l'intuito, sono riuscito a risolvere un problema
> che avevo con l'istruzione seguente:
>
> ="" & 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è 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

almorel

unread,
Feb 20, 2011, 3:19:06 PM2/20/11
to
On 20 Feb, 15:53, remigio <realel...@tiscali.it> wrote:

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

remigio

unread,
Feb 21, 2011, 12:57:32 AM2/21/11
to

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

0 new messages