Newsgroup: it.comp.appl.access
Titolo: Filtro per Gafico

Come poter filtrare ,in un Grafico (report), in base ad una data nel formato
 Anno: (Year([Data])) , in una casella di riepilogo,dove
 nella lista sono elencati  nello stesso formato gli anni ess.
 2001
 2002
 2003
 quindi in una selezione multipla il Grafico dovrebbe restituirmi
 i documenti in base a selezione
Ciao Rino

 Ciao Rino
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


Un piccolo esempio.
Ciao  Rino

 ha scritto nel messaggio
news:B4GXc.200397$5D1.9...@news4.tin.it...

Perché l'esempio sia più pertinente prova postare il codice SQL della query
che è origine riga del grafico.


 Roberto
Il codice SQL e il seguente:
SELECT (Format([DataFattura],"mmmm"" '""yyyy")) AS Data,
Sum([qryDettagliVenditeFatture&Banco].TotaleVendita) AS
SommaDiTotaleVendita, (Year([DataFattura])) AS Anno, (Month([DataFattura]))
AS Mese, (UCase(Format([DataFattura],"mmmm"))) AS NomeMese
FROM [qryDettagliVenditeFatture&Banco]
GROUP BY (Format([DataFattura],"mmmm"" '""yyyy")), (Year([DataFattura])),
(Month([DataFattura])), (UCase(Format([DataFattura],"mmmm")))
ORDER BY (Year([DataFattura])), (Month([DataFattura]));
Ciao,Rino

 ha scritto nel messaggio
news:_5IXc.157855$OR2.7...@news3.tin.it...

In un modulo del tuo database dichiarati una variabile pubblica di tipo
stringa chiamata MiaQuery.
Nella maschera che contiene la casella di riepilogo, a fronte dell'evento
"Su clic" di un pulsante di comando prova generare il seguente codice VBA:
On Error GoTo Err1
    Dim Err1 As Long
    Dim strLista As String
    Dim strCriteri As String
    Dim varItem As Variant
    If Me!ElencoAnno.ItemsSelected.Count = 0 Then Exit Sub
    For Each varItem In Me!ElencoAnno.ItemsSelected
        strLista = strLista & Me!ElencoAnno.Column(0, varItem) & ","
    Next varItem
    strLista = Left$(strLista, Len(strLista) - 1)
    strCriteri = "[Anno] In (" & strLista & ")"
    MiaQuery = "SELECT (Format([DataFattura],"mmmm"" '""yyyy")) AS Data, " &
_
    "Sum([qryDettagliVenditeFatture&Banco].TotaleVendita) AS " & _
    "SommaDiTotaleVendita, (Year([DataFattura])) AS Anno, " & _
    "(Month([DataFattura])) AS Mese, (UCase(Format([DataFattura],"mmmm"))) "
& _
    "AS NomeMese " & _
    "WHERE " & strCriteri & _
    " FROM [qryDettagliVenditeFatture&Banco] " & _
    "GROUP BY (Format([DataFattura],"mmmm"" '""yyyy")), " & _
    "(Year([DataFattura])), (Month([DataFattura])), " & _
    "(UCase(Format([DataFattura],"mmmm"))) " & _
    "ORDER BY (Year([DataFattura])), (Month([DataFattura]));"
     Dim stDocName As String
    stDocName = "Report1"
    DoCmd.OpenReport stDocName, acPreview, , strCriteri
    Dim Cont As Integer
    For Cont = 0 To Me!ElencoAnno.ListCount - 1
        Me!ElencoAnno.Selected(Cont) = False
    Next Cont
Err1:
If Err1 = 2501 Then
    Exit Sub
        End If
A questo punto, a fronte dell'evento "Su apertura" del report Report1, se
detto grafico si chiama MioGrafico, prova a generare il seguente codice VBA:
Me.MioGrafico.RowSource = MiaQuery
Me.MioGrafico.Requery
Non l'ho provato, ma, se non ho commesso qualche errore di sintassi,
dovrebbe funzionare.


 ha scritto nel messaggio
news:DwYXc.61499$1V3.1...@twister2.libero.it...

Sulla apertura del report mi genera il seguente errore:
Riferimento non valido alla proprietà RowSource nell'espressione.

 ha scritto nel messaggio
news:Gd%Xc.205407$5D1.9...@news4.tin.it...

Che strano.
Prova ad inserire il codice VBA a fronte dell'evento "Su formattazione"
della sezione del report che contiene il grafico.



Errore
Proprietà o metodi non supportati dall'oggetto
Rino

 ha scritto nel messaggio
news:HW0Yc.162108$OR2.7...@news3.tin.it...

Sembrerebbe che l'origine riga del grafico può essere modificato solo
aprendo il report nella modalità struttura.
Prova così:


    DoCmd.OpenReport stDocName , acViewDesign
    Reports!Report1!MioGrafico.RowSource = MiaQuery
    DoCmd.Close acReport, "Report1", acSaveYes
    DoCmd.OpenReport stDocName, acPreview, , strCriteri
    Dim Cont As Integer
    For Cont = 0 To Me!ElencoAnno.ListCount - 1
        Me!ElencoAnno.Selected(Cont) = False
    Next Cont
Err1:
If Err1 = 2501 Then
    Exit Sub
        End If
e nel report Report1 non eseguire alcun codice VBA; ho provato e così a me
lascia impostare il codice SQL della query origine riga del grafico.
Facci sapere.



Funziona, ma non filtra i dati in base ai parametri passati ,mi da "tutto".
Il fatto che apra il report in struttura, potrebbe influire negativamente
poi dopo in esecuzione runtime?
Ciao, Rino

 Ciao, Rino



Puoi mandarmi il tuo db adoperato per l'esempio!
rinof...@virgilio.it
Grazie,Rino

RISOLTO !!!!
Collegando i campi -master e secondari -tra Report e Grafico,
cosa che avevo gia fatto,senza esiti positivi, ma il problema era il
 formato della data"Anno" ricavata da
Anno:(Year(DataFattura))
non viene letta dal Grafico e quindi ricavandomi
diretta nella Query Unione, tale formato viene letto come un campo
standard e non ricavato.
Grazzie a tutti per il tempo dedicatomi
Ciao Robby
Alla prossima
Rino

 ha scritto nel messaggio
news:LoiYc.164972$OR2.7...@news3.tin.it...

OK te lo ho inviato al tuo indirizzo e-mail.
