Newsgroup: it.comp.appl.access
Titolo: Form con controllo che non visualizza la somma

Access 2013, 32bit
Progetto con mdb file formato A2003
Ho una form continua, per la visualizzazione riepilogo iva
Di un documento, vengono visualizzate tante righe quante sono le 
aliquote  iva diverse
Ad alimentare la form c'e' una stringa valorizzata sull'evento apertura 
della form stessa
Una roba del tipo
-------------------
stringa_sql = "SELECT ID_DOC, CODICE_IVA, PERCENTUALE_IVA, 
Sum(IIf([CODICIIVA.FLAG_ESENTE]=True, arrotonda([prezzo]*[quantita],0) 
AS ESENTE_PER_CODICE_IVA FROM DOCUMENTIRIGHE LEFT JOIN CODICIIVA ON 
DOCUMENTIRIGHE.CODICE_IVA = CODICIIVA.CODICE GROUP BY ID_DOC, 
DOCUMENTIRIGHE.CODICE_IVA, CODICIIVA.PERCENTUALE_IVA"
-------------------
In realta' e' un po' piu' complessa perche' oltre al valore 
ESENTE_PER_CODICE_IVA tira fuori tutti gli altri valori e tiene conto 
degli sconti su ogni riga, ma per far evitare di sbrodolare inutilmente 
diciamo che sia cosi come sopra
Nel form_load della form c'e' l'ovvio
 
Me.RecordSource = stringa_sql
 
e fin qua' niente di nuovo, le righe sul corpo della form vengono 
visualizze correttamente, come desiderato, quindi con tante colonne 
quali Imponibile, Imposta, Non Imponibile, Esente, ecc...
Per ogni colonna vorrei visualizzare il totale
Ho quindi inserito una textbox sul "Pie di Pagina Maschera" ed ho 
valorizzato il ControlSource della textbox col nome del campo restituito 
dalla query impostata sul ControlSource della form,
 
=Somma([ESENTE_PER_CODICE_IVA])
 
Niente, nella textbox viene visualizzato un bel #Error
Nel corpo e' tutto a posto, la sezione sotto si rifiuta di obbedire
 
Allora provo col nome della textbox che, nel corpo della form, e' usata 
per visualizzare il campo ESENTE_PER_CODICE_IVA, una roba del tipo
 
=Somma([txtEsenteIvaPerCodiceIva])
 
Ancora niente, nella textbox viene visualizzato il solito #Error
La domanda e':  in duve l'e' che sballio?
Forse la form deve avere qualche impostazione particolare?
Ciao e grazie

Dopo l'assegnazione del RecordSource, hai provato a fare un RECALC...?
 
@Alex

 
 
Non avevo provato
Ora l'ho messo, dopo l'assegnazione su RecordSource, dentro evento 
form_load della form
 
Poi, pensando fosse 'troppo presto' per aggiornare i campi quando ancora 
i dati non erano visibili (la form non e' ancora visualizzata) ho 
provato a mettere un button sulla form e dentro la metterci il recalc ma 
non cambia niente, sempre #Error vedo nella textbox sul pie' di pagina
Ho provato anche ad usare il generatore espressioni a comporre il 
contenuto del RecordSource della textbox, per essere sicuro che la 
sintassi comando dentro la textbox sul pie' di pagina sia corretta, 
niente, nada
 
Eppure sono sicuro di averle gia' usate le texbox con campo calcolato, 
ma ora c'e' qualcosa che non funzia, eppure sembra banale come procedura


hai impostato qualche ordinamento nella form per caso?
sei si prova a toglierlo e vedi se ti da ancora problemi
 
BFS
 
---
Questa email è stata esaminata alla ricerca di virus da AVG.
http://www.avg.com
 
 


No, sulla form nessun ordinamento
Sull'interrgazione che viene passata come RecordSource alla form, 
sull'evento Form_load, c'e' il group_by che si vede sopra (... GROUP BY 
ID_DOC, DOCUMENTIRIGHE.CODICE_IVA, CODICIIVA.PERCENTUALE_IVA...) ma non 
c'e' altro
 
Il bello e' che sono andato a riprendere un vecchio programma con form 
simile, e la' funziona
L'unica differenza e' che sul RecordSource della form form usavo una 
query fissa, memorizzata sul db una roba tipo qryDocumentiRigheIva
 
Ovviamente ho provato a fare lo stesso sulla form nuova, sul form_load 
della form vado a memorizzare la mia stringa_sql su una query dal nome 
qryPorcaPuttanaNonVaMaiGnente e la passo sul RecordSource della form
Ovviamente non va' niente, ne se la carico al volo nel Form_load ne' se 
la lascio memorizzata nel RecordSource e nel form_load non faccio niente


In realta' la query e' questa (magari c'entra qualcosa pure lei), e la 
creazione query 'al volo' da dare alla form mi serve per rendere 
configurabili i decimali di arrotondamento (nel testo sotto quel 4 che 
si vede prima della chiusura parentesi dell' "arrotonda"
 
-------------------------------------
SELECT DOCUMENTIRIGHE.ID_DOCUMENTITESTATE, DOCUMENTIRIGHE.CODICE_IVA, 
CODICIIVA.PERCENTUALE_IVA, CODICIIVA.DESCRIZIONE,
 
Sum(IIf([CODICIIVA.FLAG_NON_IMPONIBILE]=True,arrotonda(([prezzo]*[quantita])-([prezzo]*[quantita]/100*((1-(1-Nz([sconto1])/100)*(1-Nz([sconto2])/100)*(1-Nz([sconto3])/100)*(1-Nz([sconto4])/100)*(1-Nz([sconto5])/100))*100)),4),0)) 
AS NON_IMPONIBILE_PER_CODICE_IVA,
 
Sum(IIf([CODICIIVA.FLAG_ESENTE]=True,arrotonda(([prezzo]*[quantita])-([prezzo]*[quantita]/100*((1-(1-Nz([sconto1])/100)*(1-Nz([sconto2])/100)*(1-Nz([sconto3])/100)*(1-Nz([sconto4])/100)*(1-Nz([sconto5])/100))*100)),4),0)) 
AS ESENTE_PER_CODICE_IVA,
 
Sum(IIf([CODICIIVA.FLAG_FUORI_CAMPO_IVA]=True,arrotonda(([prezzo]*[quantita])-([prezzo]*[quantita]/100*((1-(1-Nz([sconto1])/100)*(1-Nz([sconto2])/100)*(1-Nz([sconto3])/100)*(1-Nz([sconto4])/100)*(1-Nz([sconto5])/100))*100)),4),0)) 
AS FUORI_CAMPO_PER_CODICE_IVA,
 
Sum(IIf([CODICIIVA.FLAG_IMPONIBILE]=True,arrotonda(([prezzo]*[quantita])-([prezzo]*[quantita]/100*((1-(1-Nz([sconto1])/100)*(1-Nz([sconto2])/100)*(1-Nz([sconto3])/100)*(1-Nz([sconto4])/100)*(1-Nz([sconto5])/100))*100)),4),0)) 
AS IMPONIBILE_PER_CODICE_IVA,
 
arrotonda([IMPONIBILE_PER_CODICE_IVA]*[percentuale_iva]/100,4) AS 
IMPOSTA_PER_CODICE_IVA
 
FROM DOCUMENTIRIGHE LEFT JOIN CODICIIVA ON DOCUMENTIRIGHE.CODICE_IVA = 
CODICIIVA.CODICE
 
GROUP BY DOCUMENTIRIGHE.ID_DOCUMENTITESTATE, DOCUMENTIRIGHE.CODICE_IVA, 
CODICIIVA.PERCENTUALE_IVA, CODICIIVA.DESCRIZIONE
-------------------------------------

 ...
 
Se nella casella calcolata solo provi
=[ESENTE_PER_CODICE_IVA]
Cosa ti dà?
 
Sei sicuro che non ci sia un conflitto col nome della casella calcolata? 
Prova di rinominarla.
 
Se ci sono più controlli calcolati sulla maschera prova di cancellare 
tutti gli altri perché qualche volta si impediscono mutuamente.
 
-- 
Ciao
Karl
*********
http://www.AccessDevCon.com
 
Access FAQ: 
http://www.donkarl.com/it
 
 


Si, e' proprio cosi'
Ho cinque colonne nel corpo della form, imponibile, imposta, 
non_imponibie, esente, fuori_campo
Le prime due colonne, o meglio le prime due textbox che visualizzano i 
dati nel corpo della form, hanno name uguale al nome del campo
E se cambio il nome da imponibile_per_codice_iva in 
txtImponibilePerCodiceiva, le textox sotto, quelle calcolate, mi 
visualizzano #Error
E' come se il nome delle textbox nel corpo fosse in qualche modo 
vincolato al campo sul db, quanto scritto dentro ControlSource
Il bello e' che cambio il nome di UNA textbox nel corpo form, sotto su 
TUTTE le 5 textbox calcolate mi mostra #Error
E' davvero strana questa cosa
 


Visto che il problema era sul legame nome_controllo <-> nome_campo_db mi 
son messo a provare
Cambiando solo il nome textbox il problema permaneva
Ho dovuto 's-bindare' la textbox indicando come nome campo un campo 
inesistente sul db sottostante, poi cambiare nome alla textbox, poi 
ri-bindarlo al nome campo db
Grazie a tutti per l'aiuto