Toon posts:

[VBA/Access] Subdirectories doorlopen*

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Op een access formulier heb een een knop aangemaakt waarmee pdf's geopend kunnen worden.


Private Sub pdf_Click()

Dim mod_ID$, stAppName$, stPathName$

art = Me!art_Art_ID
stAppName = "F:\apps\Adobe\AcroRd32.exe "
stPathName = "F:\data\documentatie\tekeningen\" & "*" & art & "*" & ".pdf"
If Dir(stPathName) <> "" Then
Call Shell(stAppName & stPathName, 1)
Else
MsgBox stPathName & " bestaat niet"
End If

End Sub

Onder de map F:\data\documentatie\tekeningen\ staan ook nog subdirs. Wat ik niet voor elkaar krijg is dat de hele map tekeningen inclusief subdirs doorzocht wordt. Waarschijnlijk moet ik dit aanpassen in het stPathName gedeelte, maar hoe?

Alvast bedankt!

  • PaulZ
  • Registratie: Augustus 2004
  • Laatst online: 21-05-2024
Persoonlijk zou ik via een FileDialog (zie Access help) de gebruiker het juiste bestand op laten zoeken (maar dat is weer persoonlijk). Daarbij kan je de *art*.pdf als filter opgeven.

Vlinders moet je volgen, niet vangen...


Verwijderd

Topicstarter
Het handige van de knop is juist dat hij kijkt in het formulier welk artikel er gesecteerd is, en de daarbij behorende tekening (pdf) opent. Op zich zou dit goed moeten werken, ik weet alleen niet hoe ik de subdirs ook kan laten doorzoeken. zat te denken aan zoiets als:

"F:\data\documentatie\tekeningen\*\"

of

"F:\data\documentatie\tekeningen\..\"

Maar dit werkt niet.

  • Ashtaroth
  • Registratie: December 2003
  • Laatst online: 16-02 09:59
is recursie een optie?

  • PaulZ
  • Registratie: Augustus 2004
  • Laatst online: 21-05-2024
Ok, dan heb ik je dus niet goed begrepen. Wat ik in dat geval zou kunnen aandragen is te gaan werken met Scripting.FileSystemObject. Ga dan in de folders-verzameling daarvan (en de folders-verzameling daar weer van) zoeken naar jouw bestand en open dan dat bestand.

[ Voor 9% gewijzigd door PaulZ op 15-05-2006 14:35 ]

Vlinders moet je volgen, niet vangen...


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22:10

NMe

Quia Ego Sic Dico.

Wat PaulZ en Ashtaroth zeggen zou ik combineren. :P

Verder hoort VBA (je gebruikt VBA in Access, geen VB) in Officesuites en -software, zoals je in Waar hoort mijn topic? had kunnen lezen.

PRG>>OFF

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Force
  • Registratie: Januari 2000
  • Laatst online: 31-07-2023

Force

Kan iemand ff me neus afvegen?

Nog ff geen antwoord op je vraag, maar misschien wel een andere handige tip:
Je werkt nu met een absoluut path (f:\........). Maar als ik nou geen F:\ schijf heb, maar hem op H: heb staan (share neem ik aan). Dan krijg ik een foutmelding.

Met de volgende verandering heb je daar geen last van:
code:
1
stPathName = CurrentProject.Path & "*" & art & "*" & ".pdf"

edit: er van uit gaand, dat je db in het zelfde path staat als je tekeningen.
Als je db in data staat, dan bijvoorbeeld:
code:
1
stPathName = CurrentProject.Path & "\documentatie\tekeningen\*" & art & "*" & ".pdf"

[ Voor 29% gewijzigd door Force op 15-05-2006 17:17 ]

Leven is als een pijpkaneel, iedereen zuigt eraan en krijgt zijn deel.


  • thomrob
  • Registratie: Maart 2001
  • Laatst online: 22-05 12:22

thomrob

allround developer

leuk dat currentproject.Path maar is het niet handiger een bestandsmap als settings 'ergens' op te slaan. Bv in een een tabel met stuurgegevens of een ini-file? Bouw een schermpje om een dir te selecteren en je bent er vanaf.

Wat dan rest is de filedialog en deze met recursie gebruiken inderdaad. Hierover is wel een en ander op internet te vinden.
Pagina: 1