Avatar billede somaliomar Praktikant
29. oktober 2002 - 14:31 Der er 11 kommentarer og
3 løsninger

Ændre et diagrams RowSource i VBA

Hvordan kan man ændre et diagrams RowSource i en rapport i Access 'on the fly'? Jeg har prøvet, at ændre RowSource, men der kommer en runtime-error '2455'.
Avatar billede terry Ekspert
29. oktober 2002 - 14:35 #1
diagrams rowsource! waht do you mean here?
Avatar billede somaliomar Praktikant
29. oktober 2002 - 14:41 #2
Jeg vil ændre de data diagrammet er baseret på. Hvordan gør jeg det i runtime?
Avatar billede terry Ekspert
29. oktober 2002 - 14:47 #3
diagrammet! what is a diagram? Do you meana form?

me.recordsource = "NewTable"
Avatar billede somaliomar Praktikant
29. oktober 2002 - 14:53 #4
A want to change the source of a chart i have in a report on the fly.
Avatar billede nih Novice
29. oktober 2002 - 22:33 #5
Dit diagram skal have et navn.

Derefter er det 'bare' at bygge en SQL op

strSQL = "SELECT bla, bla,,,,,"
ctlDiagramNavn.RowSource = SQL

Niels
Avatar billede nih Novice
29. oktober 2002 - 22:40 #6
Option Compare Database
Option Explicit

Private m_objChart      As Graph.Chart

Private Sub cboCompany_Change()
   
    On Error GoTo cboCompany_Change_Err

    Dim strSQL      As String

    ' different select statement for all records
    If cboCompany = -1 Then
        strSQL = "qryxSalesSummary"
    Else
        strSQL = "SELECT * FROM qryxSalesSummary WHERE CompanyName=""" & _
            cboCompany.Column(1) & """"
    End If

    ' set the data source for the chart
    ctlChart.RowSource = strSQL
    ctlChart.RowSourceType = "Table/Query"

    ' format the chart
    With m_objChart
        ' set the font size
        .ChartArea.Font.Size = 8
        .HasLegend = chkLegend
        .Refresh

        ' If showing all then make multi-layered
        If cboCompany = -1 Then
            .ChartType = xl3DColumn
            .Refresh
            .Axes(xlSeriesAxis).HasTitle = False
        Else
            .ChartType = xl3DColumnStacked
            .Refresh
        End If
       
        ' format the x-axis
        With .Axes(xlCategory)
            .HasTitle = True
            .AxisTitle.Caption = "Month"
        End With
       
        ' format the y-axis
        With .Axes(xlValue)
            .HasTitle = True
            .AxisTitle.Caption = "Total Sales"
        End With

    End With

cboCompany_Change_Exit:
    Exit Sub

cboCompany_Change_Err:
    If Err.Number = 1004 Then
        m_objChart.Refresh
    Else
        Err.Raise Err.Number, Err.Source, Err.Description, Err.HelpFile, Err.HelpContext
    End If

End Sub

Private Sub chkLegend_Click()

    m_objChart.HasLegend = chkLegend

End Sub

Private Sub Form_Load()

    ' set a reference to the chart object
    Set m_objChart = ctlChart.Object

End Sub

Private Sub Form_Unload(Cancel As Integer)

    ' clean up reference
    Set m_objChart = Nothing

End Sub
Avatar billede nih Novice
29. oktober 2002 - 22:41 #7
Ovenstående er et eksempel, håber du kan bruge noget af det
Avatar billede somaliomar Praktikant
30. oktober 2002 - 19:47 #8
Æh... Jeg har en lavet et diagram i en rapport. Diagramet hedder oleDiagram. Spørgsmållet er, hvordan kan jeg ændre diagrammets RowSource-property, når rapporten starter?

Jeg har flg. kode, men Access brokker sig:

Sub Report_Open()
  Me.oleDiagram.RowSource = "SELECT * FROM tblTabel WHERE Dit = " & Dat
End Sub
Avatar billede somaliomar Praktikant
30. oktober 2002 - 19:53 #9
Jeg får følgende fejl:

Run-time error '2455':

Det indtastede udtryk indeholder en udyldig reference til egenskaben RowSource.
Avatar billede somaliomar Praktikant
30. oktober 2002 - 20:07 #10
Jeg har fundet noget på Microsofts KB-database. http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q209993&

Er der ikke en simplere metode?
Avatar billede nih Novice
30. oktober 2002 - 20:30 #11
Sorry, jeg så ikke det var en rapport :(

Du er nødt til at åbne rapporten i design før du kan ændre dine objekter på rapporten.


DoCmd.OpenReport "rapport2", acViewDesign

Reports("rapport2").oleDiagram.RowSource = "SELECT * FROM tblTabel WHERE Dit = " & Dat

DoCmd.OpenReport "rapport2", acViewPreview


Niels
Avatar billede somaliomar Praktikant
31. oktober 2002 - 05:26 #12
nih >> Vi kan alle sammen tage fejl. Tag det ikke så tungt :) Men det der med at man skal åbne rapport i design-mode, før man kan ændre et objekt, har jeg allerede fundet ud af. Og hvis der ikke er andre løsninger, så lukker jeg spørgsmålet. Læg lige et svar, så vi tre kan dele de 30 points :)
Avatar billede nih Novice
31. oktober 2002 - 08:02 #13
Hvis ikke du er tilfreds med mine forslag, ta'r du bare points selv. Det er ikke derfor jeg deltager.

Niels
Avatar billede somaliomar Praktikant
31. oktober 2002 - 17:13 #14
nih >> Det kunne jeg jo bare gøre :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester