hoe toon je een PDF

Status
Niet open voor verdere reacties.

JEPEDEWE

Terugkerende gebruiker
Lid geworden
14 jun 2006
Berichten
1.697
Hallo,

Ik heb één record waarnaar meestal een aantal ingescande documenten kunnen verwijzen.
Die (officiele) documenten worden ingescand en in een bepaalde folder bewaard.
Nu moet ik telkens naar die folder, zoeken naar het (de) correcte document(en)
De vraag is
Kan ik op dat record een knop zetten dat, bij aanklikken (het) de nodige document(en) in een apart venster laat zien?

Graag een helpend handje

Bedankt

JP
 
Dus je wilt vanuit het specifieke record alle documenten kunnen zien (en vermoedelijk ook openen)? Dan zou ik een popup formulier maken waarin je alle beschikbare documenten van de map in een keuzelijst (zonder invoervak dus) laat zien. Van daaruit klik je dan op het bestand om dat te openen.
 
Dat zou een leuke benadering zijn indien mogelijk.....
 
Ik zou het niet zeggen als het niet mogelijk was :). Ben bezig een voorbeeldje te maken. Geduld nog even (werk gaat uiteraard voor :) ).
 
De procedure bestaat uit 2 delen; een knop die een tekstvak met de naam van de gekozen map vult en een keuzelijst, en een functie die de map laat selecteren. Hier zijn ze:
Code:
Private Sub cmdMapInlezen_Click()
Dim File As String, Files As String

    If Me.Documents & "" = "" Then
        Me.Documents = MapOpzoeken
        If Right(Me.Documents, 1) <> "\" Then Me.Documents = Me.Documents & "\"
        If Me.Documents & "" = "" Then
            Exit Sub
        End If
    End If
    
''    File = Dir(Me.Documents & "*.doc?")
    File = Dir(Me.Documents & "*.pdf?")
    Do While File <> ""
        If Not Files = "" Then Files = Files & ";"
        Files = Files & File
        File = Dir
    Loop
    With Me.lstBestanden
        .RowSourceType = "Value List"
        .RowSource = Files
        .Requery
    End With
End Sub

En de functie:
Code:
Function MapOpzoeken() As String
Dim dlgPicker As FileDialog
Dim vrtSelectedItem As Variant
Dim i As Integer
Dim strMap As String

    Set dlgPicker = Application.FileDialog(msoFileDialogFolderPicker)
    With dlgPicker
        .Title = "Selecteer een map." 'De titel voor het venster
        .InitialFileName = CurrentProject.Path      'Waar moet het venster beginnen? Begin nu bij de db.
        .AllowMultiSelect = False                   'Eén map selecteren.
        .InitialView = msoFileDialogViewList        'Bepaal weergave
        If .Show = -1 Then                          'Bepaal of gebruiker op OK-knop heeft geklikt.
            MapOpzoeken = .SelectedItems(1)
        Else
            MsgBox "Er is op <Annuleren> gedrukt..."
        End If
    End With
    Set dlgPicker = Nothing

End Function
Volgens mij moet je hier een eind mee kunnen komen.
 
heb de functie in een module gestoken
de code onder een knop op de form
als ik op de knop klik krijg ik een compileerfout:
"kan de methode of het gegevenslid niet vinden" bij de lijn
If Me.Documents & "" = "" Then

enig idee?

de plaats waar de scan staat is steeds dezelfde: z:\archief
 
Waarschijnlijk moet je nog een bibliotheek aanzetten: de Office Object library. Die wordt gebruikt door de dialoogvensterfunctie.
 
M.i. staat die verwijzing al aan...??

verwijzing.jpg

of zie ik het verkeerd
 
Dan heb je waarschijnlijk een variabele niet gedeclareerd. Ik gebruik dit als algemene variabele:
Code:
Dim dlgPicker As FileDialog
 
die lijn staat toch als tweede lijn in de functie-code....
 
Ik zie het, ik head 'm daar al neergezet :). In mijn eigen db staat hij algemeen, vandaar dat ik daar even aan dacht. Iets basalere oplossing: in de functie zet ik de gevonden map in een tekstvak. Heb je dat ook gemaakt?
 
Dat begrijp ik niet hoor...
Begrijp ook de bedoeling niet echt...
zoals je het schrijft, denk ik, krijg ik een soort verkenner waar ik het pdf document kan gaan opzoeken.
Dat is eigenlijk de bedoeling niet...
Alle pdf documenten staan in eenzelfde map: z:/archief
De naam van de pdf bestanden start met een unieke code die ik ook terugvind op het record in mijn database
dus klikken op een knop zou onmiddellijk DAT document moeten tonen, geen verkenner waarin ik tussen de duizenden scans moet gaan zoeken.
misschien zie ik het fout maar deze manier van werken zou pas handig zijn.
Groetjes
JP
 
Is ook handig. Als je exact weet waar de pdf staat, is het een kwestie van het pad dynamisch aanvullen en de samengestelde string met FollowHyperlink openen. Die opdracht hang ik meestal aan de <Bij klikken> gebeurtenis, of de Dubbelklikken gebeurtenis.
 
Sorry hoor Michel maar ik weet ECHT niet wat de volgende stap zou moeten zijn..
 
Toch is dat niet zo moeilijk. Je hebt dus een tekstvak met de naam van het document, laten we zeggen: Document. Dan maak je een gebeurtenis met deze code:
Code:
Private Sub Document_Click()
     Application.FollowHyperlink "Z:\Archief\" & Me.Document.Value
End Sub
Met extra parameters kun je nog aangeven hoe de hyperlink moet worden geopend.
 
OK Michel, gelukt... maar hoe van je op dat er niets gevonden wordt?
Ook
een pdf opent bij mij steeds in 185%... kan je dat instellen zodat een pdf in 75% getoond wordt?

Ferme merci... weer betere functionaliteit...

JP
 
Als je wilt checken of het document überhaupt wel bestaat, dan zou ik er eerst een DIR op loslaten. Als die leeg blijft, dan Exit Sub of iets dergelijks. Volgens mij kun je vanuit VBA niet instellen dat een PDF op een bepaald percentage wordt getoond, dat moet je in Acrobat Reader zelf instellen. Dat gaat dan weer via <Bewerken>, <Voorkeuren>, tabblad <Pagina-weergave>, keuzelijst <In/Uitzoomen>. Die staat geheid op Automatisch.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan