Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: wuffwuff2003 am Juli 09, 2013, 14:00:23

Titel: PDF Dokument öffnen, egal wie es heisst?
Beitrag von: wuffwuff2003 am Juli 09, 2013, 14:00:23
Hallo , ich öffne mit folgendem Code ein PDF Dokument:
Dim Pfad As String
   
    Pfad = "P:\data\bureau dlt1\CFL CRM T1\SNCF\RT- Liste- Affichage\RT\RT1301.pdf"
    DateiOeffnen "open", Pfad, 3

End Sub

Wenn die Datei aber eine laufende Nummer erhällt wie z.B. RT1301V1  oder RT1301V2 , kann man im VBA dann festlegen dass er das Dokument aufmachen soll, auch wenn nicht alle Zeichen eingibt z.B. wie früher in DOS mit dem Sternchen *  (Wohl bemerkt ist im Ordner immer nur ein PDF drin nur heisst es immer anders wenn eine neue Version rauskommt). Dann würde die Zeile so aussehen:

Pfad = "P:\data\bureau dlt1\CFL CRM T1\SNCF\RT- Liste- Affichage\RT\RT1301*.pdf"

Hab das probiert aber es geht nicht. Ist das überhaupt möglich?

Lg
Titel: Re: PDF Dokument öffnen, egal wie es heisst?
Beitrag von: daolix am Juli 09, 2013, 14:14:11
Hallo
wenn nur eine Datei vorkommt dann verwende doch Dir um den Dateinamen zu verifizieren.

Dim Pfad As String
dim sFile as string
    Path =  "P:\data\bureau dlt1\CFL CRM T1\SNCF\RT- Liste- Affichage\RT\"
    sFile = dir$(path & "RT1301*.pdf")
    if len(sFile) > 0 then DateiOeffnen "open", Pfad & sfile, 3

End Sub
Titel: Re: PDF Dokument öffnen, egal wie es heisst?
Beitrag von: wuffwuff2003 am Juli 09, 2013, 16:11:23
Hi,

Habe mich da ein bischen falsch ausgedrück . Also in dem Ordner liegen die Dateien RT1301 , RT1701, RT1351, RT1721. Wenn ich die Dateien bekommt, sehen sie in etwa so aus. RT1301V12 oder RT1701V67. Diese kopiere ich dann in den Ordner RT und lösche die alte Version die darin noch liegt. Ich müsste aber dann den VBA Code immer wieder neu anpassen, damit das klappt, oder ich müsste die Datei immer umbenennen und das "V12" z.b. wegnehmen, dann klappts. Die Versionsnummer ist aber wichtig für die Archivierung der Dateien. Somit müsste er dann das Dokument öffnen und am den Sternchen müsste dann der Rest der Zeichen ignoriert werden wie bei dos früher. bspw (xcopy RT1301*.*)
Titel: Re: PDF Dokument öffnen, egal wie es heisst?
Beitrag von: daolix am Juli 09, 2013, 16:31:32
Hallo
dir ist schon das * in der Zeile sFile = dir$(path & "RT1301*.pdf") aufgefallen?
Wenn nur eine Datei (RT1301.pdf oder RT1301V1.pdf ... oder RT1301V1000.pdf) vorkommt wird diese so mit dir gefunden. Der Dir-Befehl ist ähnlich wie Dos, * und ? kannst du entsprechen verwenden.

Titel: Re: PDF Dokument öffnen, egal wie es heisst?
Beitrag von: wuffwuff2003 am Juli 09, 2013, 21:14:16
Hallo, Ja das ist mir aufgefallen, aber in dem Ordner sind wie gesagt 4 Dateien drin enthalten, die organisatorisch bedingt immer zusammen in einem Ordner liegen. Und genau da ist das Problem.
Titel: Re: PDF Dokument öffnen, egal wie es heisst?
Beitrag von: daolix am Juli 09, 2013, 22:02:58
Hallo

ich komm jetzt irgendwie nicht mit. Das sind deine Angaben die du bisher gegeben hast, so wie ich es verstanden habe:
Du haste einen Ordner P:\data\bureau dlt1\CFL CRM T1\SNCF\RT- Liste- Affichage\RT\. In  diesem Ordner liegen meinetwegen 4 Dateien
RT1301VIrgendwas.pdf , RT1701VIrgendwas.pdf, RT1351VIrgendwas.pdf, RT1721VIrgendwas.pdf wobei VIrgendwas halt für igendeine ZahlenBuchstabenkombo steht
Du willst jetzt mit deiner Funktion DateiOeffnen ( die ich nicht kenne, die aber einen vollständigen Path benötigt) die Datei RT1301VIrgendwas.pdf verarbeiten, bei der du aber das VIrgendwas nicht kennst.
Wenn ich jetzt den Path mit dem Dir-Befehl mit der Maske RT1301*.pdf durchsuche wird bei der obigen Annahme die Datei RT1301VIrgendwas.pdf gefunden, Keine  RT1701VIrgendwas.pdf, keine RT1351VIrgendwas.pdf und keine RT1721VIrgendwas.pdf.
Sollte dann in Zukunft die Datei RT1301VIrgendwas.pdf durch eine RT1301VIrgendwasAnderes.pdf ersetz werden (lt. deiner Aussage wird die Alte Datei gelöscht) wird Dir mit der Maske die neue Datei finden.

Titel: Re: PDF Dokument öffnen, egal wie es heisst?
Beitrag von: wuffwuff2003 am Juli 09, 2013, 23:14:00
Ja ich glaube ich hab da etwas jetzt durcheinander geschmissen sorry :) Ich teste das gleich morgen mal :) Es gibt nicht zufällig einen Befehl der den Acrobat Reader "Maximiert aufmacht" Wenn es mehr als eine Zeile ist, ist es auch gut so, komm damit schon klar . Wie gesagt versuche mein Glück morgen :) Danke
Titel: Re: PDF Dokument öffnen, egal wie es heisst?
Beitrag von: wuffwuff2003 am Juli 10, 2013, 13:36:39
Hallo habe das nun probiert, aber das Dokument öffnet sich nicht es geschieht an sich gar nix :) Es öffnet sich nur der Ordner
Titel: Re: PDF Dokument öffnen, egal wie es heisst?
Beitrag von: daolix am Juli 10, 2013, 14:13:41
Hallo
Was hast du probiert? Wie schaut denn dein Code jetzt aus?
Titel: Re: PDF Dokument öffnen, egal wie es heisst?
Beitrag von: wuffwuff2003 am Juli 10, 2013, 14:25:36
Hi, Der Code sieht so aus:
Private Sub Befehl4_Click()

Dim Pfad As String
Dim sFile As String
   
    Pfad = "P:\data\bureau dlt1\CFL CRM T1\SNCF\RT- Liste- Affichage\RT"
    sFile = Dir$(Pfad & "RT1301*.pdf")
   
    If Len(sFile) > 0 Then DateiOeffnen "open", Pfad & sFile, 3

End Sub

Und hier noch das Modul:

Public Declare Function ShellExecute Lib "shell32.dll" Alias _
    "ShellExecuteA" (ByVal hWnd As Long, _
                     ByVal lpOperation As String, _
                     ByVal lpFile As String, _
                     ByVal lpParameters As String, _
                     ByVal lpDirectory As String, _
                     ByVal nshowcmd As Long) As Long
   
Public hWnd As Long
Public Const SW_HIDE = 0          ' Versteckt öffnen
Public Const SW_MAXIMIZE = 3      ' Maximiert öffnen
Public Const SW_MINIMIZE = 6      ' Minimiert öffnen
Public Const SW_NORMAL = 1
Public Const SW_RESTORE = 9
Public Const SW_SHOWMAXIMIZED = 3
Public Const SW_SHOWMINIMIZED = 2
Public Const SW_SHOWMINNOACTIVE = 7
Public Const SW_SHOWNOACTIVATE = 4

Public Function DateiOeffnen(Aktion As String, Pfad As String, _
                                    Ansicht As Long) As Boolean
    Call ShellExecute(hWnd, Aktion, Pfad, "", "", Ansicht)
End Function
Titel: Re: PDF Dokument öffnen, egal wie es heisst?
Beitrag von: daolix am Juli 10, 2013, 14:35:18
Zitat von: wuffwuff2003Pfad = "P:\data\bureau dlt1\CFL CRM T1\SNCF\RT- Liste- Affichage\RT"
Zitat von: Ich quote mich mal selbstPath = "P:\data\bureau dlt1\CFL CRM T1\SNCF\RT- Liste- Affichage\RT\"
Titel: Re: PDF Dokument öffnen, egal wie es heisst?
Beitrag von: wuffwuff2003 am Juli 10, 2013, 15:57:52
Ich musste den Path in Pfad umändern da ich sonst Abstürze bekam mit der Fehlermeldung - variable nicht definiert.
Titel: Re: PDF Dokument öffnen, egal wie es heisst?
Beitrag von: daolix am Juli 10, 2013, 16:25:01
Huch pfad ist mir nicht aufgefallen, stimmt ist ein Schreibfehler von mir, aber ich wollte eigentlich auf den fehlenden Backslsh hinaus am Ende hinaus.
Titel: Re: PDF Dokument öffnen, egal wie es heisst?
Beitrag von: wuffwuff2003 am Juli 10, 2013, 19:29:17
Achso ja das hab ich ausprobiert, einmal mit und einmal ohne Backslash habe gedacht da wäre der Fehler aber das war's auch nicht.
Titel: Re: PDF Dokument öffnen, egal wie es heisst?
Beitrag von: MzKlMu am Juli 10, 2013, 19:42:33
Hallo,
versuche das mal so:
Private Sub Befehl4_Click()

Dim Pfad As String
Dim sFile As String
   
   Pfad = "P:\data\bureau dlt1\CFL CRM T1\SNCF\RT- Liste- Affichage\RT\"
   sFile = Dir$(Pfad & "RT1301*.pdf")
   
   If Len(sFile) > 0 Then
        FollowHyperlink Pfad & Dir(Pfad) 'öffnet das 1.PDF
   End If

End Sub


Das Modul und die Funktion (DateiOeffnen) sind dann beide vollständig überflüssig.
Im Dateinamen kann aber kein Joker (*) übergeben werden. Das würde auch für DateiOeffnen nicht mit dem Joker funktionieren.
Du kannst generell keine Datei mit einem Joker öffnen. Das geht nicht.
Du kannst höchstens nacheinander die PDFs aufrufen in dem Du das Verzeichnis abklapperst und ein PDF nach dem anderen öffnest.
Titel: Re: PDF Dokument öffnen, egal wie es heisst?
Beitrag von: daolix am Juli 10, 2013, 19:54:26
Es passiert nix wenn die Datei nicht vorhanden ist. Dein Modul als auch die Sub (mit der zusätzlichen Dir-Zeile) funktionieren jedenfalls. Ob du nun Followhyperlink oder dein Modul verwendest ist für das nicht funktionieren bei dir nicht ausschlaggebend.

Aber evtl passiert ja so etwas bei dir:

Private Sub Befehl4_Click()

    Dim Pfad As String
    Dim sFile As String
    Pfad = "P:\data\bureau dlt1\CFL CRM T1\SNCF\RT- Liste- Affichage\RT\"
    sFile = Dir$(Pfad & "RT1301*.pdf")
   
    If Len(sFile) > 0 Then
         DateiOeffnen "open", Pfad & sFile, 3
    else
         MSGBOX "Keine Datei mit dem Muster RT1301*.pdf vorhanden,,"Fehler"
    end if
End Sub
Titel: Re: PDF Dokument öffnen, egal wie es heisst?
Beitrag von: MzKlMu am Juli 10, 2013, 20:03:09
Hallo,
hier mal noch ein Vorschlag für das abklappern wenn kein Dateiname bekannt ist.
Private Sub Befehl0_Click()
Dim Dateiname As String
Dim Pfad As String
Pfad = "P:\data\bureau dlt1\CFL CRM T1\SNCF\RT- Liste- Affichage\RT\"
   Dateiname = Dir(Pfad)
   While Dateiname <> ""
       FollowHyperlink Pfad & Dateiname
       Dateiname = Dir
   Wend
End Sub

Es werden nacheinander in jeweils einem Fenster alle Dateien mit der der Endung zugeordneten Anwendung geöffnet.
Ist keine Datei vorhanden, wird auch nichts geöffnet.
Titel: Re: PDF Dokument öffnen, egal wie es heisst?
Beitrag von: wuffwuff2003 am Juli 11, 2013, 12:26:47
So das hat jetzt funktioniert, Danke :) Zum Glück gibt es dieses Forum :)