• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Draaitabel uit meerdere databases

Status
Niet open voor verdere reacties.

Bert2011

Gebruiker
Lid geworden
10 jan 2011
Berichten
26
Hallo, Ik heb een probleem met het maken van 1 draaitabel uit meerdere databases.

Ik heb 12 exact dezelfde databases, elk op een tabblad in 1 bestand, dit is data per maand. Uiteraard verschillen de waarden in elk tabblad, maar de lay-out is hetzelfde.

Ik kan niet alle records onder elkaar zetten want dan kom ik boven de 65.000 regels uit.

Nu wil ik wel alle 12 databases gebruiken om 1 draaitabel te maken. Als ik in de wizzard kies voor meerdere databases, vervolgens een aantal databases toevoeg, kan ik bij het indelen van de draaitabel alleen waarden, rijen en aantallen inslepen. Als ik een enkele maand gebruik voor een draaitabel, kan ik wel alle kolomkop (=veldnaam?) namen gebruiken. Ik doe blijkbaar iets fout. Kan iemand mij verder helpen?

Thx, Bert
 
Bert,
Je doet niets fout, dit is "by design". Een dt maken uit meervoudige bereiken is in de praktijk dan ook vaak niet zo bruikbaar. Beter is om in de wizard te kizen voor externe gegevensbron en in MS-Query de sql-query aanpassen in de vorm van
SELECT * FROM [Blad1$]
UNION
SELECT * FROM [Blad2$]
UNION
SELECT * FROM [Blad3$]
etc.
Via MS-Query is dit bewerkelijk. Als je het in vba kunt doen dan komt dit al aardig in de richting:
Code:
Sub AddPivotFromExternal()
    
    Dim pc As PivotCache
    Dim sFile As String
    Dim sSQL As String
    
    sFile = ActiveWorkbook.Path & "\Bron.xls"
    
    sSQL = ""
    sSQL = sSQL & " SELECT * FROM [Blad1$]"
    sSQL = sSQL & " UNION"
    sSQL = sSQL & " SELECT * FROM [Blad2$]"
    sSQL = sSQL & " UNION"
    sSQL = sSQL & " SELECT * FROM [Blad3$]"
    
    Set pc = ActiveWorkbook.PivotCaches.Create(SourceType:=xlExternal)
    With pc
        .Connection = "ODBC;DSN=Excel Files;DBQ=" & sFile & ";"
        .CommandType = xlCmdSql
        .CommandText = sSQL
    End With
        
    ActiveSheet.PivotTables.Add _
        PivotCache:=pc, _
        TableDestination:=Range("B2"), _
        TableName:="Union"
        
 End Sub
 
Ik heb het op een andere manier opgelost door 12 draaitabellen op even zoveel tabbladen op tab nr. 13 bij elkaar op te tellen. Werkt ook...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan