Newsgroup: it.comp.appl.access
Titolo: Sintassi funzione DCount

Buongiorno a tutti,
scusate ma sto impazzendo con la funzione dcount, mi sono guardato 
un'infinitą di esempi ma puntualmente mi restituisce:
"errore di sintassi nell'espressione - operando o operatore mancante, 
carattere o virgola non valida oppure testo immesso non racchiuso tra 
virgolette"
in un campo vuoto nella maschera proncipale vorrei eseguire un conteggio dei 
record presenti in una tabella, scrivo nell'origine dati di questo campo 
vuoto:
=DCount("[Campo_tabella]","[Tabella]","[Campo_tabella]=valore_del_campo") 
ho provato come origine dati, espressione, codice vba, macro ma nulla da 
fare.
Mi servirebbe un aiutino, Grazie.
Filippo. 

 da fare.
Qui non devi scrivere dummys ma l'espressione esato con i nomi
dei oggetti come lo usi in realtà.
Ci sono differenze nella sintassi tra espressioni sulla superficie
di Access e VBA. Proviamo di creare un espressione che puoi
usare nella proprietà "Origine controllo" di una casella di testo.
La sintassi dipende del tipo del campo nella condizione.
Se il campo nella condizione è un numero:
=DCount("[Campo_tabella]","[Tabella]","[Campo_tabella]=" & valore_del_campo)
Se il campo nella condizione è un testo:
=DCount("[Campo_tabella]","[Tabella]","[Campo_tabella]='" & valore_del_campo 
& "'")
-- 
HTH
Karl
*********
Access FAQ: 
www.donkarl.com/it
 

 Filippo.
-- 
Ciao
Geppo 

 valore_del_campo & "'")
*Oops*, come già detto da Geppo (che non ha solo copiato/incollato ;-)
in un espressione devi usare punto e virgola. Poi se scrivi un valore
non un riferimento è giusto
=DCount("[Campo_tabella]";"[Tabella]";"[Campo_tabella]=valore_del_campo")
o per un testo
=DCount("[Campo_tabella]";"[Tabella]";"[Campo_tabella]='valore_del_campo'")
-- 
Karl
(che adesso veramente si fa un café)
*********
Access FAQ: 
www.donkarl.com/it
 

 ha scritto nel messaggio 
news:6fe14fF...@mid.individual.net...

Avete ragione, allora inserendo i dati reali come origine controllo in una 
casella di testo questo è il risultato:
=DCount("[società]";"[sedi_remote]")   così funziona
ovvero la mia casella di testo mi riporta il numero di record presenti nella 
tabella "sede_remota". Come filtro dovrei aggiungere la "società" 
visualizzata nella maschera che ho in uso. In sistesi senza aprire la 
maschera sedi remote sapere tramite questo campo testo se ci sono record 
riferiti alla stessa società o meno.
Vi ringrazio. 


Non sono mai riuscito ad impostare qualcosa di funzionante come
Origine Controllo (ControlSource) quando nell'espressione da inserire
erano presenti delle virgolette ed ho sempre risolto impostando
nell'evento Current del Modulo della Form il valore del controllo
così:
Me.TextBox = DCount("IdProgetto", "tblProgetti", "IdProgetto = " &
ValoreDaFiltrare)
Incuriosito dalle risposte di Karl e Geppo ho provato ad impostare un
controllo come indicato da loro ma puntualmente non riesce a
funzionarmi.
Con l'esempio di Karl ho impostato Origine Controllo in questi modi:
=DCount("IdProgetto","tblProgetti", "IdProgetto = " & 1)
=DCount("IdProgetto","tblProgetti", "IdProgetto = " & intA)
dove intA l'ho precedentemente valorizzato nell'evento Load della Form
a 1
Con l'esempio di Geppo
=DCount("IdProgetto";"tblProgetti"; "IdProgetto = " & intA)

 testo se ci sono record riferiti alla stessa società o meno.
Se il campo della società è del tipo testo e anche il controllo nella
maschera si chiama "Società" prova con
=DCount("[società]";"[sedi_remote]";"[Società]='" & [Società] & "'")
o se il nome della società puo contenere un apice:
=DCount("[società]";"[sedi_remote]";"[Società]=" & Chr(34) & [Società] & 
Chr(34))


 Geppo
Non sono mai riuscito ad impostare qualcosa di funzionante come
Origine Controllo (ControlSource) quando nell'espressione da inserire
erano presenti delle virgolette ed ho sempre risolto impostando
nell'evento Current del Modulo della Form il valore del controllo
cosģ:
Me.TextBox = DCount("IdProgetto", "tblProgetti", "IdProgetto = " &
ValoreDaFiltrare)
Incuriosito dalle risposte di Karl e Geppo ho provato ad impostare un
controllo come indicato da loro ma puntualmente non riesce a
funzionarmi.
Con l'esempio di Karl ho impostato Origine Controllo in questi modi:
=DCount("IdProgetto","tblProgetti", "IdProgetto = " & 1)
=DCount("IdProgetto","tblProgetti", "IdProgetto = " & intA)
dove intA l'ho precedentemente valorizzato nell'evento Load della Form
a 1
Con l'esempio di Geppo
=DCount("IdProgetto";"tblProgetti"; "IdProgetto = " & intA)
--------------------------------
Ho effettuato numerose prove ma mi cancella tutto il comando in origine 
controllo appena sposto il cursore, probabilmente sbaglio qualcosa; mi 
accetta solo questa:
=DCount("[societą]";"[sedi_remote]") come inserisco il filtro salta tutto.
Il dubbio č: se avessi un valore fisso tipo un numero o un nome ok faccio 
='filtro') ma se il filtro č il nome della societą che ho aperto nella mia 
maschera cosa devo inserire?
In sintesi dovrei dirgli:  =DCount 
"[societą]";"[sedi_remote];[societą]='SOCIETA APERTA NELLA MASCHERA2'") mi 
sa che devo dichiarare il valore del campo societą della maschera2 vero? ma 
da origine controllo non saprei proprio come farlo.
Grazie ancora. 

 Grazie ancora.
Visto che filtri per nome societą e non per il suo identificativo del 
record, č probabile che nel nome della societą ci sia un carattere mal 
digerito da access (es. un apostrofo o doppio apice).
Per metterti al riparo da questo puoi provare cosģ:
=DCount(...;"[societą]=" & chr(34) & [casellaDiTestoConNomeSocieta] & 
Chr(34))
Ciao.
-- 
Sergio MAZZA 


Ma è normale avere lo stesso Nick?
Ovviamente lo dico così, solo per curiosità, ma io non sono lo stesso,
io sono quello di tre o quattro post fa in merito alla rete.
Ciao
Filippo
PS Però rivendico la priorità :)

 PS Però rivendico la priorità :)
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggio 
news:jhpd949kov9g875iq...@4ax.com...

Beh credo sia possibile ;) tanto è l'email alla fine che ci distingue. Pensa 
ai Marco o nomi comuni ce ne saranno moltissimi :) io ho sempre usato 
filippo quando mi sono presentato qui mmm vabbè siamo in 2 prendiamone atto.
Ciao, Filippo. 

 Pensa
Ne sei proprio sicuro?
Antonio