12. september 2008 - 10:07Der er
9 kommentarer og 1 løsning
Skalaer mm på grafer i Access
Jeg har lavet en del grafer i Acces, men ind i mellem opfører de sig ikke helt så dynamisk, som jeg gerne vil have dem til. Jeg vil f.eks gerne kunne genbruge den samme graf med ret forskellige y-akser.
Min forespørgsel kunne f.eks se sådan ud.
lbnr Måned Resultat Min Maks Produkt Analyse Enhed Nederste Øverste 1 01-01-2008 950 900 1000 Mælk Mål ml 810 1100 2 01-02-2008 900 900 1000 Mælk Mål ml 810 1100 3 01-03-2008 850 900 1000 Mælk Mål ml 810 1100 4 01-04-2008 980 900 1000 Mælk Mål ml 810 1100 5 01-05-2008 950 900 1000 Mælk Mål ml 810 1100 6 01-06-2008 970 900 1000 Mælk Mål ml 810 1100 7 01-07-2008 1100 900 1000 Mælk Mål ml 810 1100 8 01-08-2008 1000 900 1000 Mælk Mål ml 810 1100 9 01-09-2008 980 900 1000 Mælk Mål ml 810 1100 10 01-10-2008 940 900 1000 Mælk Mål ml 810 1100 11 01-11-2008 930 900 1000 Mælk Mål ml 810 1100 12 01-12-2008 970 900 1000 Mælk Mål ml 810 1100 13 01-01-2008 90 90 99 Mælk Vand % 81 108,9 14 01-02-2008 91 90 99 Mælk Vand % 81 108,9 15 01-03-2008 95 90 99 Mælk Vand % 81 108,9 16 01-04-2008 90 90 99 Mælk Vand % 81 108,9 17 01-05-2008 93 90 99 Mælk Vand % 81 108,9 18 01-06-2008 50 40 60 Wisky Mål ml 36 66 19 01-07-2008 55 40 60 Wisky Mål ml 36 66 20 01-08-2008 45 40 60 Wisky Mål ml 36 66 21 01-09-2008 30 25 35 Wisky Vand % 22,5 38,5 22 01-10-2008 25 25 35 Wisky Vand % 22,5 38,5 23 01-11-2008 20 25 35 Wisky Vand % 19,8 38,5 24 01-12-2008 28 25 35 Wisky Vand % 22,5 38,5 25 01-01-2008 10250 9000 11000 Sirup Mål cl 8100 12100 26 02-01-2008 10100 9000 11000 Sirup Mål cl 8100 12100 27 03-01-2008 10200 9000 11000 Sirup Mål cl 8100 12100 28 04-01-2008 10100 9000 11000 Sirup Mål cl 8100 12100 29 05-01-2008 10000 9000 11000 Sirup Mål cl 8100 12100 30 01-01-2008 10 100 200 Penge Mål kr 9,9 220 31 02-01-2008 150 100 200 Penge Mål kr 90 220 32 01-01-2008 100000 8000 12000 Korn Mål hkg 7200 101000 33 02-01-2008 101000 8000 12000 Korn Mål hkg 7200 102010
I Excel kan jeg styre det med denne makro, (jeg laver min forespørgsel med MSQ) men hvordan gør jeg i Access
Sub Makro1() ' ' Makro1 Makro ' Makro indspillet 02-09-2008 af Arla Foods amba '
' Dim MinSkala As Integer Dim MaksSkala As Integer Dim Overskrift As String Dim Enhed As String Dim Analyse As String
Jeg er ikke tilfreds med access's zoom. Hvis jeg f.eks har resultater i området 0-3, er access range for så vidt ok, men hvis mine resultater ligger i området 3000-3100 vælger acces alligevel at begynde ved 0, dvs min kurve bliver alt for flad.
hvis du har din office web components installeret og laver en reference i vba, den kunne eksempelvis ligge heromkring: program files\microsoft shared\web components\10\1033\owcvba10.chm
.. så kan du stort set styre alt ved dine charts, det er lidt tricky at få det hele til at spille, men for dit vedkommende skal du ind på noget i retningen af:
private oChart as ChChart private oValueAxis as ChAxis
private sub MinimumTalFelt_Afterupdate() Set oChart = Form_DinGraf.ChartSpace.charts(0) Set oValueAxis = oChart.Axes(1) oValueAxis.Scaling.Minimum = Me.MinimumTalFelt end sub
talfeltet kan ikke indeholde null, så det skal du lige tage med!~)
i dette tilfælde har jeg refereret til en form kaldet dinGraf, som er selve pivot grafen, men hvis du har indsat en graf på anden måde, så skal du selvfølgelig referere til denne beliggenhed... eks. form_DinFormular.NavnPåGrafen.Chartspace.charts(0)
go' weekend!~)
Synes godt om
Slettet bruger
12. september 2008 - 14:36#6
ps. ang. null værdier, så kan du:
If IsNull(Me.MinimumTalFelt) Then oValueAxis.Scaling.HasAutoMinimum = True Else oValueAxis.Scaling.Minimum = Me.MinimumTalFelt End If
Synes godt om
Slettet bruger
12. september 2008 - 21:38#7
jeg kom til at tænke på noget... du kunne lave en dmin og dmax på din forespørgsel og så bruge værdien f.eks. 0.9*dmin i stedet for me.minimumtalfelt og 1.1*dmax hvis du skal have en til maximum. Så ville grafområdet altid være +/- 10% af udsvinget af dit datasæt!~)
Synes godt om
Slettet bruger
12. september 2008 - 21:40#8
altså 10% større både i top og i bund.... eller hvordan man nu skal forsøge at forklare!~)
Jeg har lige været væltet af pinden et par dage.....
Jeg tror jeg er nødt til at have det skåret ud i pap, gerne med udgangspunkt i min ovenstående tabel, som godt nok ser lidt rodet ud i dette skærmbillede. Resultatet, min og max skal jo være kurver på grafen. De to kolonner længst til højre, som er "øverste" og "nederste" er lige præcis 10% mere/mindre end max og min :-), så at lave det om til dmin og dmax skulle ikke være noget problem.
Det her:program files\microsoft shared\web components\10\1033\owcvba10.chm
hvor finder jeg det ?? Ordtet "shared" for mig til at frygte, at det er noget jeg ikke umiddelbart har adgang til
Jeg lukker spørgsmålet nu, da jeg har fået denne løsning andetstedsfra. Min og Mak er skjulte felter i min forespørgslel med en DMin og Dmaks
Private Sub Form_Open(Cancel As Integer)
Dim g As Graph.Chart 'MSGraph.Chart.8 'Microsoft Graph Chart
Set g = Me.Diagram4.Object g.Axes(xlValue).MinimumScale = Me.Min g.Axes(xlValue).MaximumScale = Me.Max
End Sub
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.