Discussione:
Grafico Access
(troppo vecchio per rispondere)
a***@yahoo.it
2008-02-13 11:30:45 UTC
Permalink
Buongiorno a tutti.
Chiedo scusa per il doppione ma per sbaglio ho premuto il tasto "posta
messaggio"
Ho un grafico del quale devo impostare i valori min e max dell'asse Y
tramite codice VBA.

Il frammento di codice interessato è:
Dim objGrafico As Object

Dim ValoreMin As Long
Dim ValoreMax As Long

ValoreMin = DMin("TotEmessi", "QueryEticOw1")
ValoreMax = DMax("TotEmessi", "QueryEticOw1")

-> Set objGrafico = Me.grafico.Object
objGrafico.Axes(2).MinimumScale = ValoreMin
objGrafico.Axes(2).MaximumScale = ValoreMax
Set objGrafico = Nothing

Quando l'esecuzione arriva alla riga dov' e' la freccia (Set
objGrafico = Me.grafico.Object) esce l'errore:

Errore di run-tim '2771'
La cornice di oggetto associato o non associato che si e' cercato di
modificare non contiene un oggetto OLE.

Qualcuno mi saprebbe spiegare cosa significa?
Grazie per la vostra attenzione.
Ciao !!!
lucio
2008-02-14 07:31:02 UTC
Permalink
Ciao.
Io l'ho risolta diversamente.
Post by a***@yahoo.it
-> Set objGrafico = Me.grafico.Object
objGrafico.Axes(2).MinimumScale = ValoreMin
ho fatto così:

With Me.Grafico4.Axes(2)
.minimumscale = valoremin

ecc
ecc
ecc
end with

ciao
Post by a***@yahoo.it
Buongiorno a tutti.
Chiedo scusa per il doppione ma per sbaglio ho premuto il tasto "posta
messaggio"
Ho un grafico del quale devo impostare i valori min e max dell'asse Y
tramite codice VBA.
Dim objGrafico As Object
Dim ValoreMin As Long
Dim ValoreMax As Long
ValoreMin = DMin("TotEmessi", "QueryEticOw1")
ValoreMax = DMax("TotEmessi", "QueryEticOw1")
-> Set objGrafico = Me.grafico.Object
objGrafico.Axes(2).MinimumScale = ValoreMin
objGrafico.Axes(2).MaximumScale = ValoreMax
Set objGrafico = Nothing
Quando l'esecuzione arriva alla riga dov' e' la freccia (Set
Errore di run-tim '2771'
La cornice di oggetto associato o non associato che si e' cercato di
modificare non contiene un oggetto OLE.
Qualcuno mi saprebbe spiegare cosa significa?
Grazie per la vostra attenzione.
Ciao !!!
a***@yahoo.it
2008-02-15 08:32:22 UTC
Permalink
Ciao grazie per la tua risposta.

Ma la tua soluzione con me non funziona (Access 2000), mi esce il
seguente allarme:

Errore di run-time '438':
Propietà o metodo non supportati dall'oggetto

e l'esecuzione del codice si ferma alla riga:

With Me.grafico.Axes(2)

Io lavoro a casa con Access 2000 (su Windows 98se) ed a lavoro con
Access 2003 (su Windows 2000). In più lavoro su di un portatile con
Access 2007 (su Vista). Su ogni sistema il codice si comporta in
maniera differente. Il database e' in formato Access 2000 quindi con
le versione 2003 ed 2007 non "dovrei" avere problemi se queste due
ultime versioni conservano la retrocompatibilità!

Spero possa aiutarmi nuovamente....
Grazie, Ciao
Post by lucio
Ciao.
Io l'ho risolta diversamente.
Post by a***@yahoo.it
-> Set objGrafico = Me.grafico.Object
    objGrafico.Axes(2).MinimumScale = ValoreMin
With Me.Grafico4.Axes(2)
        .minimumscale = valoremin
ecc
ecc
ecc
end with
ciao
lucio
2008-02-15 09:25:00 UTC
Permalink
Ho testato con Access 2000 e funziona...

Sei sicuro che l'oggetto "grafico" sia realmente il grafico e non, ad
esempio, il nome del report, un campo ecc. ecc.?
ciao
Post by a***@yahoo.it
Ciao grazie per la tua risposta.
Ma la tua soluzione con me non funziona (Access 2000), mi esce il
Propietà o metodo non supportati dall'oggetto
With Me.grafico.Axes(2)
Io lavoro a casa con Access 2000 (su Windows 98se) ed a lavoro con
Access 2003 (su Windows 2000). In più lavoro su di un portatile con
Access 2007 (su Vista). Su ogni sistema il codice si comporta in
maniera differente. Il database e' in formato Access 2000 quindi con
le versione 2003 ed 2007 non "dovrei" avere problemi se queste due
ultime versioni conservano la retrocompatibilità!
Spero possa aiutarmi nuovamente....
Grazie, Ciao
Post by lucio
Ciao.
Io l'ho risolta diversamente.
Post by a***@yahoo.it
-> Set objGrafico = Me.grafico.Object
objGrafico.Axes(2).MinimumScale = ValoreMin
With Me.Grafico4.Axes(2)
.minimumscale = valoremin
ecc
ecc
ecc
end with
ciao
a***@yahoo.it
2008-02-16 16:47:21 UTC
Permalink
Ciao lucio....

Effettivamente mi da' : Cornice oggetto non associato: grafico

Non so' cosa possa significare! Sai e' da poco che mi sono avvicinato
in maniera più approfondita al pacchetto Office.

Ciao, Grazie....
Post by lucio
Ho testato con Access 2000 e funziona...
Sei sicuro che l'oggetto "grafico" sia realmente il grafico e non, ad
esempio, il nome del report, un campo ecc. ecc.?
ciao
a***@yahoo.it
2008-02-16 20:20:30 UTC
Permalink
Vorrei precisare che il grafico è un report e non un grafico nella
maschera! La maschera la uso solo come selezione per le opzioni. In
base alle opzioni scelte lui mi elabora determinate tabelle e mi
rigenera il report sottoforma di grafico!
Forse se il grafico appartenesse alla maschera le cose
funzionerebbero.

Ho un altro problema che è molto più importante: sempre nella stessa
maschera ho due controlli combobox. Sul primo ho attivato l'evento
"after_update" il quale mi esegue una routine in VBA che mi va ad
impostare la proprieta' RowSource della seconda per modificare i
dati da mostrare a seconda del valore scelto dal primo controllo. Con
access 2000 funziona, con access 2003 sul secondo controllo non esce
nulla qualunque sia il valore del primo! Ma access 2003 non dovrebbe
essere retrocompatibile?

Grazie !!!!
Ciao
lucio
2008-02-18 07:17:01 UTC
Permalink
Post by a***@yahoo.it
Vorrei precisare che il grafico è un report e non un grafico nella
maschera! La maschera la uso solo come selezione per le opzioni. In
base alle opzioni scelte lui mi elabora determinate tabelle e mi
rigenera il report sottoforma di grafico!
Forse se il grafico appartenesse alla maschera le cose
funzionerebbero.
L'oggetto per il quale devi modificare la proprietà Minimumscale non è il
report, ma l'oggetto "grafico" che hai inserito all'interno del report. Apri
il report in struttura e clicca con il destro sul grafico e quindi proprietà.
Nel "Nome" troverai il nome dell'oggetto che rappresenta il grafico. Questo
è il nome che devi utilizzare per motificare la proprietà minimumscale....
L'importante è che il codice
me.grafico.axes(2)
sia scritto in un evento che faccia parte dell'oggetto (report) che contiene
l'oggetto grafico. Mi spiego meglio: nel tuo caso il codice che abbiamo
discusso deve essere eseguito, ad esempio, nell'evento SuFormattazione del
report.
Dalla Form non puoi modificare le proprietà del grafico che, se il report è
aperto, è già stato generato.
Idem: non puoi, sempre dalla form, modificare le proprietà del grafico se il
report è chiuso: l'oggetto non esiste ancora....
Post by a***@yahoo.it
Ho un altro problema che è molto più importante: sempre nella stessa
maschera ho due controlli combobox. Sul primo ho attivato l'evento
"after_update" il quale mi esegue una routine in VBA che mi va ad
impostare la proprieta' RowSource della seconda per modificare i
dati da mostrare a seconda del valore scelto dal primo controllo. Con
access 2000 funziona, con access 2003 sul secondo controllo non esce
nulla qualunque sia il valore del primo! Ma access 2003 non dovrebbe
essere retrocompatibile?
assolutamente si, prova ad effettuare un requery dopo aver modificato la
proprietà rowsource:
me.combo2.rowsource="select......"
doevents
me.combo2.requery
doevents

ciao
Post by a***@yahoo.it
Ho un altro problema che è molto più importante: sempre nella stessa
maschera ho due controlli combobox. Sul primo ho attivato l'evento
"after_update" il quale mi esegue una routine in VBA che mi va ad
impostare la proprieta' RowSource della seconda per modificare i
dati da mostrare a seconda del valore scelto dal primo controllo. Con
access 2000 funziona, con access 2003 sul secondo controllo non esce
nulla qualunque sia il valore del primo! Ma access 2003 non dovrebbe
essere retrocompatibile?
Grazie !!!!
Ciao
a***@yahoo.it
2008-02-19 17:33:47 UTC
Permalink
Ciao Lucio.
Per quanto riguardala gerarchia delle ComboBox, ho risolto come hai
detto tu lanciando una requery!

Per quanto riguarda il minimo ed il massimo del grafico, ho inserito
il codice nell'evento Open del report ma mi da sempre lo stesso
errore:

Errore di run_time '438'

Proprietà o metodo non supportati dall'oggetto

Il codice in oggetto è:

ValoreMin = DMin("TotEmessi", "QueryEticOw1") ', "NrGrafico=" & Me!
NrGrafico) * 1
ValoreMax = DMax("TotEmessi", "QueryEticOw1") ', "NrGrafico=" & Me!
NrGrafico) * 1 + 2

-> With Report!grafico.Axes(2)
.MinimumScale = ValoreMin
.MaximumScale = ValoreMax
End With

In corrispondenza della freccia si ferma l'elaborazione del codice.

Indipendentemente da tutto ciò si verifica una cosa strana: nel db ho
8 report uguali tra di loro, l'unica cosa che cambia è la query che
sta nella proprietà "origine dei record". Su questi 8 report due
adattano in automatico (senza alcun codice VBA) il minimo ed il max
dell'asse Y. Gli altri hanno l'origine che parte sempre da zero.
Eppure i report sono simili. Hanno tutti le caratteristiche dell'asse
Y con gli stessi settaggi! Non riesco a spiegarmi tale comportamento.

Sempre grazie per la tua attenzione!!!
Ciao

Loading...