VB6/Access: Bei Klick Datei öffnen

Hallo,

ich bearbeite gerade eine Literaturdatenbank in Access. Viele der Literaturquellen sind als pdf-Datei vorhanden und ich möchte, daß sich beim Anklicken eines Formularfeldes die entsprechende Datei öffnet.

Ein simples Verknüpfen des Feldes mit der Datei mittels Hyperlink funktioniert nicht. Also eine Ereignisprozedur erstellen. Habe leider überhaupt keine Ahnung und weiß schon nicht mal, ob ich dann den Ausdrucks-, Makro oder Codegenerator wählen muß. Nehme mal an, daß der Code-Generator die richtige Wahl ist, lande also bei VisualBasic.

Für Profis ist dieses Problemchen wahrscheinlich recht simpel und ich würde mich sehr freuen, wenn mir einfach jemand schreiben könnte, was ich zwischen

Private Sub Standort_Click() und

End Sub

einfügen muß, um den gewünschten Effekt zu erzielen. Zumindest nehme ich mal an, daß dort irgendeine Befehlszeile hingehört.

Vielen vielen Dank schon mal!

Hallo,

Ebenfalls Hallo,

ich bearbeite gerade eine Literaturdatenbank in Access. Viele
der Literaturquellen sind als pdf-Datei vorhanden und ich
möchte, daß sich beim Anklicken eines Formularfeldes die
entsprechende Datei öffnet.

Ein simples Verknüpfen des Feldes mit der Datei mittels
Hyperlink funktioniert nicht. Also eine Ereignisprozedur
erstellen. Habe leider überhaupt keine Ahnung und weiß schon
nicht mal, ob ich dann den Ausdrucks-, Makro oder
Codegenerator wählen muß. Nehme mal an, daß der Code-Generator
die richtige Wahl ist, lande also bei VisualBasic.

ja, er ist die richtige Wahl

Für Profis ist dieses Problemchen wahrscheinlich recht simpel
und ich würde mich sehr freuen, wenn mir einfach jemand
schreiben könnte, was ich zwischen

Private Sub Standort_Click() und

End Sub

einfügen muß, um den gewünschten Effekt zu erzielen. Zumindest
nehme ich mal an, daß dort irgendeine Befehlszeile hingehört.

also, es muss folgendes hinein:

Private Sub Standort\_Click()
Const Prog As String = "C:\Programme\Adobe\Acrobat 5.0\Reader\AcroRd32.exe"
Dim datei As String
datei = Me!Feld.Value
Shell Prog & " " & datei, vbMaximizedFocus
End Sub

die „Const“-Zeile musst Du evtl. noch anpassen. Zwischen den Anführungszeichen muss der Pfad und Dateiname der ausführbaren Datei des Acrobatreaders stehen. Als letztes Zeichen das „“ nicht vergessen.
In der Zeile „datei = Me!Feld.Value“ musst Du das Wort „Feld“ noch ersetzen durch den Namen des Formularfeldes in dem die Angabe zu Pfad und Dateiname der zu öffnenden pdf-Datei steht.

Vielen vielen Dank schon mal!

Bitte
Gruß, tester

Hallo Tester!

Also: jeht nich.
Habe mir sagen lassen, daß evtl. der Term „Me“ problematisch sein könnte, da der erst ab neueren Versionen interpretiert wird (ich habe Office 2000). Ganz davon abgesehen, ist aber eigentlich schon meine Grundidee falsch, da ja so immer die selbe Datei geöffnet würde; es soll sich aber jedes Mal eine andere öffnen.

Nun ja, vielleicht fällt Dir noch ein hilfreicher Tip ein, werde noch ein bißchen Selbsstudium und trial-and-error betreiben und ansonsten bleibt es eben ein bißchen unkomfortabel für den Nutzer.

Thanx für Deinen Einsatz!

Hallo Tester!

Hallo

Also: jeht nich.

bei mir geht es problemlos

Habe mir sagen lassen, daß evtl. der Term „Me“ problematisch
sein könnte, da der erst ab neueren Versionen interpretiert
wird (ich habe Office 2000).

Glaube ich nicht. Habe schon mit Access 97 gearbeitet und da hat „ME“ auch funktioniert.
Welcher Fehler wird in welcher Zeile angezeigt? (Fehlermeldung + Debuggen, fehlerhafte Zeile ist gelb hinterlegt, Klick auf Stopp-Symbol unterbricht das Debuggen)

Ganz davon abgesehen, ist aber
eigentlich schon meine Grundidee falsch, da ja so immer die
selbe Datei geöffnet würde; es soll sich aber jedes Mal eine
andere öffnen.

Das geht nur, wenn in der Datenbank in jedem Datensatz der Dateipfad und Dateiname gespeichert ist. Dieser muss dann in einem Formulartextfeld im Formular angezeigt werden und hieraus kann sich die VBA-Prozedur bedienen. Den Start der VBA-Proz. kann man dann z.B. an einen im Formular eingefügten Button binden.

Nun ja, vielleicht fällt Dir noch ein hilfreicher Tip ein,
werde noch ein bißchen Selbsstudium und trial-and-error
betreiben und ansonsten bleibt es eben ein bißchen
unkomfortabel für den Nutzer.

Thanx für Deinen Einsatz!

Bitte

Gruß, tester

Hallo Tester!

Als Fehlermeldung erhalte ich Laufzeitfehler ‚94‘ und im Debugger ist dann die Zeile datei=ME!Standort.Value gelb hinterlegt. Bei näherer Betrachtung erscheint dann ein HinweisPopUp Standort=0.

Hm.

Grundsätzlich mal eine Frage zu meinem Versuch, mein Ziel mittels Hyperlink zu erreichen: Ich nehme an, daß ich mit einem Link zwar etwas anzeigen, aber eben nichts ausführen kann (wie bei html, wo ich dafür Javascript brauche?)? Jedenfalls wechselt die Bildschirmansicht durchaus zum AcrobatReader, wenn er bereits schon ausgeführt wird, er wird aber eben nicht geöffnet. Nur mal so zum Verständnis.

Viele Grüße!Inka

Hyperlink geht doch
Hallo,

es müsste doch mit einem Hyperlink funktionieren.
Dann benötigt man nicht den Shell-Befehl, wie in der vorherigen Beantwortung.
Schau mal in Dein E-Mail-Postfach, da habe ich eine kleine Muster-mdb geschickt.

Hoffe es funktioniert alles.

Für alle Lesenden,die die Lösung sonst noch interessiert, sei diese noch kurz schematisch dargestellt.

Tabelle "Literatur" mit
 Feld: "PDF" (Inhalt:Link zur PDF-Datei (Pfadangabe/Dateiname))
 
Formular "frm\_Literatur" mit 
 Datenherkunft: "Literatur"
 Beim Anzeigen: [Ereignisprozedur]
 
 darauf:
 Textfeld mit
 Name: "PDF"
 Steuerelementinhalt: PDF
 nach Aktualsierung: [Ereignisprozedur]
 
 Bezeichungsfeld mit
 Name: "PDFÖffnen"
 Schriftfarbe: blau
 Unterstreichung: ja
 Beschriftung: "Literatur anzeigen"
 
VBA-Code im Formularmodul:
 
Private Sub Form\_Current()
Call HyperlinkEinrichten
End Sub
 
Private Sub PDF\_AfterUpdate()
Call HyperlinkEinrichten
End Sub
 
Sub HyperlinkEinrichten()
If IsNull(Me!PDF.Value) Or Me!PDF = "" Then
 Me!PDFÖffnen.Visible = False
Else
 Me!PDFÖffnen.Visible = True
 Me.PDFÖffnen.HyperlinkAddress = Me!PDF.Value
End If
End Sub

Viele Grüße, tester

Hallo Tester!

Freu ob Deiner Mühe - aber das ist genau das, was ich anfangs verwarf, da folgendes passiert (und zwar sowohl bei deiner MusterDB als auch bei meiner eigenen):

Wird der Reader bereits ausgeführt, wird auch die *.pdf-Datei geöffnet - alles fein, braaaav, ja so liiiebe bits und bytes…!

Ist der Reader jedoch noch nicht am Laufen, taucht beim Anklicken ganz kurz, also wirklich so ganz ganz ganz kurz das Reader-Fenster auf, nur so ein aufblitzen, um sofort wieder zu verschwinden. Das versteh ich ja mal gar nicht; entweder er wird ausgeführt oder aber nicht, aber so was???

Viele Grüße Inka

Hallo,

also am Code liegt es definitiv nicht. Bei mir (Acrobat-Reader 6.0) funktioniert es problemlos.

Aber offenbar, haben noch mehr Office-Nutzer das gleiche Problem:

http://www.pdfzone.de/forum/?befehl=show&beitrag=112…
http://www.pdfzone.de/forum/?befehl=show&beitrag=110…
http://www.wcm.at/forum/showthread.php?threadid=194825

Der Fehler betrifft wohl das gesamte Officepaket (Access, Excel, Word) im Zusammenhang mit einer bestimmten Acrobat-Version.

Der dritte Link offenbart hierzu eine Lösung: UPDATE des Acrobat Reader

Vielleicht funktionierts. Viel Erfolg.

tester

Hallo Tester!

Ja, gestern abend hatte ich fast schon von selbst die Vermutung, als ich nämlich feststellte, daß die Verknüpfung zu anderen Dateitypen reibungslos funktioniert, nur zu *.pdf nicht. Also die ganze Zeit überm falschen Programm gegrübelt. Auf jeden Fall wieder was gelernt.
Da leider unsere Administratoren ihre Händchen auf allem haben, was über bloße Anwendung hinausgeht, muß ich jetzt also erstmal einen rantelefonieren und stelle dann noch mal eine kurze Meldung zu Erfolg oder Mißerfolg rein!

Dickes Dankeschön nochmal für Dein Interesse und Deine Hilfe !!
(und falls ich nochmal 'ne Frage habe, schlag ich einfach im Pippi-Langstrumpf-Handbuch nach… ;o)…)

Der Reader wars!

JAWOLLA!!! THANXXX!!