Newsgroup: it.comp.appl.access
Titolo: Oggetti GRAPH a runtime

Carissimi, 
bentrovati tutti... è da "uffissimo" tempo che non vi leggo, e non frequento il nostro amato accrocco di usenet... anche se un bel "FORZA NAPOLI" è 1 base... ;)
 
Spero stiate bene, e che non si sia perso lo spirito "aiutereccio" dell'NG...
Il problema che vi sottopongo non è dei più semplici (diciamo tutt'altro). Per farla breve...
 
E' possibile secondo voi (uso di Api windows comprese eventualmente) creare a Runtime oggetti MSGraph (grafici) in FORMS (non in reports) passandogli dinamicamente da VBA formattazione e Rowsource (un pò come faceva Alex con le progressbar per capirci)?
 
Io non ho trovato a supporto info utili... ma magari qualcuno di voi ha affrontato prima di me il problema e lo ha risolto (fosse anche rinunciandovi).
 
PS. Access2003 la versione.
 
Pablitomf

Perchè sei tu... e meriti questo ed altro...
Ciao ragazzo.
 
I grafici sono gestibili ONTHEFLY... con il VBA ma l'oggetto MsChart deve essere già presente in una form...!
Per questo, puoi creare una Form contenente l'oggetto, ed usarla come SUBFORM...
la strutturi in modo da poter essere configurata come Origine e come tipo di dati...
Se gestisci nella FORM Property/Eeventi/Metodi come una classe puoi poi agevolmente semplificare la gestione come più ti aggrada...
 
Vedi se questo può essere una base di partenza...
http://www.accessgroup.it/general/grafici-con-excel-e-msgraphs.html
 
 
Questo è per i report... è carino... ma non ti interessa...
http://www.accessgroup.it/reports/grafici-nei-report-senza-msgraph.html
 
 
Non sono a conoscenza di possibilità di WRAPPARE la Libreria MsGraph via API.
 
@Alex


We carissimo... :) la "brodaglia", tutto ok? o sei ancora in quel di Salvinix? :)
 
Cmq Ale, la tua risposta mi era chiara... già gestisco i grafici esistenti, agendo sulle loro proprietà da codice... ma siccome non so "quanti" oggetti grafici devo usare mi scoccia crearne, tipo 10, e poi dover agire sul form in struttura per inserirne l'11esimo... vorrei anche non dover uscire dal Form e avere tutto li' (tipo appoggiarsi su Excell come da esempio... ci avevo gia' pensato ma "NOMMIPIACE" :D)...
 
Facciamo che non si puo' fare va', e aggiriamo l'ostacolo cercando di limare una problematica legata agli "n" oggetti Graph esistenti nel form (al momento tipo 23). 
 
Ogni oggetto graph neccessita obbligatoriamente (altrimenti va in errore) di un Rowsource di partenza (per quanto scarno sia... 2 campi, 1 recod), che ad apertura form prende il suo tempo per formattare l'oggetto stesso.
Se tale tempo lo moltiplichi per gli "n" oggetti, la cosa diventa scocciante.
 
E' possibile secondo te "EVITARE IL CARICAMENTO INIZIALE" (che mi fa perdere tempo), e passargli direttamente il source nuovo da vba (che mi fa perdere lo stesso tempo, ma almeno una volta sola)?


Mi spiego meglio:
RIGENERA mi crea da vba il rowsource dinamico per i 22 grafici...(impiega il tempo di formattazione dei grafici singolarmente)
RIGENERA2 mi permette, a formattazione avvenuta di visualizzarli a video (cosa che diversamente non avviene)
 
tutto cio' e' anticipato dal tempo impiegato dagli stessi 22 grafici per caricare i dati fittizi di partenza...
 
Private Sub Rigenera()
 
    Dim xxx         As String
    xxx = ""
 
    Dim db          As Database
    Dim rs          As Recordset
 
    Set db = CurrentDb
    Set rs = db.OpenRecordset("SELECT FILIALE FROM Grafici_Base_FattFil GROUP BY FILIALE ORDER BY FILIALE;")
 
        With rs
            While rs.EOF = False
                If xxx = "" Then
                    xxx = !FILIALE
                Else
                    xxx = xxx & "|" & !FILIALE
                End If
                .MoveNext
            Wend
        End With
 
    Set rs = Nothing
    Set db = Nothing
 
    Dim varCHILD    As Variant
    Dim i           As Integer
 
 
    varCHILD = Split(xxx, "|")
 
    For i = 1 To UBound(varCHILD)
        Dim strSQL As String
        strSQL = "MioSQL WHERE MioCampo='" & varCHILD(i) & "') ecc..."        
        Me.Controls("Gra" & i).RowSource = strSQL
        Me.Controls("LBL" & i).Caption = varCHILD(i)
    Next i
 
    DoEvents
 
End Sub
 
 
Private Sub Rigenera2()
    Dim i           As Integer
 
    For i = 1 To 22
        Dim objGraph As Object
        Set objGraph = Me.Controls("Gra" & i).Object
        objGraph.Refresh
        objGraph.Application.Update
        DoEvents
        Set objGraph = Nothing
    Next i
 
End Sub

Un RowSource che non rompe le scatole è questo:
 
    SELECT * FROM T1 WHERE 1=0
 
Diciamo che potresti creare una sola FORM con un MSGRAPH ed aprirla in MULTIISTANZA... se ho ben compreso... ma forse mi sto perdendo, sono fuori allenamento.
 
Purtroppo, e ribadisco PURTROPPO, sono rientrato a Settembre da quel di SALVINIX... e CIDIX... e francamente sarei pure rimasto qualche anno in più con le dovute premesse... ;-)
 
Vediamo se quest'anno potrò andare in ferie, sarà certamente la meta scelta...
 
Ciao
@Alex

 ha scritto nel messaggio 
news:c62cd7b7-724b-410c...@googlegroups.com...

campa cavallo... :-D
Buona Pasqua a tutti
 
Daniele
 
 

 Daniele
 
Buona Pasqua
 
@Alex