Mdia valori

lunedì 27 agosto 2007 - 09.23

albyss Profilo | Newbie

ciao a tutti. Problema. Ho creato un DB per gestire dei prodotti che acquisto e rivendo. Acquisto da 5 fornitori diversi lo stesso prodotto con prezzi diversi e vorrei creare un prezzo medio di vendita, calcolando la media dei prezzi a cui ho già applicato il mio ricarico. Alcuni prodotti vengono venduti solo da due o tre rivenditori, per cui mi ritrovo con prezzi a zero. Come posso fare la media dei prezzi escludendo quelli = a zero? vorrei mediare solo quelli il cui valore nel campo è > di zero.
in pratica : vorrei fare la media di Prezzo 1 - Prezzo 2- Prezzo 3 - etc. escludendo i campi il cui valore sia = 0, oppure la media dei campi il cui valore è > di zero. Potete aiutarmi a scrivere la stringa da inserire nella query? Ringrazio tutti coloro che vorranno aiutarmi

SSUPERPIPPO Profilo | Guru

>ciao a tutti.

Ciao

>Problema. Ho creato un DB per gestire dei prodotti che acquisto e rivendo. Acquisto da 5 fornitori diversi lo stesso prodotto con >prezzi diversi e vorrei creare un prezzo medio di vendita, calcolando la media dei prezzi a cui ho già applicato il mio ricarico. Alcuni >prodotti vengono venduti solo da due o tre rivenditori, per cui mi ritrovo con prezzi a zero. Come posso fare la media dei prezzi >escludendo quelli = a zero? vorrei mediare solo quelli il cui valore nel campo è > di zero.
>in pratica : vorrei fare la media di Prezzo 1 - Prezzo 2- Prezzo 3 - etc. escludendo i campi il cui valore sia = 0, oppure la media dei >campi il cui valore è > di zero. Potete aiutarmi a scrivere la stringa da inserire nella query? Ringrazio tutti coloro che vorranno >aiutarmi

Questa è la select che devi utilizzare

SELECT CdFornitore, AVG(Prezzo1) AS Media1, AVG(Prezzo2) AS Media2, AVG(Prezzo3) AS Media3
FROM TuaTabella
WHERE NOT (Prezzo1= 0) AND NOT (Prezzo2=0) AND NOT (Prezzo3=0)
GROUP BY CdFornitore

Ciao

Alessandro

albyss Profilo | Newbie

Ti ringrazio ma ho provato e non riesco a farla funzionare. Ti spiego:
I miei valori da mediare sono generati in una query;
La query si chiama Query ricarico;
i campi per ogni prodotto sono distinti così: vendita produttore 1, vendita produttore 2, vendita produttore 3, etc. fino a 5 campi.
Io voglio fare la media con le caratteristiche già dette tra quei 5 campi" vendita".
Devo fare una nuova query?
Posso aggiungere una nuova colonna nella query ricarico e fa fare lì la media richiesta?
Il CdFornitore che hai messo tu, a cosa si riferisce?
Purtroppo la mia inesperienza mi rende difficile capire anche i comandi più semplici, problema per il quale oramai giro a vuoto da giorni.
Puoi darmi indicazioni " più elementari"? Ancora grazie

SSUPERPIPPO Profilo | Guru

Postami la tua query di selezione così te la modifico...

Ciao

Ale

http://blogs.dotnethell.it/alebadalin

albyss Profilo | Newbie

SELECT [Query prodotti].descrizione, [Query prodotti].[Codice omicron], [Query prodotti].[unità misura], [prezzo tosi]*[sconto tosi]*[ricarico]+[prezzo tosi]*[sconto tosi] AS [vendita tosi], [prezzo italmatic]*[sconto italmatic]*[ricarico]+[prezzo italmatic]*[sconto italmatic] AS [vendita italmatic], [prezzo schrader]*[sconto schrader]*[ricarico]+[prezzo schrader]*[sconto schrader] AS [vendita schrader], [prezzo bellino]*[sconto bellino]*[ricarico]+[prezzo bellino]*[sconto bellino] AS [vendita bellino], [prezzo wonder]*[sconto wonder]*[ricarico]+[prezzo wonder]*[sconto wonder] AS [vendita wonder]
FROM [categoria Query] INNER JOIN [Query prodotti] ON [categoria Query].codcat = [Query prodotti].codcat;

Questa è la query che genera i miei prezzi di vendita per ogni fornitore.
A questa vorrei aggiungere per ogni riga di prodotto la media fra i vari prezzi di vendita escludendo come detto gli eventuali "vendita" a zero.
Probabilmente la mia query fa giri inutili e casini di calcoli, (data l' inesperienza credo di aver fatto anche troppo)ma fino a qui funziona tutto.
Ancora grazie per l' aiuto

SSUPERPIPPO Profilo | Guru

>SELECT [Query prodotti].descrizione, [Query prodotti].[Codice omicron], [Query prodotti].[unità misura], [prezzo tosi]*[sconto tosi]
>[ricarico]+[prezzo tosi]*[sconto tosi] AS [vendita tosi], [prezzo italmatic]*[sconto italmatic]*[ricarico]+[prezzo italmatic]*[sconto
>italmatic] AS [vendita italmatic], [prezzo schrader]*[sconto schrader]*[ricarico]+[prezzo schrader]*[sconto schrader] AS [vendita
>schrader], [prezzo bellino]*[sconto bellino]*[ricarico]+[prezzo bellino]*[sconto bellino] AS [vendita bellino], [prezzo wonder]*
>[sconto wonder]*[ricarico]+[prezzo wonder]*[sconto wonder] AS [vendita wonder]
>FROM [categoria Query] INNER JOIN [Query prodotti] ON [categoria Query].codcat = [Query prodotti].codcat;

Presumendo che [Codice omicron] sia il codice articolo la sua SELECT dovrebbe essere di questo tipo

SELECT [Query prodotti].descrizione, [Query prodotti].[Codice omicron], [Query prodotti].[unità misura], [prezzo tosi]*[sconto tosi]*[ricarico]+[prezzo tosi]*[sconto tosi] AS [vendita tosi], [prezzo italmatic]*[sconto italmatic]*[ricarico]+[prezzo italmatic]*[sconto italmatic] AS [vendita italmatic], [prezzo schrader]*[sconto schrader]*[ricarico]+[prezzo schrader]*[sconto schrader] AS [vendita schrader], [prezzo bellino]*[sconto bellino]*[ricarico]+[prezzo bellino]*[sconto bellino] AS [vendita bellino], [prezzo wonder]*[sconto wonder]*[ricarico]+[prezzo wonder]*[sconto wonder] AS [vendita wonder] FROM [categoria Query] INNER JOIN [Query prodotti] ON [categoria Query].codcat = [Query prodotti].codcat, MediaSelect.MediaTosi, MediaSelect.MediaItalmatic, MediaSelect.MediaSchrader, MediaSelect.MediaBellino, MediaSelect.MediaWonder
INNER JOIN (SELECT AVG([prezzo tosi]*[sconto tosi][ricarico]+[prezzo tosi]*[sconto tosi]) As MediaTosi, AVG([prezzo italmatic]*[sconto italmatic]*[ricarico]+[prezzo italmatic]*[sconto italmatic]) As MediaItalmatic, AVG([prezzo schrader]*[sconto schrader]*[ricarico]+[prezzo schrader]*[sconto schrader]) As MediaSchrader, AVG([prezzo bellino]*[sconto bellino]*[ricarico]+[prezzo bellino]*[sconto bellino]) As MediaBellino, AVG([prezzo wonder]*[sconto wonder]*[ricarico]+[prezzo wonder]*[sconto wonder]) As MediaWonder,[Codice omicron] FROM [Query prodotti] As Prodotti GROUP BY [Codice omicron]) As MediaSelect ON [Query prodotti].[Codice omicron]=[MediaSelect].[Codice omicron]

Questa è il metodo per utilizzare un'unica query di selezione, da provare sulla tua base dati in quanto potrei aver sbagliato a digitere qualcosa.

comunque la logica semplificata è questa

SELECT Codice, Articolo, Prezzo1, Prezzo2, Prezzo3, Prezzo4, Prezzo5, Media.Media1, Media.Media2, Media.Media3, Media.Media4, Media.Media5

FROM TabellaProdotto (o query)

INNER JOIN
(SELECT AVG(Prezzo1) AS Media1,AVG(Prezzo2) AS Media2,AVG(Prezzo3) AS Media3,AVG(Prezzo4) AS Media4,AVG(Prezzo5) AS Media5, Codice
FROM TabellaProdotto AS TabellaProdotto_1
GROUP BY Codice) AS Media

ON

TabellaProdotto .Codice= Media.Codice

Spero di essere stato abbastanza chiaro nonostante la complessità della Select.

Se hai bisogno di aiuto sono a disposizione.

Ciao

Alessandro

http://blogs.dotnethell.it/alebadalin

albyss Profilo | Newbie

ti ringrazio per l' aiuto e l' interessamento. Purtroppo continua a non funzionare.
Dopo aver copiato il tutto mi dice:
ERRORE DI SINTASSI NELL' OPERAZIONE JOIN evidenziando QUERY PRODOTTI (Il primo dopo SELECT)
La mia query e formata da due query collegate:
CATEGORIA QUERY dove ci sono i seguenti campi:
categoria
codcat
ricarico
QUERY PRODOTTI dove ci sono gli altri valori
le due query sono collegate dal campo codcat

... e comunque non ho capito come fare poi la media per avere un unico prezzo di vendita (mediato tra i 5, escludendo quelli a zero)

SSUPERPIPPO Profilo | Guru

E' un Database Access?
In tal caso mi puoi allegare magari solo la tabella e le query con cui interagire?


http://blogs.dotnethell.it/alebadalin

albyss Profilo | Newbie

spero che funzioni. Ti ho fatto una copia semplificata eliminando tutto l' inutile. Mi auguro di aver zippato bene, ho dovuto scaricare winzip che non avevo. Ancora grazie per l' aiuto
Alberto

SSUPERPIPPO Profilo | Guru

Forse ho capito!

A te serve la media rispetto alle 5 colonne contenenti i prezzi dei tuoi 5 fornitori. Quindi in pratica vuoi aggiungere una sola colonna con la media di questi valori?


http://blogs.dotnethell.it/alebadalin

albyss Profilo | Newbie

esatto! Vorrei creare una nuova colonna, i cui campi siano la media di quelli precedenti, cioè la media dei vari prezzi di vendita che ho calcolato per ogni singolo prodotto.
Io compro il prodotto X da produttore 1, 2,3,4,5, al prezzo 1,2,3,4,5.
Fatti tutti i calcoli di sconto e ricarico, ottengo un prezzo di vendita 1,2,3,4,5
Però voglio vendere il mio prodotto X ad un prezzo medio, calcolato tra i prezzi di vendita 1,2,3,4,5
Il problema e che se un produttore non vende il prodotto X avrò un prezzo con valore 0
per cui la media dovrà essere tra i prezzi di vendita 1,2,3,4,5 con esclusione del campo il cui valore è =0

Forse adesso ho spiegato meglio il mio dilemma!
Bel Casino, magari è una stupidagine ma io ci giro oramai da un pò senza trovare la scappatoia.

SSUPERPIPPO Profilo | Guru

Problema risolto.
Ho creato una query che ho chiamato Conta attraverso la quale determino per ogni articolo le occorrenze di prezzi valorizzati per i vari fornitori (che sarà il dividendo nel calcolo della media)
Ho poi creato una query (Queryfinale) che per ogni riga calcola la media in base al conteggio prima effettuato.

Ti allego il file aggiornato, dagli un occhiata e fammi sapere se è quello che volevi.

Ciao

Alessandro

http://blogs.dotnethell.it/alebadalin

albyss Profilo | Newbie

>Problema risolto.
>Ho creato una query che ho chiamato Conta attraverso la quale
>determino per ogni articolo le occorrenze di prezzi valorizzati
>per i vari fornitori (che sarà il dividendo nel calcolo della
>media)
>Ho poi creato una query (Queryfinale) che per ogni riga calcola
>la media in base al conteggio prima effettuato.
>
>Ti allego il file aggiornato, dagli un occhiata e fammi sapere
>se è quello che volevi.
>
>Ciao
>
>Alessandro
>
>
Funziona, ti ringrazio sembra quello che cercavo.
L' unico problema che non ho considerato è che i campi prezzo dove non è stato inserito niente li vede come null
e quindi su quella riga non dà risultato.

Ora esiste un modo per dire che nel campo prezzo fornitore se è null deve essere uguale a zero?
Così entrerebbe nell' operazione media.

Altrimenti pazienza, quando inseriro i prodotti andrò a mettere zero nel caso non abbia il prezzo.
Tieni presente che quei prezzi li devo tutti verificare e reinserire, dato che ho preso i valori da una tabella excel e li ho solo copiati nelle colonne per poter lavorare.
Comunque mi hai fatto superare una cosa che mi stava facendo uscire di testa.

albyss Profilo | Newbie

retifico quanto scritto prima:
la query conta vede il dato non scritto come zero, per cui su 5 campi di cui 2 null o a zero restituisce 3

Invece è la query finale che su 5 campi di cui 3 scritti e 2 no non restituisce nessun valore, se vai a vedere i record da l n. 482 a seguire ti rendi conto di ciò che dico.

Alberto

SSUPERPIPPO Profilo | Guru

Ciao,

devi apportare una modifica alla query 'Ricarico' in corrispondenza della formula per calcolare i prezzi di vendita.
Ti posto la formula modificata per 'vendita tosi', le altre dovresti riuscire a modificartele da solo:

vendita tosi: IIf(IsNumeric([prezzo tosi]*[sconto tosi]*[ricarico]+[prezzo tosi]*[sconto tosi]);[prezzo tosi]*[sconto tosi]*[ricarico]+[prezzo tosi]*[sconto tosi];0)

Fammi sapere, ciao

Alessandro

http://blogs.dotnethell.it/alebadalin

albyss Profilo | Newbie

EPPUR SI MUOVE!
TUTTO OK
Al momento sembra che giri
Ora devo passare a creare i report vari ma al momento potrò uscire a vendere con un unico tabulato con il mio prezzo.
Naturalmente dopo avermi inserito prezzi articoli e varie percentuali che nel modello erano alcune reali ed alcune no, giusto per farlo girare in prova.
Ti ringrazio vivamente e mi permetterò di disturbarti più avanti nel caso trovassi nuovi e insormontabili (per me) ostacoli

SSUPERPIPPO Profilo | Guru

Di nulla, quando hai bisogno mi trovi sempre qui... (o qualsi )

Ciao

Alessandro

P.S.: Clicca su Accetta così chiudiamo il post.


http://blogs.dotnethell.it/alebadalin

albyss Profilo | Newbie

Rieccomi. Nuovi problemi.
ho creato una query che ho chiamato "QUERY FINALE PROVA REPORT" per poi poter creare un report:
SELECT categoria.categoria, QueryFinale.descrizione, QueryFinale.[Codice omicron], QueryFinale.[unità misura], QueryFinale.Media
FROM QueryFinale INNER JOIN categoria ON QueryFinale.codcat = categoria.codcat;

Il report deve contenere:
Categoria
Descrizione
Codice Omicron
U.M.
Media (cioè il tanto agognato prezzo medio da te creato)
Il tutto deve essere ordinato per categoria con salto pagina al cambio di categoria......
Quando vado a creare il report mi dice:

Impossibile visualizzare l' anteprima report. E' possibile che un altro utente abbia aperto in modalità esclusiva una tabella di origine. Il report verrà aperto in modalità Progettazione.

Se vado a creare il report dalla tua query finale funziona tutto, solo che io vorrei stampare invece di cod.cat la descrizione della categoria. Puoi dirmi che fare?
Scusami ancora una volta se ti disturbo, ma è da ieri sera che non concludo niente.
Ciao Alberto

SSUPERPIPPO Profilo | Guru

>ho creato una query che ho chiamato "QUERY FINALE PROVA REPORT" per poi poter creare un report:
>SELECT categoria.categoria, QueryFinale.descrizione, QueryFinale.[Codice omicron], QueryFinale.[unità misura], QueryFinale.Media
>FROM QueryFinale INNER JOIN categoria ON QueryFinale.codcat = categoria.codcat;

Ho verificato la sintassi della tua query ma dal Database che ti ho mandato non mi risulta che nella tabella QueryFinale ci sia un campo CodCat per effettuare la JOIN... !?!?

Fammi sapere, ciao

Ale


http://blogs.dotnethell.it/alebadalin

albyss Profilo | Newbie

hai ragione, è un' aggiunta che ho fatto io e sicuramente ho sbagliato.

le query "categoria query" (che contiene codcat, categoria, ricarico) e la "query prodotti" generano "QUERY RICARICO" a cui ho aggiunto il codcat

"QUERY RICARICO" e la tua query" CONTA" generano la tua "QUERY FINALE", a cui io ho pensato di aggiungere il codcat, dimenticando sicuramente qualche passaggio basilare.

E mo' che faccio?

Ho ripristinato tutto ciò che avevo cambiato.
Rimane il problema che vorrei generare il report con categoria, descrizione, codice Omicron, U.M. e prezzo medio, ma non riesco a creare una query che non dia errore quando genero il report.

SSUPERPIPPO Profilo | Guru

Ho provato anch'io e mi da lo stesso problema.
Credo che sia un problema legato al fatto che creando query di altre query ci siano delle tabelle che vengono aperte prima da una tabella e poi da un'altra, in questo modo si crea il blocco dei record che non consente la creazione del report.

Mi sà che ti conviene creare una Tabella di destinazione dove vai a inserire i record risultanti dalla tua query (che sarà di accodamento) per poi collegarci il tuo report.

Se non sai come fare eventualmente fammi sapere.

Ciao

Alessandro


http://blogs.dotnethell.it/alebadalin

albyss Profilo | Newbie

non so come fare. Ho difficoltà a creare la tabella prendendo i dati dalle query.
E poi cosa cambia? Da query o da tabella mi sa che il problema sarebbe uguale!???! O no?

SSUPERPIPPO Profilo | Guru

>non so come fare. Ho difficoltà a creare la tabella prendendo i dati dalle query.
>E poi cosa cambia? Da query o da tabella mi sa che il problema sarebbe uguale!???! O no?

Non è la stessa cosa perchè l'ultima query fa una join con una tabella che è già richiamata su una join in una query facente parte della query finale. Mi sono spiegato male ma in sostanza ne viene fuori un ingarbugliamento.

Ti allego il database a cui ho apportato le seguenti modifiche per risolvere il problema:

1. Ho creato una tabella vuota che conterrà i dati del report e l'ho chiamata per l'appunto Report (che fantasia.. )
2. Ho modificato la query 'Query finale' che riempie la tabella 'Report' con i dati finali
3. Ho creato una query di eliminazione che svuota la tabella 'Report' prima di effettuare una nuova 'Query finale' di accodamento altrimenti i dati si duplicano
4. Ho creato un velocemente un Report che ho chiamato 'prova' collegato alla tabella 'Report'
5. Ho creato una Macro che esegue automaticamente la query di eliminazione, quella di accodamento, e avvia il report

Basta che tu avvii la macro e fa tutto da sola!

Unica cosa, avviando la macro ti chiederà molte conferme per eliminazioni, accodamenti, ecc. Se vuoi che questi messaggi non appaiato:

Se hai Office 2007 allora premi il pulsante Office (rotondo in alto a sx) e dal menù che si apre seleziona in basso a dx Opzione Access, qui scegli Impostazioni Avanzate e deseleziona da Conferma le voci Modifiche record, Eliminazione documenti, Query di comando.

Se hai Office 2000/2003 allora vai nel menu Strumenti, Opzioni e troverai le opzione di modifica dove disattivare le stesse voci.

A questo punto se esegui la macro, tempo di elaborazione e ti esce il Report.

Ciao e fammi sapere cosa ne pensi.

Alessandro

P.S.: Il report ovviamente è solo di prova, modificalo tu come preferisci.

http://blogs.dotnethell.it/alebadalin

albyss Profilo | Newbie

Ti ringrazio ancora una volta.
Ora provo a scaricare e verificare il tutto, sicuramente andrà bene.
Ti faccio sapere
Complimenti per la disponibilità e la preparazione.
Ciao Alberto

Ho verificato il report: è possibile far apparire invece di codcat la descrizione di "categoria"?
Ti spiego: io vorrei ordinare i dati nella stampa per tipo di categoria, ma vorrei che venisse fuori stampato al posto di ad es. 02 (che è il codcat) la dicitura "RIPARAZIONE" che è la descrizione della categoria.

Se vai a vedere la tabella categoria ti renderai conto di ciò che voglio dire.
Se è possibile modificarlo OK, altrimenti non ti preoccupare, non voglio disturbarti oltre.
Mi rendo conto che inizio ad approffittare troppo della tua disponibilità.

albyss Profilo | Newbie

Provo e riprovo ma mi incasinosempre più.

La mia Categoria query:
SELECT categoria.categoria, categoria.codcat, categoria.ricarico
FROM categoria;

La mia query ricarico:
SELECT [Query prodotti].descrizione, [Query prodotti].[Codice omicron], [Query prodotti].[unità misura], [prezzo tosi]*[sconto tosi]*[ricarico]+[prezzo tosi]*[sconto tosi] AS [vendita tosi], [prezzo italmatic]*[sconto italmatic]*[ricarico]+[prezzo italmatic]*[sconto italmatic] AS [vendita italmatic], [prezzo schrader]*[sconto schrader]*[ricarico]+[prezzo schrader]*[sconto schrader] AS [vendita schrader], [prezzo bellino]*[sconto bellino]*[ricarico]+[prezzo bellino]*[sconto bellino] AS [vendita bellino], [prezzo wonder]*[sconto wonder]*[ricarico]+[prezzo wonder]*[sconto wonder] AS [vendita wonder], [Query prodotti].codcat
FROM [categoria Query] INNER JOIN [Query prodotti] ON [categoria Query].codcat = [Query prodotti].codcat;

La tua query finale che poi da origine al report:
INSERT INTO Report ( Media, Espr1 )
SELECT [query ricarico].*, ([vendita tosi]+[vendita italmatic]+[vendita schrader]+[vendita bellino]+[vendita wonder])/[Count] AS Media, [query ricarico].codcat AS Espr1
FROM [query ricarico] INNER JOIN Conta ON [query ricarico].[Codice omicron] = Conta.[Codice omicron];

E' possibile far uscire nel report al posto di codcat ..... categoria? Credo di si ma non so come fare, entrambi risiedono in categoria query, ho provato a ricopiare modificando i campi ma niente, niente, niente.

Aggiungo: lancio la macro e mi da errore se fai una prova ti renderai conto di che tipo di errore si tratta

SSUPERPIPPO Profilo | Guru

Scusa se ti rispondo solo ora ma oggi sono stato impegnato tutto il giorno per lavoro.

Ti allego il database ricorretto... mi ero dimenticato di includere il campo categoria, cosa più importante... scusa.

Ho sistemato tutto ma non capisco che errore ti dia la macro, da me funziona perfettamente (avvia la query di eliminazione, poi la query di accodamento dei dati e infine il report)

Prova e fammi sapere

Ciao

Alessandro


http://blogs.dotnethell.it/alebadalin

albyss Profilo | Newbie

Ciao e ancora grazie per la disponibilità.
Ora ti spiego che succede:

vado in macro e lancio la macro Stampa;
1° maschera:
La query di eliminazione che sta per essere eseguita modificherà i dati in tabella. Eseguire .....?
invio;
2° maschera:
Numero di righe che verranno eliminate ................. Eliminare i record selezionati?
invio;
3° maschera:
La query di accomodamento che sta per essere eseguita modificherà i dati in tabella. Eseguire .....?
invio;
Query in esecuzione.............
4° maschera:
numero di righe che verranno accodate........... accodare le righe selezionate?
invio;
5° maschera: VALORE NON VALIDO PER L' ESPRESSIONE NELL' ARGOMENTO 2.
Si è cercato di eseguire una macro o è stato utilizzato l'oggetto DoCmd in Visual basic. Il numero dell' argomento corrisponde alla posizione dell' argomento come viene utilizzato nella finestra della macro, nella finestra di dialogo di azione non riuscita o nel Visualizzatore oggetti (se si stà utilizzando l'oggetto DoCmd).
Soluzioni:
Selezionare un'impostazione dall' elenco a discesa di ciascun argomento
Utilizzare una costante intrinseca corrispondente ad un tipo di oggetto valido
Sostituire l'espressione con quella corretta.
invio;

alla fine appare questa maschera che dice:
Azione non riuscita
nome macro: stampa
condizione : vero
nome azione: ApriReport
argomenti:
Prova;;;;Normale

Questo è quanto succede sul mio PC avviando la macro dal DB1 da te modificato.
Misteri di Access;

SSUPERPIPPO Profilo | Guru

Certo che è un bel mistero... da me funziona benissimo!

Io utilizzo Access 2007. Che versione di Access utilizzi?
Hai provato ad eseguire a mano le query nella seguente seguenza:

- Esegui la query di eliminazione
- Esegui la query di accodamento
- Avvii il Report

A questo punto segnalami in che step si verifica l'errore così vedo di capirci qualcosa...

Ciao

Alessandro

http://blogs.dotnethell.it/alebadalin

albyss Profilo | Newbie

>Certo che è un bel mistero... da me funziona benissimo!
>
>Io utilizzo Access 2007. Che versione di Access utilizzi?
>Hai provato ad eseguire a mano le query nella seguente seguenza:
>
>- Esegui la query di eliminazione
>- Esegui la query di accodamento
>- Avvii il Report
>
>A questo punto segnalami in che step si verifica l'errore così
>vedo di capirci qualcosa...
>
>Ciao
>
>Alessandro
>
>http://blogs.dotnethell.it/alebadalin

Utilizzo Access 2003
Il bello e che eseguendo passo passo le query (prima svuota report, poi query finale, poi avvio il report) tutto gira, o perlomeno genera il report.

Lanciando la macro l' errore lo da nel secondo passaggio (credo sulla query finale) quando nell' accomodamento accoda le righe. A quel punto da la segnalazione di"valore non valido per l' espressione nell' argomento 2"

In più ho verificato che nel tuo nuovo Db La query ricarico è ritornata come era prima della modifica che mi avevi fatto fare, e cioè i vari valori di vendita me li avevi fatti modificare così:

vendita tosi: IIf(IsNumeric([prezzo tosi]*[sconto tosi]*[ricarico]+[prezzo tosi]*[sconto tosi]);[prezzo tosi]*[sconto tosi]*[ricarico]+[prezzo tosi]*[sconto tosi];0)
così come gli altri
Il problema si pone che utilizzando la query ricarico così modificata (necessaria per la media, altrimenti non conta i campi senza valore) non funziona più la query di accomodamento;

SSUPERPIPPO Profilo | Guru

Mi metto con un pò di calma questa sera... poi ti faccio sapere.
Per quanto riguarda la macro che da te non funziona proverò su un'altro computer con Access 2003 per vedere cosa succede.

Intanto ti saluto

Ciao

Alessandro

http://blogs.dotnethell.it/alebadalin

albyss Profilo | Newbie

Allora ecco le nuove:
Ho risolto un pò di cose e altre no.

1- la macro continua a dar problemi
2- con la sequenza manuale funziona anche se la query di accomodamento da problemi su campi dove tutti i 5 prezzi sono a zero (ho caricato solo le voci ma non i prezzi per cui riempie la tabella del report con errore ma poi la stampa ha giustamente i campi vuoti)
3- Ho rimodificato la query ricarico come mi avevi detto tu e adesso girano anche i campi a zero
4- ho creato (alcune le avevo già fatte) le maschere di inserimento con cui poi interagire con la maschera prodotti che va a compilare la relativa tabella.
5- Stò iniziando a vedere un pò di report che mi possono essere utili.

A proposito, nel report che vorrei fare, vorrei far saltare ad una nuova pagina la stampa ad ogni cambio di categoria (naturalmente la stampa è ordinata per categoria).
Ero riuscito a farlo tempo fa (con il DB più semplice) ora non ricordo più come feci. Che scarso che sono!!
Non preoccuparti, quando avrai tempo da dedicarmi, ogni tuo suggerimento (chiamiamolo così) sara sempre BEN ACCETTO!!
Ciao Alberto

SSUPERPIPPO Profilo | Guru

Ciao Alberto

>Allora ecco le nuove:
>Ho risolto un pò di cose

Bravo

> e altre no.

... Vediamo

>1- la macro continua a dar problemi

E qui non capisco perchè da me funzioni sia con Access 2007 che con Access 2003 (Mistero.!?!?)

>2- con la sequenza manuale funziona anche se la query di accomodamento da problemi su campi dove tutti i 5 prezzi sono a zero
>(ho caricato solo le voci ma non i prezzi per cui riempie la tabella del report con errore ma poi la stampa ha giustamente i campi
>vuoti)

Se non vuoi che consideri i campi vuoti basta che inserisci nella query finale, una clausola where di questo tipo:

WHERE (((Conta.Count)>0));

Verranno esclusi tutti i recond che non hanno alcun prezzo

>3- Ho rimodificato la query ricarico come mi avevi detto tu e adesso girano anche i campi a zero
>4- ho creato (alcune le avevo già fatte) le maschere di inserimento con cui poi interagire con la maschera prodotti che va a >compilare la relativa tabella.
>5- Stò iniziando a vedere un pò di report che mi possono essere utili.

Molto bene...

>A proposito, nel report che vorrei fare, vorrei far saltare ad una nuova pagina la stampa ad ogni cambio di categoria (naturalmente >la stampa è ordinata per categoria).
>Ero riuscito a farlo tempo fa (con il DB più semplice) ora non ricordo più come feci.

Devi inserire nel report un GRUPPO e selezionare come criterio di ragruppamento il campo 'Categoria'

>Che scarso che sono!!

Non si nasce maestri, lo si diventa...

>Non preoccuparti, quando avrai tempo da dedicarmi, ogni tuo suggerimento (chiamiamolo così) sara sempre BEN ACCETTO!!
>Ciao Alberto

Ciao, alla prossima

Alessandro


http://blogs.dotnethell.it/alebadalin

albyss Profilo | Newbie

sempre grazie e ancora grazie.
Dove inserire?
WHERE (((Conta.Count)>0));
nella query finale
INSERT INTO Report ( Media )
SELECT [query ricarico].*, ([vendita tosi]+[vendita italmatic]+[vendita schrader]+[vendita bellino]+[vendita wonder])/[Count] AS Media
FROM [query ricarico] INNER JOIN Conta ON [query ricarico].[Codice omicron]=Conta.[Codice omicron];

Ho provato ad accodare alla fine ma da errore.
Forse sbaglio qualche punteggiatura.
Sul report ho risolto .

Ti saluto

Alberto

SSUPERPIPPO Profilo | Guru

>sempre grazie e ancora grazie.

sempre di nulla...

>Dove inserire?
>WHERE (((Conta.Count)>0));
>nella query finale
>INSERT INTO Report ( Media )
>SELECT [query ricarico].*, ([vendita tosi]+[vendita italmatic]+[vendita schrader]+[vendita bellino]+[vendita wonder])/[Count] AS >Media
>FROM [query ricarico] INNER JOIN Conta ON [query ricarico].[Codice omicron]=Conta.[Codice omicron];

>Ho provato ad accodare alla fine ma da errore.

>Forse sbaglio qualche punteggiatura.

L'istruzione và effettivamente accodata a quella esistente ma devi togliere il punto e virgola perchè quest'ultimo chiude sempre l'istruzione SQL. Comunque questa è l'struzione corretta:

INSERT INTO Report ( Media )
SELECT [query ricarico].*, ([vendita tosi]+[vendita italmatic]+[vendita schrader]+[vendita bellino]+[vendita wonder])/[Count] AS Media
FROM [query ricarico] INNER JOIN Conta ON [query ricarico].[Codice omicron]=Conta.[Codice omicron]
WHERE (((Conta.Count)>0));

>Sul report ho risolto .

Benissimo

>Ti saluto
>Alberto

Ciao



http://blogs.dotnethell.it/alebadalin
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5