Newsgroup: it.comp.appl.access
Titolo: Query per calcolo giacenza

Nente da fare... ho un problema :
Ho due tabelle contenenti
A vendite prodotti
B magazzino prodotti
voglio sapere la qtà attuale in magazzino , quindi devo fare :
Somma(magazzino.quantità)-Somma(vendite.quantità) ..per prodotto , ed
otterrò la qtà in giacenza .
Come fare ? Ho creato una query che calcoli ,per Idprodotto , la somma di
entrambe ma i valori sono errati , come si fa a dirle che un valore deve
essere sommato una volta sola ?
Grazie
--
.:: The Jokers ::.

 ha scritto nel messaggio
news:eo5I7.81819$sq5.3...@news.infostrada.it...



se non sbaglio, scrivendo
dim somma1, somma2 as long
imposti a long solo somma2, ed a variant somma1.
la sintassi giusta dovrebbe essere
dim somma1 as long, somma2 as long
ciao Riccardo


Scusate ma non sono molto esperto ... questo codice è riferito ad una
procedure vba , oppure alla query. ?
Grazie
SImo

 wrote in message
eo5I7.81819$sq5.3...@news.infostrada.it...

__________________
Se hai una tabella Prodotti con idprodotto, puoi scrivere in una query:
SELECT prodotti.idprodotto, DSum("Quantità","magazzino","Idprodotto=" &
[idprodotto])-DSum("Quantità","vendite","Idprodotto=" & [idprodotto]) AS
Giacenza
FROM prodotti;
altrimenti ti adatti i nomi.
ciao Riccardo

 ha scritto nel messaggio
news:9sqrdn$drs$1...@news.panservice.it...


 ha scritto nel messaggio
news:Rq6I7.82056$sq5.3...@news.infostrada.it...



scusami, ma non per essere pignolo, ma magari
se scrivessi dopo il quoting si leggerebbe tutto meglio.
comunque, preso dall'help di Access "Dichiarazione di variabili":
_______________________________
È possibile dichiarare diverse variabili in una singola istruzione. Per
specificare un tipo di dati, è necessario includere il tipo di dati per
ciascuna variabile. Nell'istruzione seguente, le variabili intX, intY e intZ
vengono dichiarate di tipo Integer.
Dim intX As Integer, intY As Integer, intZ As Integer
Nell'istruzione seguente, le variabili intX e intY vengono dichiarate di
tipo Variant e solo la variabile intZ viene dichiarata di tipo Integer.
Dim intX, intY, intZ As Integer
Nell'istruzione di dichiarazione non è necessario specificare il tipo di
dati della variabile. Se il tipo di dati viene omesso, la variabile sarà di
tipo Variant.
________________________________
di conseguenza, a funzionare ti funziona, ma la prima variabile è variant e
non long.
ciao Riccardo


Allora :
:) per Riccardo , ho fatto :
SELECT Prodotti.[Id Prodotto], DSum("quantità","Carico","id prodotto=" & [Id
Prodotto])-DSum("quantità","acquisti prodotti","Id prodotto=" & [Id
Prodotto]) AS Giacenza
FROM Prodotti;
dove le tabelle sono : Prodotti , Carico(qtà a magazzino) e acquisti
prodotti(qtà vendute)
ma non funge , mi dà errore nel campo giacenza ..perchè??
Grazie
Simo
:) per Ste , ho provato ad inserirlo in una sub , ma visto che utilizzo il
vba per i pulsanti , non so come usufruire di queste righe ,
cioé : il tuo cod. lo metto all'interno del cod. del modulo Prodotti ,
giusto ? Poi metto una cella con valore somma1 ? Non capisco come fare
riferimento al valore ,..
Mi interessa molto vedere come modificare i calcoli con il vba , grazie
Simo

 wrote in message
R17I7.82215$sq5.3...@news.infostrada.it...

______________
Nella Tabella Prodotti dovresti avere un campo IdProdotto
Nella tabella Carico, oltre al campo IdProdotto, hai il campo quantità che :
Come si chiama?
qtà?
se così fosse, invece di scrivere nel DSum "quantità" devi scrivere "qtà" e
lo stesso
per la tabella acuisti prodotti.
ciao Riccardo


Questi sono i nomi dichiarati
Tabella Prodotti : Id Prodotto
Tabella Carico : id prodotto , quantità
Tabella acquisti prodotti : Id prodotto , quantità

 wrote in message
on7I7.82303$sq5.3...@news.infostrada.it...

__________
Purtroppo mi trovo in difficolta'.
L'errore secondo me dipende dal fatto che nel campo ID Prodotto hai inserito
lo
spazio e quindi forse bisognerà racchiudere qualcosa tra virgolette.
Io per evitare problemi, cerco sempre di non lasciare spazi.
Il tuo ID Prodotto lo avrei chiamato Id_Prodotto, e penso che la maggioranza
faccia in questo modo.
Se trovo la soluzione, ti faccio sapere.
ciao Riccardo


Ok , grazie mille per la tua disponibilità .
A presto
Simo

 wrote in message
on7I7.82303$sq5.3...@news.infostrada.it...

___
Ho risolto così (un po' lungo)
Ho creato 3 query:
qryCarico
qryAcquisti
Giacenza
la qryCarico è la seguente:
SELECT Carico.[ID Prodotto], Sum(Carico.quantità) AS SommaDiquantità
FROM Carico
GROUP BY Carico.[ID Prodotto];
la qryAcquisti è la seguente:
SELECT [acquisti prodotti].[ID Prodotto], Sum([acquisti prodotti].quantità)
AS SommaDiquantità
FROM [acquisti prodotti]
GROUP BY [acquisti prodotti].[ID Prodotto];
la query Giacenza è la seguente:
SELECT Prodotti.[ID Prodotto], qryCarico.SommaDiquantità,
qryAcquisti.SommaDiquantità,
[qryCarico].[SommaDiquantità]-[qryAcquisti].[SommaDiquantità] AS Giacenza
FROM (Prodotti LEFT JOIN qryAcquisti ON Prodotti.[ID Prodotto] =
qryAcquisti.[ID Prodotto]) LEFT JOIN qryCarico ON Prodotti.[ID Prodotto] =
qryCarico.[ID Prodotto];
a me così funziona.
ciao Riccardo

.......

SEI TROPPO UN MITO !!!
Funziona perfettamente !!! Mi dà la giacenza attuale .
Non sò come ringrazziarti sei stato davvero gentilissimo .
Oggi lavoro tutto il giorno su questo dbase , magari ci ri-"vediamo" .
Grazie ancora , a presto
Simo

faccia in questo modo.
Quando il nome di un campo contiene degli spazi occorre racchiudere il
nome tra parentesi quadre. Sono d'accordo con te. Per evitare
complicazioni meglio scrivere ID_Prodotto oppure IdProdotto senza
usare gli spazi che in Access sono consentiti ma in altri database no.
ing. Franco Varoli
fva...@tin.it
fva...@libero.it

 wrote in message
ipj2vtsom7ql74tji...@4ax.com...

avevo provato anche a scrivere ....;"Id Prodotto=" & [Id Prodotto])
ma non funzionava lo stesso.
ciao Riccardo