Supportnet / Forum / Datenbanken
Datei öffnen über MSCommonDialog
Frage
a big hello out there,
ich müsste Dokumente (*.pdf)öffnen.
Das Ganze soll per button und Ereignisgesteuert über den MSCommonDialog gehen.Diesen anzuzeigen ist kein Problem.Wie zum teufel aber öffne ich das verdammte file.
Hoffe es gibt da draussen jemanden , der mir helfen kann.
Grüsse von Dyonisus
Antwort 1 von Sir_Hilly
da gibts sicher auch ein activex für das..
Gruß
Gruß
Antwort 2 von intel_hasser
Was meinst du mit öffnen? Normalerweise hat der Common Dialog eine Eigenschaft namens Filename, die den Dateinamen der Ausgewählten Datei angibt.
Antwort 3 von .struppi
hallo,
Wenn man über die Filedialogauswahl den Pfad zum Programm erhält, läßt es sich auch mit shell öffnen. Auch Parameterübergaben sind natürlich möglich.
ZB:
set wshshell = CreateObject("WScript.Shell")
wshshell.Run "d:\Programme\Programm.exe",1,false
gruß struppi
Wenn man über die Filedialogauswahl den Pfad zum Programm erhält, läßt es sich auch mit shell öffnen. Auch Parameterübergaben sind natürlich möglich.
ZB:
set wshshell = CreateObject("WScript.Shell")
wshshell.Run "d:\Programme\Programm.exe",1,false
gruß struppi
Antwort 4 von Dyonisos
Hi struppi,
sieht ganz so aus , als würde Dein vorschlag funktionieren. Testweise hab ich Deinen Programmteil genauso übernommen , wie du ihn beschrieben hast. Das eine Fehlermeldung wegen der Pfadangabe kommt, war mir klar. Doch kann ich nicht mit absoluten Pfaden arbeiten, da ja je nach Benutzerauswahl verschiedene Objekte geöffnet werden sollen. Gibt es keine Lösung, um das Ganze variabel zu gestalten ? Und wie bekomme ich den Pfad zur ausgewählten Datei , so dass ich den verwenden kann?
Hi intel hasser,
natürlich krieg ich den Dateinamen angziegt , aber der bringt mir nicht viel, da ich ja nen Pfad bräuchte.
Und mit Öffen meine ich ein pdf-Dokument
(per Doppelclick, oder Auswahl und Öffnen clicken)anzeigen lassen.
Danke für Eure Hilfe. Die Lösung ist greifbar nahe. Wenn Ihr ne Idee habt , um das Problem gänzlich zu lösen, dann postet , please.
Es grüsst Dyonisos
sieht ganz so aus , als würde Dein vorschlag funktionieren. Testweise hab ich Deinen Programmteil genauso übernommen , wie du ihn beschrieben hast. Das eine Fehlermeldung wegen der Pfadangabe kommt, war mir klar. Doch kann ich nicht mit absoluten Pfaden arbeiten, da ja je nach Benutzerauswahl verschiedene Objekte geöffnet werden sollen. Gibt es keine Lösung, um das Ganze variabel zu gestalten ? Und wie bekomme ich den Pfad zur ausgewählten Datei , so dass ich den verwenden kann?
Hi intel hasser,
natürlich krieg ich den Dateinamen angziegt , aber der bringt mir nicht viel, da ich ja nen Pfad bräuchte.
Und mit Öffen meine ich ein pdf-Dokument
(per Doppelclick, oder Auswahl und Öffnen clicken)anzeigen lassen.
Danke für Eure Hilfe. Die Lösung ist greifbar nahe. Wenn Ihr ne Idee habt , um das Problem gänzlich zu lösen, dann postet , please.
Es grüsst Dyonisos
Antwort 5 von intel_hasser
Also der Common Dialog gibt bei Filename auch den Pfad mit an.
Aber ich habe keine Ahnung, wie das unter Access aussieht. Ich nehme das Steuerelement nur unter VB, aber sind ja die selben (selbe ocx).
Aber ich habe keine Ahnung, wie das unter Access aussieht. Ich nehme das Steuerelement nur unter VB, aber sind ja die selben (selbe ocx).
Antwort 6 von .struppi
Hallo,
Also dann eben vollständig.
Folgende Funktion in ein Modul einfügen:
Der Aufruf per Button erfolgt dann so:
DerPfad zur AcroRd32.exe ist fest. Die Dateien werden dynamisch mit der Auswahl über das Dialogfenster übergeben.
Fehlerbehandlung Existenz und Objectvernichtung hab ich mal weggelassen, kann nach Geschmack noch ergänzt werden.
Gruß struppi
Also dann eben vollständig.
Folgende Funktion in ein Modul einfügen:
Public Function AskFile(dir As String, titel As String, Filter As String, index As Long, Flags As Integer) As String
Dim dialog As Object
Dim wshshell As Object
Set dialog = CreateObject("MSComDlg.CommonDialog")
If Filter = "" Then
Filter = "Alle Dateien|*.*"
End If
dialog.Filter = Filter
dialog.FilterIndex = index
dialog.Flags = Flags
dialog.MaxFileSize = 260
dialog.CancelError = False
dialog.DialogTitle = titel
dialog.InitDir = dir
dialog.ShowOpen
AskFile = dialog.FileName
Flags = dialog.Flags
End Function
Der Aufruf per Button erfolgt dann so:
Private Sub Befehl1_Click()
Dim wshshell As Object
Dim Flags As Integer, dateiname, meldung, sql1 As String
Set wshshell = CreateObject("WScript.Shell")
Flags = 0
dateiname = AskFile("", "Datei aussuchen!", "Acrobat Reader Dateien|*.pdf", 1, Flags)
If Err.Number <> 0 Then
meldung = MsgBox("Fehler! Datei kann nicht geöffnet werden!", vbCritical, "FEHLER!"): Exit Sub
End If
wshshell.Run "D:\Programme\Adobe\Acrobat\Reader\AcroRd32.exe " & dateiname, 1, False
End Sub
DerPfad zur AcroRd32.exe ist fest. Die Dateien werden dynamisch mit der Auswahl über das Dialogfenster übergeben.
Fehlerbehandlung Existenz und Objectvernichtung hab ich mal weggelassen, kann nach Geschmack noch ergänzt werden.
Gruß struppi