Jeg har nogle data i et XML dump, som jeg godt ville lave en pivottabel på. Jeg kan fint få Excel (2003) til at åbne denne base og lave spændende ting med den, men men men jeg kan ikke tilgå xml filen direkte fra en pivottabel. Der kan man jo kun vælge ODBC eller Excel datakilder, og jeg kan ikke finde nogle steder det at åbne XML....
Er der nogle af jer som har nogle gode ideer eller måske endda allerede har prøvet noget af den slags... Jeg kan ikke blot importere disse XML data først, da der er langt mere end 65000 rækker !!!
hvis vi ser spm. i forlængelse af det andet xml spm. så vil denne makro taget fra xl-dennis kombineret med pivot kunne hente data ind i en IKKE opdaterbar pivottabel. Jeg har lavet makroen slutte der hvor pivottabellen lige er sat. Ingen felter på endnu. Man kan bruge metoden hvis man lader makroen lave hele pivotdelen også, ved at man først sletter den gamle pivot og laver en ny på denne måde.
Sub Read_XML_Data_() Dim pc As PivotCache Dim pt As PivotTable Dim rst As ADODB.Recordset Dim fld As ADODB.Field Dim stCon As String, stFile As String Dim i As Long, j As Long Set rst = New ADODB.Recordset stFile = "C:\report.xml"
stCon = "Provider=MSPersist;" With rst .CursorLocation = adUseClient .Open stFile, stCon, adOpenStatic, adLockReadOnly, adCmdFile Set .ActiveConnection = Nothing i = .Fields.Count End With '*******PIVOT******** Set pc = ActiveWorkbook.PivotCaches.Add(SourceType:=xlExternal) Set pc.Recordset = rst Worksheets.Add before:=Sheets(1) Set pt = ActiveSheet.PivotTables.Add(PivotCache:=pc, tabledestination:=Range("A3"))
Denne her kan bruges til at opdatere/refreshe pivoten, så man ikke behøver slette den.
Sub UpdateMyPivotTableFromxmlFile() Dim pc As PivotCache Dim pt As PivotTable Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset Set pc = ActiveWorkbook.PivotCaches(1) Set pt = ActiveSheet.PivotTables("Pivottabel1")
rs.Open "c:\report.xml", "Provider=MSPersist;", adOpenStatic, adLockReadOnly, adCmdFile Set pc.Recordset = rs rs.Close pt.RefreshTable End Sub
Tak for forslagene, men jeg er desværre ingen VBA haj og kan ikke rigtig få det til at virke. Skal der først installeres en driver eller lign. for at kunne få fat på en XML datasource eller ??
Jeg får problemer allerede i linie 4 (Dim rst As ADODB.Recordset). Hvad er det der sker her. Det ser for mig ud til at være forbindelsen til data jeg ikke får til at virke, men jeg ved ikke hvorfor!!! Håber nogen kan hjælpe.
rolig nu... Jeg glemte at skrive at i makroeditoren skal du under Tools/References sætte flueben ved Microsof ActiveX Data Object 2.x Library. Så kan du få forbindelsen til at virke :-)
Tusind tak for dit eksempel som jeg har fået til at fungere helt fint. Nu bare en sidste lille hale. Hvis jeg går ind i en af mine Access tabeller og eksporterer dem til "C:\Report.xml" virker det ikke rigtig, men jeg får en fejlmeddelse "Recordset cannot be created. Source XML is incomplete or invalid". Er der nogle krav til XML filen som jeg ikke opfylder. Længere nede i koden kan jeg se at du refererer til nogle konkrete variable i dine data. Det er selvfølgelig noget jeg skal have rettet så det passer til mine variable, men det er vel ikke det der er problemet her??
Hej bak Nu kører det bare. Mange tak for det arbejde du har lagt i det. Det har været en super hjælp for mig. Jeg kan ikke rigtig komme til at tildele dig point, selvom jeg gerne ville. Hvis du ændrer dine kommentarer til et "svar" er der point. Tak igen.
Jeg kan heller ikke få det til at virke med XML fra Access. Jeg brugte dog kun Access til test. Det jeg egentlig skulle bruge det til var mod en Oracle database og her virker det lige efter hensigten.
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.