Grafieken in ACCESS

Status
Niet open voor verdere reacties.

RadboudAKF

Gebruiker
Lid geworden
3 nov 2010
Berichten
219
Goedemorgen,

Ik heb een vraag over het gebruik van grafieken in ACCESS.

De database gaat over het beheer van ruimtes binnen een afdeling van ons ziekenhuis.

Ik heb een query gemaakt (waarin gebruikers via een dialoogvenstertje wat vragen moeten beantwoorden over een "start-datum" en "ruimte"). Gebaseerd op die query maakte ik een grafiek-formulier die vervolgens in een rapport werd gestopt. Dat werkt op zich goed ...

Nu wil ik echter niet slechts de grafiek, maar ook het gegevensblad laten zien in het rapport. (dus eigenlijk wordt de query dan 2x uitgevoerd(?)).

Hoe regel ik dat de query slechts 1x wordt uitgevoerd en het gegevensblad is gebaseerd op de vragen die ook al voor het formulier zijn beantwoord?

Ik hoop dat de vraag begrepen wordt. Ik ben voor het eerst met grafieken bezig in ACCESS (en da's toch een hele andere tak van sport merk ik)

Groet,

Jan
 
Je geeft zelf al aan wat het probleem is:
Ik heb een query gemaakt (waarin gebruikers via een dialoogvenstertje wat vragen moeten beantwoorden over een "start-datum" en "ruimte").
Parameters kun je beter niet in de query zetten, maar in een startformulier. Dat formulier bevat dan de datumvelden etc. en gebruik je zowel in je grafiekformulier als in je rapport. Omdat het startformulier open is als je het rapport opent, krijg je nooit meer een vraag.
Nog beter (vind ik) is om grafiek(formulier en rapport) te baseren op een tijdelijke query waarvan je vanuit het startformulier de criteriagegevens verandert. Die worden dan vast als criterium in de tijdelijke query opgeslagen. Resultaat: grafieken blijven altijd werken op basis van de laatste selectie, ongeacht of het startformulier geopend is of niet. Verander je de parameters via het formulier, dan worden de nieuwe gegevens opgeslagen, en krijg je die voortaan te zien.
Jouw werkwijze is dus de (weliswaar werkende) maar slechtste variant ;)
 
Michel,

Denk voor je antwoord....maar ik ben bang dat ik dit niet begrijp.

Ik snap het begrip 'tijdelijke query' niet. Kun je misschien een voorbeeldje geven? Hoe zorg ik er voor dat de ''tijdelijke query" basis wordt voor mijn grafiek. Ook het startformulier gaat mijn kennis (kennelijk) te boven. Is dat te vergelijken met een schakelbord?

Ik zal een kleine extract meesturen van de tabel en formulier/Rapport waar het om gaat. Ik hoop dat je me met een klein voorbeeldje mij nog wat op weg kunt helpen.

Jan
 

Bijlagen

Een 'tijdelijke' query is in dit geval wel een vast opgeslagen query, maar één waarvan je de SQL code verandert met VBA. Hij kan dus steeds iets anders laten zien. Het formulier/rapport koppel je aan die query, zodat formulier/rapport en query vast verbonden zijn. Simpel voorbeeldje:
Een formulier 'frmProject' dat is gekoppeld aan de gegevensbron qProjecten.

Code:
Sub test()
Dim qTemp As QueryDef, tmp As QueryDef
Dim strTM As String, strPoject As String
    
    strTM = Me.PersoneelsID.Value
    strProject = Me.ProjectID.Value
    strSQL = "SELECT * FROM tToegestaan WHERE Personeelsnummer= '" & strTM & "' AND Project = '" & strProject & "' AND Blokkeren = TRUE"
    
    On Error GoTo GeenTemp
    Set qTemp = CurrentDb.QueryDefs("qProjecten")
    qTemp.SQL = strSQL
    DoCmd.OpenForm ("frmProjecten")
    
    Exit Sub
    
GeenTemp:
    On Error Resume Next
    With CurrentDb
        tmp = .CreateQueryDef("qProjecten", strSQL)
        Set qTemp = .QueryDefs("qProjecten")
    End With
Return

End Sub
De code bevat een kleine foutroutine die de query qProjecten aanmaakt als die niet bestaat (eerste keer gebruikt, per ongeluk verwijderd, je kent dat wel).
 
Laatst bewerkt:
Michel,

Ik ga kijken wat ik hier mee kan, en ga proberen dit te begrijpen.

(dat zal nog een kluif worden; heb wel ervaring met queries, rapporten, formulieren, maar nauwelijks met VBA en SQL) Ik probeer iedere week een stuk van uw pracht-cursus ACCESS te volgen. Uw 'simpel voorbeeldje' is voor mij niet heel simpel.

Maar ik vrees dat mij dit -voorlopig - nog boven de pet gaat !

In ieder geval bedankt. Kan ik hiervan ook voorbeelden vinden in de cursus? (ik ben nu bij hoofdstuk 7)

Jan
 
Ik dacht van wel; in de latere hoofdstukken wordt een rapport dynamisch gefilterd door een formulier. Daar gebruik ik een QueryDef bij. De materie is voor beginners inderdaad best lastig, en wellicht had ik het woord 'simpel' in dit geval beter weg kunnen laten :)
Ik bedoelde er in dit geval slechts mee dat er maar een paar regel code gebruikt wordt; meestal bestaat een procedure uit nogal wat regels code met lussen e.d. In die zin is het een simpel voorbeeld, want er worden een paar variabelen gedefinieerd (de DIM regels), en die worden vervolgens gevuld met waarden uit het formulier, en op basis daarvan wordt een query gemaakt (de SQL regel). Die query wordt vervolgens met het QueryDefs object ingesteld op de (al dan niet bestaande, zie de foutroutine) query qProjecten. Kortom: de hele procedure heeft een eenvoudige structuur.
Zou je hem zelf gaan gebruiken, dan moet je dus in ieder geval de naam van de query aanpassen, en de velden die je van het formulier haalt. En uiteraard de SQL voor de query die uiteindelijk achter het formulier komt te hangen. Wat ik zelf meestal doe, is eerst de query maken met handmatige criteria, en die dan kopieëren vanuit het SQL scherm. Dan heb je een goede basis om verder te verwerken in de VBA code.
 
Het duizelt mij nu een klein beetje moet ik heel eerlijk zeggen.....

Ik vrees dat ik mijn grafieken maar 'gewoon' in EXCEL ga definiëren. Ik maak een query die ik vervolgens exporteer als XLS en op basis daarvan maak ik dan in EXCEL steeds opnieuw de grafiek die ik wil. (op basis van het (steeds anders gefefinieerde xls-bestandje uit ACCESS). Daar kan ik wel heel makkelijk ook het gegevensblad tonen naast de grafiek. Wel jammer dat de grafiek dan steeds opnieuw (met een steeds wisselend datasetje) moet worden gedefinieerd. Je ziet, ook excel heeft voor mij flink wat geheimen.

Voordat ik het ACCESS-verhaal hierboven begrijp ben ik wel een tijdje verder.

Toch heel erg bedankt .... ik ga uw cursus met nog meer gretigheid volgen.

Jan
 
Ik maak een query die ik vervolgens exporteer als XLS en op basis daarvan maak ik dan in EXCEL steeds opnieuw de grafiek die ik wil.
Ook dat is veel te ingewikkeld gedacht; je kunt een query uit Access prima koppelen in Excel. Dan heb je dus één Excel bestand met die koppeling, die automatisch elke keer vernieuwd wordt. Als je dan Excel opent, heb je gelijk alle gegevens ververst. Is dus één keer aanmaken. Overigens geldt dat natuurlijk ook voor de grafiek optie in Access.

Zelf begin ik niet eens aan grafieken in Access, want dat is zoveel lastiger dan in Excel... Ik vermoed dat er een prijs is uitgeloofd voor degene die de moeilijkste grafiek module kon ontwerpen. Naar verluidt is de laatste Microsoft medewerker die voorstelde om de grafieken simpeler te maken een aantal jaar geleden met pek en veren van het Microsoft terrein af gemieterd, en durft sindsdien niemand er meer naar te kijken :)
Dus koppelen met Access, en bij voorkeur een dynamisch bereik definiëren voor je gegevens en die als basis gebruiken voor je grafiek. Ben je snel en goed klaar.
 
Ik dacht altijd dat EXCEL zoiets niet kon omdat je daar echt alle cellen moet definieren in een grafiek (althans dat begrijp ik van een gebruiker hier) Ik merk overigens dat een koppeling naar een query wel kan in Excel, maar dan mag er niet worden gevraagd naar criteria. Naar de query waar ik heb staan als voorbeeld (Like "*"& [geef gebruikersnaam of laat leeg] & "*") kan geen koppeling naar worden gemaakt helaas.

Pfff....ik moet nog veel leren. Voorlopig ben ik nog even ver als vanmorgen. Ik zou willen dat ik even 10 minuutjes met iemand kan 'sparren' die mij life even op het juiste pad zet...

Jan
 
Michel,

Sorry....ik zit nu op mijn eigen antwoord te reageren.

Ik probeerde zojuist in Excel te koppelen aan een ACCESS-querie.(Dan maar geen criteria...filteren doen we dan wel in EXCEL). Dit lukt uiteraard. Toen maakte ik een grafiek. Ook dat lukt. Bij de definitie van de grafiek moet je dan opgeven over hoeveel kolommen ("cellen" in EXCEL-termen) de gegevens zich uitstrekken. (Als ik de hele kolom pak dan krijg ik een merkwaardig grijs scherm en 'zeurt' EXCEL over 32000 records als max.

De vraag is: als ik de grafiek definieer, wordt er dan altijd 'ververst' ook als mijn aantal 'records' is veranderd?
 
Filteren kun je ook vanuit Excel, door de Query die je hebt gemaakt uit te breiden met parameters. Dan vraag Excel om de waarde, niet Access. Jew moet uiteraard niet de hele kolom gebruiken voor de grafiek, want dat zijn minstens 65000 rijen, waarvan er vermoedelijk 63000 leeg zijn. Dat levert, als dat al zou kunnen (je hebt al gezien dat dit niet kan) een lelijke grafiek op. Beter is het dus om na de import een dynamisch bereik te gebruiken op je grafiek. Hier kun je o.a. zien hoe dat moet. Weliswaar engels, maar het voorbeeldje vertaalt netjes qua formules naar Nederlands, dus dat laat zich wel interpreteren.
 
Michel,

Ik ga daar op studeren.

Beetje gefrustreerd was ik zojuist wel, moet ik zeggen. Als ik zorgde voor een andere uitkomst van mijn query in ACCESS dan zag ik niets 'dynamisch' aan de gegevens in EXCEL (waarmee ik een koppeling heb) .Ook nadat ik op de knoppen 'vernieuwen' klikte. Dit artikel gaat mij hopelijk helpen om te begrijpen hoe ik de gegevens op een juiste manier moet verversen, zodanig dat mijn grafiek 'mee-verandert'.

Maar goed....frustratie is een heel slechte raadgever; dus daar stop ik maar mee. Ik neem al jouw goede raad mee onder mijn arm....vier morgen een vrije dag...(ik word 60....sssssttt)...en ga in het weekend maar weer eens studeren. Het zou zo mooi zijn als ik hier op mijn werkplek een 'sparringpartner' zou hebben. Gelukkig heb ik dit forum...en jou....

Dank tot nu.
 
Ik ben ook van de generatie die Breznjev nog heeft horen bulderen, dus er is nog hoop ;)
 
Ik weet zelfs nog een paar prachtige 'Brezjnev' moppen. (als oud Geschiedenislereaar mag dat ook wel)

Ken je die van de opening van de Olympische Spelen in MOSKOU? B. leest van zijn briefje "O,O,O,O,O,O". Tsja, dat logo van de Ol.Spelen...is onze seniele vriend echt teveel geworden.

Ik dwaal nu zeer af....wel leuk om even aan iets anders te denken.

Excuses...

Fijne avond.

Jan Stegeman
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan