• 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.

Bestands locatie csv bij een query

Status
Niet open voor verdere reacties.

Woffels

Gebruiker
Lid geworden
8 jan 2006
Berichten
249
Ik heb diverse query's in een xls sheet die statische verwijzingen hebben naar de bronbestanden (CSV) voor de query's.
Dat ziet er bijvoorbeeld zo uit voor de bron van één van de query's.
Code:
= csv.document(File.Contents("C:\Users\Peter\Documents\Projects\Database01.xlsm"), null, true)

De uiteindelijke bedoeling is, dat de xls sheet door meerdere gebruikers gebruikt gaat worden en dus die bestands locatie van de query bron anders is. Is het mogelijk de bestands locatie dynamischer te maken, de bestandsnaam is overigens altijd hetzelfde. Ik dacht om het zo te maken, dat de bron van de query altijd in hetzelfde pad als de xls sheet gezet moet worden om het te laten functioneren. Zo kan ik de gebruiker instrueren de csv altijd in dezelfde map te zetten als de xls sheet.
Hoe dit te realiseren?
 
Doe het eens zo:
Code:
= csv.document(File.Contents(Environ("userprofile") & "\Documents\Projects\Database01.xlsm"), null, true)

Of:
Code:
= csv.document(File.Contents(ThisWorkbook.Path & "\Database01.xlsm"), null, true)
 
Laatst bewerkt:
De tweede keuze is beter, dan kunnen de bestanden op elke locatie staan, zelfs op een usb drive.
Helaas pakt ie thisworkbook.path niet, zie bijlage.
 

Bijlagen

  • Knipsel.JPG
    Knipsel.JPG
    128,4 KB · Weergaven: 25
ThisWorkbook.Path is VBA.
Wat het in Powerquery moet zijn of wel eens kan weet ik niet.
Maar even een reactie van anderen afwachten.
 
Ja, die had ik ook al gevonden en werkt in principe prima, maar ik hoopte dat het ook mogelijk was in de query editor.
 
PQ is denk ik nog in ontwikkeling. Jouw vraag kan, zover ik gevonden heb, alleen met de methode in #5. Ook andere zaken zoals koppeling met een Sharepoint bestandje of een simpele formule als WEEKNUM(date) is allemaal vrij complex.

Nb. ik ben beginner met PQ dus of mijn antwoord wat waard is laat ik aan de specialisten over (zijn er volgens mij maar weinig van op dit forum)
 
De uiteindelijke bedoeling is, dat de xls sheet door meerdere gebruikers gebruikt gaat worden en dus die bestands locatie van de query bron anders is. Is het mogelijk de bestands locatie dynamischer te maken, de bestandsnaam is overigens altijd hetzelfde.
Is het dan niet voor-de-hand-liggender het bestand op een voor allen toegankelijke server te plaatsen, zodat je er met een vaste webquery terecht kunt ?
 
Ik heb het nu opgelost met een formule in een cel genaamd; CSV_Location

Code:
=LINKS(CEL("Bestandsnaam");VIND.SPEC("[";CEL("Bestandsnaam");1)-1)&E2

Waarbij cel E2 de bestandsnaam van het bronbestand bevat.

In PQ staat er dan bij de bron:
Code:
= Csv.Document(File.Contents(Excel.CurrentWorkbook(){[Name="CSV_Location"]}[Content][Column1]{0}),[Delimiter=";", Columns=24, Encoding=1252, QuoteStyle=QuoteStyle.None])
 
Als PQ benoemde gebieden wel herkent kan dat ook met

Code:
Private Sub Workbook_Open()
   Names.Add "CSV_Loc", ThisWorkbook.Path & "\snb.csv"
End Sub
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan