Supportnet Computer
Planet of Tech

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ß

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


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

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

Antwort 6 von .struppi

Hallo,
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

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: