[Excel] External data source veranderen

Pagina: 1
Acties:
  • 326 views sinds 30-01-2008
  • Reageer

  • Maasluip
  • Registratie: April 2002
  • Laatst online: 08:17

Maasluip

Kabbelend watertje

Topicstarter
Ik heb in Excel een pivottable die data van een externe bron haalt (Access databank). Nu wil ik de lokatie van deze databank veranderen.

In Excel kan ik nergens een optie vinden om zelfs maar te zien waar deze databank staat, laat staan dat ik de lokatie kan wijzigen. Als ik de databank waar ik de data nu vandaan haal verwijder of hernoem en dan de data refresh krijg ik wel een heel mooi dialoogje dat de databank niet gevonden kan worden en kan ik hem (op het eerste gezicht) ook wijzigen, maar als ik dan een andere databank uitkies krijg ik altijd een dialoogje dat de ODBC driver de originele database niet kan vinden. Met de nieuwe die ik aangeef wordt dus niks gedaan.

Is het überhaupt mogelijk om die link te wijzigen? Hoe dan?

Signatures zijn voor boomers.


  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 02:47
Misschien in VBA:
code:
1
2
3
4
5
6
7
Sub test()
Dim sheet As Worksheet
Set sheet = ActiveSheet
Dim pt As PivotTable
Set pt = sheet.PivotTables(1)
MsgBox (pt.PivotCache.Connection)
End Sub

Pivottable.PivotCache.Connection is een read write variant waarin het adres van de database verstopt zit.
Misschien deze string gekopieerd krijgen en dan met een ander macro'tje gewijzigd terugzetten?

  • Maasluip
  • Registratie: April 2002
  • Laatst online: 08:17

Maasluip

Kabbelend watertje

Topicstarter
Helaas, dat helpt niet. Ik kan die property wel overschrijven, maar als ik dan de data wil refreshen staat er nog altijd de oude link in. Het wordt wel mee opgeslagen en MsgBox (pt.PivotCache.Connection) blijft de nieuwe link geven. Blijkbaar wordt het nog ergens anders opgeslagen.

Signatures zijn voor boomers.


  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 02:47
Misschien is het deze:
Pivotcache.SourceDataFile
vba help:
For file-based data sources (e.g. Access) the SourceDataFile property contains a fully qualified path to the source data file. It is null for server-based data sources (e.g. SQL Server). The SourceDataFile property is set to null if the Connection property is changed programmatically.
Bekijk overigens deze eigenschappen van PivotCache:
SourceType
QueryType
SourceData
SourceDataFile
Probeer eens uit te vogelen welke eigenschappen hierin staan.

[ Voor 20% gewijzigd door onkl op 08-11-2004 11:14 ]


  • Maasluip
  • Registratie: April 2002
  • Laatst online: 08:17

Maasluip

Kabbelend watertje

Topicstarter
Ik heb die hele pivottable property doorgespit en op verschillende plaatsen zit de filenaam in veldjes ingebakken. O.a. in een SQL veld waar de hele query in zit.
Veranderen van deze veldjes resulteert in foutmeldingen tot botweg crashen van Excel. Ik vrees dat dit truukjes zijn waar MS niet op zit te wachten. Helaas.

Ik vind het wel vervelend dat je dat gewoon nergens kunt aanpassen. Dat betekent dat als ik deze applicatie uitrol ik de gebruikers dwingend moet voorschrijven in welke directory de database moet staan. Vind ik toch wel een grote misser van MS dat zoiets niet aan te passen is.

Signatures zijn voor boomers.


Verwijderd

Niet helemaal zeker of dit je verder helpt maar kijk eens onder Edit, Links (sorry, alleen de Engelse versie hier). Misschien dat je daar iets kan veranderen dat permanent is.

  • Maasluip
  • Registratie: April 2002
  • Laatst online: 08:17

Maasluip

Kabbelend watertje

Topicstarter
Edit -> Links is bij mij altijd grijs. Ik kom niet zo ver dat ik dit kan selekteren.

[ Voor 6% gewijzigd door Maasluip op 09-11-2004 08:02 ]

Signatures zijn voor boomers.


  • Maasluip
  • Registratie: April 2002
  • Laatst online: 08:17

Maasluip

Kabbelend watertje

Topicstarter
En even een kleine update:

ik heb het opgelost door het maken van de pivottable in een macro te zetten, aan het begin van de macro de locatie van de database te vragen en die in het statement dat de pivottable maakt te zetten. De databasenaam wordt op drie verschillende plaatsen op drie verschillende manieren gebruikt:
• volledige pad+naam als datasource (DBQ=)
• alleen het pad (zonder trailing \) als default dir (DefaultDir=)
• volledige pad+naam zonder extensie in de query (CommandText)

Dus daar moest ook nog iets voor gebakken worden om de filenaam die je van Application.GetOpenFilename krijgt op te splitsen.

Al met al een redelijk elegante oplossing lijkt me.

Signatures zijn voor boomers.

Pagina: 1