Hyperlink einfügen aus vorgegebenem Ordner
Hallo, ich möchte beim einfügen eines Links direkt auf einen bestimmten Ordner springen ohne dass ich mich immer durch den Explorer durchhangeln muss. Leider kann man im Menü auch keinen Favoriten anlegen.
Momentan verwende ich folgende Prozedur um einen Link einzufügen; hierbei wird gleich ein Statustext im Texteld angelegt. Aber dann fängt das durchsuchen an.
Dim strNr As String
Dim strqLink As String
strJahr = Me.TxtJahr
strNr = Me.lfdNr
strqLink = "Messergebnisse-" & strNr & "-" & strJahr
Me.Messergebnisse = strqLink 'Feld Meßergebnisse mit Link kennzeichnen
DoCmd.GoToControl "Messergebnisse"
DoCmd.RunCommand acCmdInsertHyperlink
Antwort schreiben
Antwort 1 von RalfH vom 16.05.2020, 10:27 Options
Hallo,
von was für einen Programm sprichst du?
Gruß Ralf
Antwort 2 von Lemmy49 vom 19.05.2020, 09:53 Options
Hallo Ralf, ich möchte dies in Access (VBA) programmieren.
Gruß Dieter
Antwort 3 von RalfH vom 19.05.2020, 10:59 Options
Hallo,
Dann schau mal nach den Begriffen
FollowHyperlink-Methodeund
Follow, das müsste dich weiterbringen.
Beispiel:
FollowHyperlink "c:\DeinOrdner\DeinWordDokument.doc"
öffnet Word und lädt das angegebene Dokument.
Gruß Ralf
Antwort 4 von lemmy49 vom 19.05.2020, 11:16 Options
Hallo, danke für Antwort, aber soweit war ich schon mal.
Vielleicht wurde meine Frage nicht ganz verstanden.
Es öffnet sich das Popup Fenster (bei Einfügen Hyperlink) wo die Datenbank sich befindet. Und dann muss ich mich durch den Explorer durcharbeiten.
Direkt auf ein Dokument verknüpfen wäre kein Problem. Ich will dass Access innerhalb des Popups auf den bestimmten Ordner geht und ich möchte dann daraus das entsprechende Dokument auswählen, da es verschiedene gibt.
Hoffe du verstehst was ich meine, kann leider keinen Anhang beilegen.
Grüße
Antwort 5 von lorf55 vom 22.05.2020, 11:08 Options
Hallo,
also wenn man statt für Word den Explorer anwendet funktioniert es auch nicht. Z.B. in der Form:
Application.FollowHyperlink "C:\WINDOWS\explorer.exe", "C:\Temp\", True
Und gar nicht geht:
Application.FollowHyperlink "C:\WINDOWS\explorer.exe C:\Temp\", , True
Was geht ist ein Button z.B. mit:
Dim stAppName, stPfad As String
stPfad = "C:\Temp\"
stAppName = "C:\WINDOWS\explorer.exe" & " " & stPfad
Call Shell(stAppName, 1)
Die Explorer-Befehlszeilenparameter findet man
hier.
Grüße und so
lorf
Antwort 6 von lemmy49 vom 26.05.2020, 13:00 Options
Hallo, zwar danke ich für die Beiträge, aber dies löst mein Problem nicht.
Ich drücke es mal simpel aus:
Klick in das Hyperlink-Feld, rechte Maustaste, Hyperlink bearbeiten (natürlich alles über VBA), nun geht das Fenster auf wo ich das Dokument suchen muß welches sich in einem bestimmten Ordner befindet.
Und genau diesen Befehl zu diesem Ordner fehlt mir so dass ich nur noch das entsprechende Dokument anklicken und mit OK einfügen muß.
(Access springt immer auf den Ordner wo sich die DB befindet).
Auf der Microsoft Seite gibt es auch keine Antwort; evtl. muß ich mich mal an den Support wenden.
Grüße
Antwort 7 von lorf vom 26.05.2020, 21:09 Options
Hallo lemmy,
also ich glaube, du hast nur die Möglichkeit, den Standarddatenbankordner unter Extras-Optionen-Allgemein zu ändern, wenn du mit deiner Methode weiterkommen willst.
Oder du versuchst der FollowHyperlink-Methode den Ort der Dateien über eine Tabelle zu sagen, so dass du nicht jedes Mal den Hyperlink editieren musst, sondern nur diese Tabelle. Dazu kannst du vielleicht dieses Beispiel aus der Access2000-Hilfe anpassen:
Zitat:
Hyperlink-Eigenschaft: Beispiel
In der Prozedur HyperlinkErstellen des folgenden Beispiels werden die Hyperlink-Eigenschaften eines Befehlsschaltfläche-, Bezeichnungsfeld- oder Bild-Steuerelements auf die Adresse und Unteradresse eingestellt, die an die Prozedur übergeben werden. Das Argument für die Einstellung der Adresse ist ein optionales Argument, da für ein Hyperlink zu einem Objekt der aktuellen Datenbank nur die Einstellung der Unteradresse verwendet wird. Wenn Sie dieses Beispiel testen möchten, erstellen Sie ein Formular mit zwei Textfeld-Steuerelementen (txtAdresse und txtUnteradresse) sowie einer Befehlsschaltfläche (cmdLinkFolgen) und fügen folgenden Code in das Modul des Formulars ein:
Private Sub cmdLinkFolgen_Click()
HyperlinkErstellen Me!cmdLinkFolgen, Me!txtUnteradresse, _
Me!txtAdresse
End Sub
Sub HyperlinkErstellen(ctlAusgewählt As Control, _
strUnteradresse As TextBox, Optional strAdresse As TextBox)
Dim hlk As Hyperlink
Select Case ctlAusgewählt.ControlType
Case acLabel, acImage, acCommandButton
Set hlk = ctlAusgewählt.Hyperlink
With hlk
If Not IsMissing(strAdresse) Then
.Address = strAdresse
Else
.Address = ""
End If
.SubAddress = strUnteradresse
.Follow
.Address = ""
.SubAddress = ""
End With
Case Else
MsgBox "Das Steuerelement '" & ctlAusgewählt.Name_
& "' unterstützt keine Hyperlinks."
End Select
End Sub
Gruß
lorf
Antwort 8 von lemmy49 vom 27.05.2020, 14:00 Options
Hallo lorf,
danke für deine Unterstützung, aber dies hilft auch nicht.
Thema Standarddatenbankordner kannt ich schon, nur kann ich eingeben was ich will, beim einfügen Hyperlink wird im Menüfeld "suchen in" immer der Ordner angezeigt wo die Datenbank gespeichert ist.
Denke das Feld gilt nur für das Abspeichern einer neuen DB, das funktioniert.
Die angegebene Prozedur funktioniert zwar, aber es öffnet sich nur der Explorer, dies bringt mir natürlich nichts, da ich ja die im Zielordner gesuchte Datei (natürlich als Link) im entsprechenden Feld im Formular einfügen will.
Momentan sieht meine Prozedur so aus:
(bewirkt also nur dass im Feld wo verlinkt werden kann der gewünschte Text steht und nicht der ganze Pfad)
Dann muß ich mich halt umständlich im Feld "suchen in" durchhangeln.
Private Sub Bf_MV_Click()
On Error GoTo errorhandler
Dim strJahr As String
Dim strNr As String
Dim strqLink As String
strJahr = Me.TxtJahr
strNr = Me.lfdNr
strqLink = "Messergebnisse-" & strNr & "-" & strJahr
Me.Messergebnisse = strqLink 'Feld Meßergebnisse mit Link kennzeichnen
DoCmd.GoToControl "Messergebnisse"
DoCmd.RunCommand acCmdInsertHyperlink
Exit Sub
errorhandler:
If Err.Number = 2501 Then
Exit Sub
End If
End Sub
Gruß lemmy