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

DCOUNT con più condizioni: sintassi

1,387 views
Skip to first unread message

rick...@libero.it

unread,
Jul 30, 2012, 5:12:40 AM7/30/12
to
Ciao,

vorrei inserire in un textbox una funzione DCOUNT con più condizioni.
Ho cercato la sintassi da utilizzare ma evidentemente non ho compreso la logica da utilizzare:
La funzione iniziale, funzionante è la seguente:
=DCount("[Codice Comsy]", "tblCOMSY", "[IDanagrafica] = [txtIDanagrafica]")
Ho provato ad inserire altre due condizioni, ma ottengo sempre un messaggio di errore di sintassi:

=DCount("[Codice Comsy]", "tblCOMSY", "[IDanagrafica] = [txtIDanagrafica]" AND "[Divisione] = 'RES'" AND "[Canale] = 'Diretto'")

Dove sbaglio?

Vi ringrazio
Ricky

Karl Donaubauer

unread,
Jul 30, 2012, 3:17:17 PM7/30/12
to
rick...@libero.it wrote:
>
> vorrei inserire in un textbox una funzione DCOUNT con pi� condizioni.
> Ho cercato la sintassi da utilizzare ma evidentemente non ho compreso
> la logica da utilizzare:
> La funzione iniziale, funzionante � la seguente:
> =DCount("[Codice Comsy]", "tblCOMSY", "[IDanagrafica] =
> [txtIDanagrafica]")
> Ho provato ad inserire altre due condizioni, ma ottengo sempre un
> messaggio di errore di sintassi:
>
> =DCount("[Codice Comsy]", "tblCOMSY", "[IDanagrafica] =
> [txtIDanagrafica]" AND "[Divisione] = 'RES'" AND "[Canale] =
> 'Diretto'")

Dove si trova quest'espressione?
Cos'� [txtIDanagrafica]? Un campo, un controllo?

Se la funzione iniziale ha funzionato, prova cos� (in 1 riga):

=DCount("[Codice Comsy]", "tblCOMSY", "[IDanagrafica] =
[txtIDanagrafica] AND [Divisione] = 'RES' AND [Canale] = 'Diretto'")

--
Ciao
Karl
*********
Access FAQ: www.donkarl.com/it


rick...@libero.it

unread,
Jul 31, 2012, 3:42:11 AM7/31/12
to
Il giorno lunedì 30 luglio 2012 21:17:17 UTC+2, Karl Donaubauer ha scritto:
>Dove si trova quest'espressione? Cos'� [txtIDanagrafica]? Un campo, un controllo?

La funzione si trova in un Textbox, txtIDanagrafica è un campo della stessa form

>Se la funzione iniziale ha funzionato,

La funzione iniziale ha funzionato perchè aveva il ";" e non "," (nel fare il post l'ho scritta di mio pugno e non l'ho copiata...

prova cos� (in 1 riga): =DCount("[Codice Comsy]", "tblCOMSY", "[IDanagrafica] = [txtIDanagrafica] AND [Divisione] = 'RES' AND [Canale] = 'Diretto'")

Funziona.
Quindi tutte le condizioni vanno scritte tra una sola coppia di virgolette e le condizioni vanno separate solo con un AND.

Grazie per il tuo aiuto

Ricky

Karl Donaubauer

unread,
Jul 31, 2012, 3:56:23 AM7/31/12
to
rick...@libero.it wrote:
> Karl Donaubauer ha scritto:
>> Dove si trova quest'espressione? Cos'� [txtIDanagrafica]? Un
>> campo, un controllo?
>
> La funzione si trova in un Textbox, txtIDanagrafica è un campo
> della stessa form
>
>> Se la funzione iniziale ha funzionato,
>
> La funzione iniziale ha funzionato perchè aveva il ";" e non ","
> (nel fare il post l'ho scritta di mio pugno e non l'ho copiata...

Questo era punto 2 che mi merivigliava... perché il comma
è possibile solo in VBA e SQL (ma senza =) o su sistemi inglesi.

> prova cos� (in 1 riga): =DCount("[Codice Comsy]", "tblCOMSY",
> "[IDanagrafica] = [txtIDanagrafica] AND [Divisione] = 'RES' AND
> [Canale] = 'Diretto'")
>
> Funziona.
> Quindi tutte le condizioni vanno scritte tra una sola coppia di
> virgolette e le condizioni vanno separate solo con un AND.

Effettivamente no. Siamo al punto 1. ;-)
Se txtIDanagrafica è un campo o controllo devi escluderlo
dalle virgolette per valorizzarlo e così fornire il suo valore
alla funzione. Se è numerico:

=DCount("Codice Comsy"; "tblCOMSY"; "IDanagrafica =" &
[txtIDanagrafica] & " AND Divisione = 'RES' AND Canale = 'Diretto'")

o se txtIDanagrafica è di tipo testo:

=DCount("Codice Comsy"; "tblCOMSY"; "IDanagrafica ='" &
[txtIDanagrafica] & "' AND Divisione = 'RES' AND Canale = 'Diretto'")


--
Ciao
Karl
*********
Access FAQ: http://www.donkarl.com/it

Karl Donaubauer

unread,
Jul 31, 2012, 4:10:57 AM7/31/12
to
Karl Donaubauer wrote:
> rick...@libero.it wrote:
> ...
> Se txtIDanagrafica è un campo o controllo devi escluderlo
> dalle virgolette per valorizzarlo e così fornire il suo valore
> alla funzione. Se è numerico:
>
> =DCount("Codice Comsy"; "tblCOMSY"; "IDanagrafica =" &
> [txtIDanagrafica] & " AND Divisione = 'RES' AND Canale = 'Diretto'")
>
> o se txtIDanagrafica è di tipo testo:
>
> =DCount("Codice Comsy"; "tblCOMSY"; "IDanagrafica ='" &
> [txtIDanagrafica] & "' AND Divisione = 'RES' AND Canale =
> 'Diretto'")

Ah, sì, nelle maschere (e report) Access aiuta... e si puo
scrivere il nome di un controllo anche al interno delle
virgolette. Però in genere è meglio di escluderlo dalle
virgolette perché spesso non funziona, p.e. se veramente
si tratta di un nome di un campo della stessa tabella
(<> nome di un controllo) o nelle query, codice VBA ecc.
0 new messages