PDA

View Full Version : Chi mi può dare una mano con Access?


Trebio
29-03-2005, 14:44
Chi mi può dare una mano con Microsoft Access?
Il problema di cui non riesco a venire a capo è questo:
Ho creato una tabella di access contenente diversi campi nel formato SI/NO, ovviamente nella relativa maschera appare un quadratino con l'opzione del segno di spunta.....
ora, avendo creato un report per riassumere in quanti hanno risposto SI, ovvero hanno apposto il segno di spunta, mediante il calcolo SOMMA, il valore che mi viene restituito è corretto ma con segno negativo. (-3 -9 -11 ecc.)
Come posso togliere il valore negativo?
Grazie.

Brigante
29-03-2005, 17:19
Puoi utilizzare la funzione Abs applicata al campo, cioè: SELECT Abs([NOME_TABELLA.NOME_CAMPO)] AS ALIAS_CAMPO FROM ...... WHERE ...

Trebio
29-03-2005, 18:40
Originariamente inviato da Brigante
Puoi utilizzare la funzione Abs applicata al campo, cioè: SELECT Abs([NOME_TABELLA.NOME_CAMPO)] AS ALIAS_CAMPO FROM ...... WHERE ... Ciao Brigante, non sono in grado di comprendere il tuo suggerimento in quanto la mia conoscenza di Access è limitata alla creazione guidata di modestissimi progetti senza l'uso di un linguaggio di programmazione.
Provo a riformulare meglio il mio problema:
Ho creato una maschera dove mediante dei "ceck box" un utente dovrebbe spuntare quello che gli interessa esempio:
La tua frutta preferita è:
MELE v
PERE
BANANE
ALBICOCCHE

Dove il segno v è la spunta.
Ovviamente la maschera fa riferimento alla Tabella "Frutta" dove sono contenuti i campi MELE, PERE, BANANE, ALBICOCCHE e dove controllando posso vedere che nel campo MELE vi è un segno di spunta.
Ho quindi creato una query contenente i campi MELE, PERE, BANANE, ALBICOCCHE dove alla voce Formula ho selezionato SOMMA, con l'obiettivo di sapere quanti tra i potenziali clienti hanno selezionato le Mele le pere le banale o le albicocche.
Facendo una prova tutto funziona mi vengono restituiti dei valori giusti in sostanza, se non fosse che tali somme hanno valore negativo cioè se dieci clienti hanno spuntato la casella MELE il valore memorizzato è -10 e non dieci.
Cosa dovrei fare per avere un risultato di segno positivo? Dovendo poi stampare un Rapporto riepilogativo da presentare?
Ciao e Grazie in anticipo per la pazienza....

Brigante
29-03-2005, 20:02
Originariamente inviato da Trebio
Ciao Brigante, non sono in grado di comprendere il tuo suggerimento in quanto la mia conoscenza di Access è limitata alla creazione guidata di modestissimi progetti senza l'uso di un linguaggio di programmazione.
Provo a riformulare meglio il mio problema:
Ho creato una maschera dove mediante dei "ceck box" un utente dovrebbe spuntare quello che gli interessa esempio:
La tua frutta preferita è:
MELE v
PERE
BANANE
ALBICOCCHE

Dove il segno v è la spunta.
Ovviamente la maschera fa riferimento alla Tabella "Frutta" dove sono contenuti i campi MELE, PERE, BANANE, ALBICOCCHE e dove controllando posso vedere che nel campo MELE vi è un segno di spunta.
Ho quindi creato una query contenente i campi MELE, PERE, BANANE, ALBICOCCHE dove alla voce Formula ho selezionato SOMMA, con l'obiettivo di sapere quanti tra i potenziali clienti hanno selezionato le Mele le pere le banale o le albicocche.
Facendo una prova tutto funziona mi vengono restituiti dei valori giusti in sostanza, se non fosse che tali somme hanno valore negativo cioè se dieci clienti hanno spuntato la casella MELE il valore memorizzato è -10 e non dieci.
Cosa dovrei fare per avere un risultato di segno positivo? Dovendo poi stampare un Rapporto riepilogativo da presentare?
Ciao e Grazie in anticipo per la pazienza....

Avevo capito qual'era il problema, allora...
In Access vai nella tua query entrando in Visualizzazione Struttura, poi prendi il primo campo dove fai la somma e dove hai una situazione di questo tipo: SommaDiMele: Somma(FRUTTA.Mele), dove FRUTTA è la tabella e Mele è il campo, ok? Bene, ora tutto ciò devi trasformalo in:SommaDiMele: Abs(Somma(FRUTTA.Mele)). Ripeti la stessa cosa per ogni campo e sei a posto.
;)

Trebio
29-03-2005, 20:45
Ho provato a modificare ma mi rende una serie di errori, qui sotto la modifica partendo da SommaDiAgentiOperanti.

SELECT Count(Tabella2.Pratica) AS ConteggioDiPratica, Tabella2.Circoscrizione, [Tabella2].SommaDiAgentiOperanti, Abs(Sum([Tabella2].AgentiOperanti)). Sum(Tabella2.[Mobilità e sicurezza stradale]) AS [SommaDiMobilità e sicurezza stradale], Sum(Tabella2.Commerciante) AS SommaDiCommerciante, Sum(Tabella2.Cittadino) AS SommaDiCittadino, Sum(Tabella2.Artigiano) AS SommaDiArtigiano, Sum(Tabella2.Altro) AS SommaDiAltro, Sum(Tabella2.[Qualità Urbana]) AS [SommaDiQualità Urbana], Sum(Tabella2.[Allarme sociale]) AS [SommaDiAllarme sociale], Sum(Tabella2.[Convivenza civile]) AS [SommaDiConvivenza civile]
FROM Tabella2
GROUP BY Tabella2.Circoscrizione;

Grazie

Brigante
29-03-2005, 21:04
Facciamo un poco di ordine e inseriscila così:


SELECT Count(Tabella2.Pratica) AS ConteggioDiPratica,
Tabella2.Circoscrizione,
Tabella2.SommaDiAgentiOperanti,
Abs(Sum(Tabella2.AgentiOperanti)),
Sum(Tabella2.[Mobilità e sicurezza stradale]) AS [SommaDiMobilità e sicurezza stradale],
Sum(Tabella2.Commerciante) AS SommaDiCommerciante,
Sum(Tabella2.Cittadino) AS SommaDiCittadino,
Sum(Tabella2.Artigiano) AS SommaDiArtigiano,
Sum(Tabella2.Altro) AS SommaDiAltro,
Sum(Tabella2.[Qualità Urbana]) AS [SommaDiQualità Urbana],
Sum(Tabella2.[Allarme sociale]) AS [SommaDiAllarme sociale],
Sum(Tabella2.[Convivenza civile]) AS [SommaDiConvivenza civile]

FROM Tabella2

GROUP BY Tabella2.Circoscrizione;