Grafiek programmeren in Access VBA

Status
Niet open voor verdere reacties.

reneemettrie

Terugkerende gebruiker
Lid geworden
1 aug 2006
Berichten
1.233
Nav een vraag van iemand:
Op een formulier staat een grafiek. Hij wenst de breedte van de grafiek te kennen (dat is niet moeilijk) maar ook de breedte van de plot area.
(in functie daarvan moeten een aantal knoppen op een bepaalde positie worden gezet)
Ik heb het volgende geprobeerd en het werkt, maar vind het niet elegant:

Code:
Private Sub Commande3_Click()

Dim ChartGraph As Object
Set ChartGraph = Me.OLEUnbound0
MsgBox ChartGraph.PlotArea.Width
MsgBox ChartGraph.ChartArea.Width
MsgBox ChartGraph.Left
End Sub

Kan je het als iets anders dan een object definiëren, zodat het lijstje met eigenschappen wordt getoond?
Ik heb geprobeerd de bibliotheek van MS Graph toe te voegen en het te deifiniëren als chart, maar dan krijg ik een type mismatch, wellicht omdat het gezien wordt als een element van het access formulier?
 
Heb je de Microsoft Graph bibliotheek wel geladen?
 
Ja! Dat was mijn eerste gedacht.
Heb eerst geschreven dim as chart (en chart stond dus in de lijst)
 
En je weet dat je de chart in een object hebt staan? En dat je dus moet verwijzen naar een Chart in een object? Nu verwijs je rechtstreeks naar de chart.
 
En je weet dat je de chart in een object hebt staan? En dat je dus moet verwijzen naar een Chart in een object? Nu verwijs je rechtstreeks naar de chart.

Neen, dat weet ik niet. Hoe gaat dat? ?NaamObject.Chart? (kan het momenteel niet uittesten)
 
Dan krijg je zoiets:

Code:
Dim chrt As Chart
     Set chrt = Me.Graph7.Object.Application.Chart
 
En toch is het simpel: Access werkt met objecten. Een formulier is een object, een subformulier kan echter nooit in een ander formulier staan. Daarom staat een subformulier in een container. Die container (object) heeft andere eigenschappen als een formulier, dus als je een subformulier met VBA wilt aanspreken, moet je eerst het object pakken waar dat subformulier in staat. Hetzelfde geldt voor een grafiek: kan niet zelfstandig, maar staat in een object. Dus éérst het object aanspreken, dan het chart object. Is niet vreemd dat je het niet gelijk begreep, dat heeft mij ook een paar jaar (van mijn leven...) gekost :).
 
En toch is het simpel: Access werkt met objecten. Een formulier is een object, een subformulier kan echter nooit in een ander formulier staan. Daarom staat een subformulier in een container. Die container (object) heeft andere eigenschappen als een formulier, dus als je een subformulier met VBA wilt aanspreken, moet je eerst het object pakken waar dat subformulier in staat. Hetzelfde geldt voor een grafiek: kan niet zelfstandig, maar staat in een object. Dus éérst het object aanspreken, dan het chart object. Is niet vreemd dat je het niet gelijk begreep, dat heeft mij ook een paar jaar (van mijn leven...) gekost :).

Dus als ik lang wil leven zal ik er maar niet teveel meer over nadenken...
 
En leer jezelf, als je toch lang wil leven, gelijk het nodeloos gebruik van de QUOTE knop af :).
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan