Newsgroup: it.comp.appl.access
Titolo: controlsource errore di sintassi nell'espressione runtime 2438

qualcuno mi sa dire cosa sbaglio in questa istruzione?
TotNonPagati è una textbox
FiltroData è una textbox e vale data>=#2022-10-01#
 
Me.TotNonPagati.ControlSource = "=DSum(""totale"";""contratti"";""tipo='Contratto' and pagato=0 and "" & Me.filtroData)"
 
Non capisco.


Su finestra immediata se fai provi un
 
? "=DSum(""totale"";""contratti"";""tipo='Contratto' and pagato=0 and "" 
& Me.filtroData)"
 
Vedi subito cosa ti stampa
Per inserire l'ultima condizione devi mettere cosi
 
and pagato=0 and " & Me.filtroData & ")"


ah ok provo subito grazie.


ho provato come dici tu 
"=DSum(""totale"";""contratti"";""tipo='Contratto' and pagato=0 and " & Me.filtroData & ")"
che però nella finestra immediata sembra manchi di un doppio apice
=DSum("totale";"contratti";"tipo='Contratto' and pagato=0 and data>=#2022-10-01#)
 
 
poi ho provato cosi
 
?"=DSum(""totale"";""contratti"";""tipo='Contratto' and pagato=0 and " & Me.filtroData & """)"
nella finestra immediata esce: =DSum("totale";"contratti";"tipo='Contratto' and pagato=0 and data>=#2022-10-01#")
 
che a guardarlo sembra corretto ma nell'istruzione
 
Me.TotNonPagati.ControlSource ="=DSum(""totale"";""contratti"";""tipo='Contratto' and pagato=0 and " & Me.filtroData & """)"
 
entrambi danno l'errore di runtime 2438 errore di sintassi nell'espressione
 


ho tolto il segno uguale all'inizio e in quel caso non sa errore ma poi nella textbox esce #Nome?
quindi l'uguale serve, come fare?


Puoi provare ad utilizzare il codice VBA, ovvero
Metti nel sub del form -> Form_current
Me.TotNonPagati=DSum("totale","contratti";"tipo='Contratto' and pagato=0 and " & Me.filtroData  )
attenzione agli apici e ai doppi apici


Correggo (c'era un punto e virgola)...
Me.TotNonPagati=DSum("totale","contratti","tipo='Contratto' and pagato=0 and " & Me.filtroData ) 
Suppongo che Me.filtrodata sia formattato correttamente




 entrambi danno l'errore di runtime 2438 errore di sintassi nell'espressione
 
Devi usare la virgola come separatore che poi viene tradotta 
automagicamente da Access:
 
Me.TotNonPagati.ControlSource = 
"=DSum(""totale"",""contratti"",""tipo='Contratto' and pagato=0 and " & 
Me.filtroData & """)"
 
-- 
Ciao
Karl
*********
Access News: 
https://youtu.be/XMOHBSudo-U
 
Access DevCon: 
http://AccessDevCon.com
 
Access FAQ: 
https://www.donkarl.com/it
 
 


grazie a tutti ho provato 
 
"=DSum(""totale"",""contratti"",""tipo='Contratto' and pagato=0 and " &
Me.filtroData & """)"
 
e funziona!!!!!!!
 


chiedo un ulteriore suggerimento, quando in una form maschere continue scorro i record con la barra verticale a destra vedo i valori che si calcolano quando smetto di scorrere in pratica li calcola al volo ma se uno scorre non vede i valori, per risolvere questo effetto e avere già i valori visibili anche mentre scorro dovrei mettere i campi in una query? oppure come fare?
 
se fosse cosi come gestisco nella query le due possibilità con o senza filtro data? mi spiego :
senza filtro data il campo calcolato è Me.TotalePagati.ControlSource = "=DSum(""totale"",""contratti"",""tipo='Contratto' and pagato=-1" & """)"
altrimenti deve essere Me.TotalePagati.ControlSource = "=DSum(""totale"",""contratti"",""tipo='Contratto' and pagato=-1 and " & Me.filtroData & """)"
 
come si gestisce in una query la presenza o assenza del valore me.filtrodata?
 
grazie.