Habe folgendes Problem.
Ich habe angefangen meine Datenbank (access2000) mit Hyperlinkfeldern
auszustatten. Was bis jetzt gar nicht schlecht funktioniert und dank
dem Befehl "RunCommand acCmdInsertHyperlink" sehr komfortabel ist.
Nun habe ich in mehreren Postings gelesen was die Hyperlinkfelder für
Probleme anrichten können. Bevor ich meine DB auf den Server lade bei
uns im Geschäft, möchte ich noch die Hyperlink felder in Texfelder
ändern.
Nur soll es gleich funktionieren wie jetzt. Ist es möglich die
Funktion "RunCommand acCmdInsertHyperlink" auch bei einem Texfeld
einzubauen?
Gruss
Sebastian
> Ich habe angefangen meine Datenbank (access2000) mit Hyperlinkfeldern
> auszustatten. Was bis jetzt gar nicht schlecht funktioniert und dank
> dem Befehl "RunCommand acCmdInsertHyperlink" sehr komfortabel ist.
>
> Nun habe ich in mehreren Postings gelesen was die Hyperlinkfelder für
> Probleme anrichten können. Bevor ich meine DB auf den Server lade bei
> uns im Geschäft, möchte ich noch die Hyperlink felder in Texfelder
> ändern.
Eine gute Idee.
> Nur soll es gleich funktionieren wie jetzt. Ist es möglich die
> Funktion "RunCommand acCmdInsertHyperlink" auch bei einem Texfeld
> einzubauen?
Schau mal in der Hilfe nach FollowHyperlink.
--
Gruss
Jens
______________________________
1. SEK (SQL Server-Entwickler-Konferenz)
Nürnberg, Sa/So 21./22.4.2007 (ausgebucht)
FAQ: http://www.donkarl.com
Jens Schilling schrieb folgendes:
>> Ich habe angefangen meine Datenbank (access2000) mit
>> Hyperlinkfeldern auszustatten. Was bis jetzt gar nicht schlecht
>> funktioniert und dank dem Befehl "RunCommand acCmdInsertHyperlink"
>> sehr komfortabel ist.
>>
>> Nun habe ich in mehreren Postings gelesen was die Hyperlinkfelder
>> für Probleme anrichten können. Bevor ich meine DB auf den Server
>> lade bei uns im Geschäft, möchte ich noch die Hyperlink felder in
>> Texfelder ändern.
>
> Eine gute Idee.
>
>> Nur soll es gleich funktionieren wie jetzt. Ist es möglich die
>> Funktion "RunCommand acCmdInsertHyperlink" auch bei einem Texfeld
>> einzubauen?
>
> Schau mal in der Hilfe nach FollowHyperlink.
Insert Hyperlink, nicht Follow ;-)
--
Gruß
Gunter
_________________________________________________
Access - FAQ: http://www.donkarl.com
home: http://www.avenius.com - http://www.AccessRibbon.de
SQL Server-Entwickler-Konferenz (SEK1), 21./22.4.2007, Nürnberg
http://www.donkarl.com/?SEK
Sebastian Schelker schrieb folgendes:
> Nur soll es gleich funktionieren wie jetzt. Ist es möglich die
> Funktion "RunCommand acCmdInsertHyperlink" auch bei einem Texfeld
> einzubauen?
Nein. RunCommand acCmdInsertHyperlink kannst Du nur aus einem Hyperlink Feld
aufrufen.
Genau das ist meine Frage. Die Funktion follow Hyperlink kenne ich
schon. Nur muss ich da, wenn ich den Hyperlink einfügen will auf
Menüleiste Extras Hyperlink. Ich möchte aber per Doppelklick das
Fenster öffnen wo ich den Hyperlink einfügen kann.
Ist das möglich in einem Textfeld?
>> Nur soll es gleich funktionieren wie jetzt. Ist es möglich die
>> Funktion "RunCommand acCmdInsertHyperlink" auch bei einem Texfeld
>> einzubauen?
>
> Schau mal in der Hilfe nach FollowHyperlink.
War vielleicht etwas knapp.....
Speichere den Inhalt als reinen Text - wenn's Dir wichtig ist, kannst Du es
im Formular ja blau formatieren wie einen Link - und nutze dann die
FollowHyperlink-Methode.
Zum Einfügen von Dateinamen und Pfad usw. kannst Du einen
Datei-Auswahl-Dialog hernehmen, wie in der FAQ 8.1 Datei-Auswahl-Dialog
(www.donkarl.com/?FAQ8.1) beschrieben und verlinkt ist.
>> Schau mal in der Hilfe nach FollowHyperlink.
> Insert Hyperlink, nicht Follow ;-)
Joo - hab noch vor dem dritten Kaffee gepostet ;-)
Aber Ingrid hat mich auch schon korrigiert bzw. meine Antwort ergänzt.
Sorry - aber vielleicht verstehen wir uns jetzt miss - ich dachte Du
wolltest nun auf Hyperlinks verzichten, oder ?
Es gilt eben die Empfehlung auf Hyperlinks zu verzichten, und statt dessen
reine Textfelder und die FollowHyperlink-Methode zu verwenden - warum willst
Du dann noch Hyperlinks einfügen ?
Es geht lediglich um die Benutzerfreundlichkeit. Wie können unsere
Angestellten den Pfad sonst einfügen? Wenn Sie das Manuell machen
müssen....Ohhhh nee. Das gibt dann nur Katastrophen :)
Deshalb möchte ich auf das Fenster zugreifen, wo ich eine Datei
auswählen kann und der Pfad wird dann Automatisch angelegt. Ist das
nur mit Hyperlinkfeld möglich? Oder hat jemand noch eine Idee?
> Es geht lediglich um die Benutzerfreundlichkeit. Wie können unsere
> Angestellten den Pfad sonst einfügen? Wenn Sie das Manuell machen
> müssen....Ohhhh nee. Das gibt dann nur Katastrophen :)
>
> Deshalb möchte ich auf das Fenster zugreifen, wo ich eine Datei
> auswählen kann und der Pfad wird dann Automatisch angelegt. Ist das
> nur mit Hyperlinkfeld möglich? Oder hat jemand noch eine Idee?
Wie ich schon geschrieben habe - in der FAQ 8.1 Datei-Auswahl-Dialog
(www.donkarl.com/?FAQ8.1) findest Du den Link zum FileDialog von Karsten
Pries - dieser ist für Dein Anliegen die gängige Empfehlung .
Ist ein schönes Formular. Nur hab ich leider keine Ahnung, wie ich das
in meine DB einbaue...
Wie kann mir das Formular helfen beim Hyperlink einfügen?
Wie muss das eingebaut werden?
Was muss ich verknüpfen?
Ich brauch das ding für ca. 60 textfelder in die ein Hyperlink
kommt....
Gibt es eine VBA prozedur das Formualr auf zu rufen?
Bitte sagt mir wie das ding funktioniert. Bin noch zu neu auf Access
um das mit einem Blick zu sehen....
Sebastian Schelker schrieb folgendes:
>> Wie ich schon geschrieben habe - in der FAQ 8.1
>> Datei-Auswahl-Dialog (www.donkarl.com/?FAQ8.1) findest Du den Link
>> zum FileDialog von Karsten Pries - dieser ist für Dein Anliegen
>> die gängige Empfehlung . --
> Ist ein schönes Formular. Nur hab ich leider keine Ahnung, wie ich
> das in meine DB einbaue...
Dann schau Dir doch die Besipieldatenbank und deren Code dazu an. In der
KnowHow (www.freeaccess.de) ist dazu auch ein Besipiel enthalten.
Sebastian Schelker wrote:
> Bitte sagt mir wie das ding funktioniert. Bin noch zu neu auf Access
> um das mit einem Blick zu sehen....
http://groups.google.de/group/microsoft.public.de.access/msg/cb50313129369054?hl=de&
Gruss - Peter
--
Ich beantworte keine Fragen per Email.
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com
>> Wie ich schon geschrieben habe - in der FAQ 8.1 Datei-Auswahl-Dialog
>> (www.donkarl.com/?FAQ8.1) findest Du den Link zum FileDialog von
>> Karsten Pries - dieser ist für Dein Anliegen die gängige Empfehlung .
> Ist ein schönes Formular. Nur hab ich leider keine Ahnung, wie ich das
> in meine DB einbaue...
Das Formular ist nicht das Wichtige - das dient Dir nur zur Demo; wichtig
ist das Klassenmodul <Filedialog> ; das importierst Du Dir zunächst in Deine
DB.
Dann kannst Du Dir ja einmal ein Testformular anlegen, auf dem Du ein
Textfeld platzierst, und ein Command-Button. Im folgenden ein Beispiel, um
z.B. den Pfad einer Textdatei einzufügen, diesen Code füge einmal in das
Ereignis beim Klicken des Command-Buttons ein; ein paar Kommentare habe ich
Dir hineingeschrieben :
---- Code Start
Dim fd As New FileDialog
'Damit erstellen wir ein Objekt der Klasse FileDiaolog
Dim strDatei As String
'die Stringvariable, die den Pfad aufnehmen wird
With fd
'Du kannst z.B. einen Titel für das Dialogfenster vergeben
.DialogTitle = "Vorhandene Vorlage einfügen "
'Ein Verzeichnis vorgeben, hier das Verzeichnis der aktuellen
Datenbank
.DefaultDir = CurrentProject.Path
'Alternativ könntest Du z.B. auch .DefaultDir = "C:\" verwenden, oder
'oder .DefaultDir = "C:\DeinVerzeichnisname"
'Dann kannst Du Filter vorgeben,
'Da ich von einer Textdatei oben geschrieben habe, bieten sich
' die gängigen Formate wie DOT, DOC, usw. an.
' Der letzte Filter ermöglicht die Anzeige aller Dateien
' Die Filterbox (mit max. 5 Werten) füllen
.Filter1Text = "Word-Dateien (*.doc)"
.Filter1Suffix = "*.doc"
.Filter2Text = "Word-Vorlagen (*.dot)"
.Filter2Suffix = "*.dot"
.Filter3Text = "RTF-Dateien (*.rtf)"
.Filter3Suffix = "*.rtf"
.Filter4Text = "Text-Dateien (*.txt)"
.Filter4Suffix = "*.txt"
.Filter5Text = "Alle Dateien (*.*)"
.Filter5Suffix = "*.*"
'Wenn Du in dem Dialog eine Datei gewählt hast,
'wird hier der Variablen strDatei der Wert Deiner Auswahl übergeben.
strDatei = .ShowOpen
End With
'Und zum Schluss kannst Du nun den Wert der Variablen in Dein formularfeld
einfügen :
Me.DeinTextfeld = strDatei
----- Code Ende
Nun ja - alles Andere schaust Du Dir in der Klasse selbst einmal an, Karsten
hat diese ja auch kommentiert; und bei konkreten Problemen kommst Du halt
hierher zurück ;-)
quoting Jens Schilling:
> Sorry - aber vielleicht verstehen wir uns jetzt miss - ich dachte Du
> wolltest nun auf Hyperlinks verzichten, oder ?
> Es gilt eben die Empfehlung auf Hyperlinks zu verzichten, und statt
> dessen reine Textfelder und die FollowHyperlink-Methode zu verwenden
> - warum willst Du dann noch Hyperlinks einfügen ?
Ich glaube, es geht nur darum, dass er nun die Funktionalität von Access bei
Hyperlink Feldern in Textfeldern nachbilden will. Das geht, Dein
Vorkaffeeposting war wohl schon richtig.
Gib' beim Doppeklick Ereignis folgende VBA Code Zeile ein
Application.FollowHyperlink Me!DeinFeld, , True
HTH
Henry
--
Keine E-Mails auf Postings in NGs. Danke.
KB: http://support.microsoft.com/default.aspx
FAQ: http://www.donkarl.com
OH: Online Hilfe (Taste F1)
Downloads: http://www.dbdev.org
> Ich glaube, es geht nur darum, dass er nun die Funktionalität von
> Access bei Hyperlink Feldern in Textfeldern nachbilden will. Das
> geht, Dein Vorkaffeeposting war wohl schon richtig.
Nein - leider nicht, wie aus dem weiteren Thread hervorgeht,denn ...
> Application.FollowHyperlink Me!DeinFeld, , True
dies ist zwar wohl letztlich auch das Ziel - aber es geht tatsächlich
zunächst um einen Dialog, um Pfad und Dateinamen in die DB einzufügen.
Deine Anweisungen konnte ich noch einigermassen umsetzen. Doch das mit
dem Klassenmodul versteh ich hinten und vorne nicht.
Es kommen Fehlermeldung beim Code für den Button: Es makiert "Dim fd
As New FileDialog"
Beim Klassenmodul bei: "Option Compare Database"
An was kann das liegen?
Gibt es nicht eine leichtere Lösung, für Leute die VB nicht so
verstehen?
gruss
sebastian
Sebastian Schelker wrote:
> Deine Anweisungen konnte ich noch einigermassen umsetzen. Doch das mit
> dem Klassenmodul versteh ich hinten und vorne nicht.
>
> Es kommen Fehlermeldung beim Code für den Button: Es makiert "Dim fd
> As New FileDialog"
>
> Beim Klassenmodul bei: "Option Compare Database"
>
> An was kann das liegen?
Dann hast du wohl kein Klassen-, sondern Standard-Modul angelegt. In dem
Link, den ich gepostet hatte, hat Acki eine Schritt-fuer-Schritt-Anleitung
gepostet. Als Ergaenzung dazu: Wenn du das neue Klassenmodul speicherst,
muss es den Namen "FileDialog" bekommen, damit du es ...
... As New FileDialog
... deklarieren kannst.
> Gibt es nicht eine leichtere Lösung, für Leute die VB nicht so
> verstehen?
Das Verstaendnis kommt schon mit der Zeit.
> Deine Anweisungen konnte ich noch einigermassen umsetzen. Doch das mit
> dem Klassenmodul versteh ich hinten und vorne nicht.
Geh mal so vor, wie in dem Link beschrieben, den Peter Dir genannt; ich
kopiere es Dir jetzt hier mal hinein:
.....
Lade Dir die FileDialog.zip von:
http://www.softwerft.de/download/FileDialog.zip
Entpacke sie irgendwohin, Du brauchst die Datei
FileDialog.cls
Aktiviere Access
Öffne den VBA-Editor (ALT-F11)
Wähle Einfügen - Klassenmodul
Wähle Einfügen - Datei
Suche die FileDialog.cls
......
> Es kommen Fehlermeldung beim Code für den Button: Es makiert "Dim fd
> As New FileDialog"
Das erledigt sich von allein, wenn du die Klasse korrekt importiert hast...
> Gibt es nicht eine leichtere Lösung, für Leute die VB nicht so
> verstehen?
Es ist so schwierig nicht - und wenn Du etwas nicht verstehst, kommst Du
halt wieder her...
Nun funktioniert der Command button und öffnet mein Verzeichniss. Das
mit dem übergeben an das Texfeld im gleichen Formlar (fmr_Einfügen
Hyperlink) wie der Button ist auch.
Nun habe ich die Nächste Frage.
Ich möchte das oben erwähnte Formular nur als zwischen Formular
verwenden. Ich stell mir das so vor:
Ich habe ca. 60 Texfelder wo Hyperlinks hinterlegt werden können. Ich
möchte Natürlich nicht für jedes Feld einen Durchsuchen Button
errichten der das Verzeichniss öffnet. Sonder bei den 60 Textfeldern
bei Ereigniss Doppelklick das Formular fmr_Einfügen Hyperlink öffnen
und dessen Resultat an das entsprechende Textfeld übergeben.
Ist das möglich?
Ah, und wie lautet der VB code für follow hyperlink. Ich bekomme nur
Fehlermeldungen...
Nochmals Danke für eure Hilfe. Ohne euch hät ich das niemals
geschafft.
Gruss
Sebastian
Ist es möglich die Prozedur die ich bis jetzt auf dem Command button
hatte beim Textfeld und Ereigniss Doppelklick einzufügen? (nehme an
das geht problemslos)
Wenn dieses Textfeld dann gefühlt ist, muss es ja erkennen dass es
jetzt follow hyperlink machen muss...
Wie stelle ich das an?
Gruss
> Muss das Glaubich nochmals erklären. War ziemlich blöd geschrieben.
>
> Ist es möglich die Prozedur die ich bis jetzt auf dem Command button
> hatte beim Textfeld und Ereigniss Doppelklick einzufügen? (nehme an
> das geht problemslos)
Richtig....
> Wenn dieses Textfeld dann gefühlt ist, muss es ja erkennen dass es
> jetzt follow hyperlink machen muss...
Nee - von alleine nicht ;-)
Du brauchst so etwas :
Application.FollowHyperlink Me!DeinFeldname, , True
Ich nutze dafür eigentlich gern den Doppelklick, aber den möchtest Du ja für
den Dialog verwenden. Also musst Du Dir dann entweder einen Button einfügen,
oder aber - was ich manchmal mache - ein Bezeichnungsfeld dafür hernehmen.
Ok das würde zwar funktionieren. Ist aber enorm aufwändig.
Ich kann doch nicht für 60 texfelder button anlegen. Diese risiege
prozedur hinterran. Das ging mit Hyperlinkfeld ohne button mit mini
prozedur die nicht agepasst werden musste.
Gibt es noch andere, schnellere und weniger aufwändige methoden?
"Sebastian Schelker" <sebastian...@gmx.ch> wrote in message
news:1174999780....@o5g2000hsb.googlegroups.com...
Pack die Prozedur in eine Function rein, also statt:
Private Sub DeinFeld_DblClick(Cancel As Integer)
...
End Sub
Machst Du:
Private Function SelectHyperlink()
...
End Function
Das was drin ist ist identisch, ausser dass Du Cancel nicht setzen kannst.
Wenn Du Canceln willst, musst Du hier
DoCmd.CancelEvents
reinschreiben.
Nun wählst Du alle 60 Textfelder aus und öffnest die Eigenschaften (jetzt
hast Du nur noch die, die bei der Mehrfachauswahl vorkommen).
Nun schreibst Du beim Ereignis "Bei Doppeklick" einfach rein:
=SelectHyperlink()
Statt me!DeinTextFeld musst Du noch den Code so ändern, dass
Screen.ActiveControl verwendet wird, damit das richtige Textfeld den Text
dann erhält.
Also z.B.
...
Dim ctl As Control
ctl = Screen.ActiveControl
ctl.Value = <DeinHyperlink-Text>
Dann sollte das eigentlich gehen.
Gruss
Henry
Danke nochmals für eure Hilfe. Habe jetzt selbst noch ein bischen an
dem VBA code gebastelt und habe es hinbekommen, dass ich nur das
Texfeld brauche und keinen Button um den Hyperlink einzufügen.
Hier der VBA code:
Private Sub Dokument1_Click()
If Len(Trim(Nz(Me!Dokument1))) = 0 Then
Dim fd As New FileDialog
'Damit erstellen wir ein Objekt der Klasse FileDiaolog
Dim strDatei As String
'die Stringvariable, die den Pfad aufnehmen wird
With fd
'Du kannst z.B. einen Titel für das Dialogfenster vergeben
.DialogTitle = "Einfügen Hyperlink "
'Ein Verzeichnis vorgeben, hier das Verzeichnis der aktuellen
Datenbank '
.DefaultDir = "C:\"
'Alternativ könntest Du z.B. auch .DefaultDir = "C:\" verwenden,
oder
'oder .DefaultDir = "C:\DeinVerzeichnisname"
'Dann kannst Du Filter vorgeben,
'Da ich von einer Textdatei oben geschrieben habe, bieten sich
' die gängigen Formate wie DOT, DOC, usw. an.
' Der letzte Filter ermöglicht die Anzeige aller Dateien
' Die Filterbox (mit max. 5 Werten) füllen
.Filter1Text = "Word-Dateien (*.doc)"
.Filter1Suffix = "*.doc"
.Filter2Text = "PDF-Dateien (*.pdf)"
.Filter2Suffix = "*.pdf"
.Filter3Text = "RTF-Dateien (*.rtf)"
.Filter3Suffix = "*.rtf"
.Filter4Text = "Text-Dateien (*.txt)"
.Filter4Suffix = "*.txt"
.Filter5Text = "Alle Dateien (*.*)"
.Filter5Suffix = "*.*"
'Wenn Du in dem Dialog eine Datei gewählt hast,
'wird hier der Variablen strDatei der Wert Deiner Auswahl
übergeben.
strDatei = .ShowOpen
End With
'Und zum Schluss kannst Du nun den Wert der Variablen in Dein
formularfeld
einfügen:
Dokument1 = strDatei
Else
Application.FollowHyperlink Me.Dokument1
End If
End Sub
> Danke nochmals für eure Hilfe. Habe jetzt selbst noch ein bischen an
> dem VBA code gebastelt und habe es hinbekommen, dass ich nur das
> Texfeld brauche und keinen Button um den Hyperlink einzufügen.
Prima - und danke für die Rückmeldung.
Habe abermals eine Frage.
Hier das Teilstück des Codes um welches sich meine Frage dreht:
'Ein Verzeichnis vorgeben, hier das Verzeichnis der aktuellen
Datenbank '
.DefaultDir = "C:\"
Gibt es eine Möglichkeit das Verzeichniss einzuschrenken? So wie es
jetzt angegeben ist ("C:\"), lande ich zwar auf dem Laufwerk C, kann
dann aber Manuel immer noch ein anderes Verzeichniss anwehlen z.B:
eine Server etc.
Ich möchte aber, dass der User auf "H:\_Alle\Berlac Wissenstranfer\BEK
Dokumente" landet und den link nur aus dem Ordner BEK Dokumente und
dessen Unterordner holen kann.
Danke schon Mal für euren Support.
Gruss
Sebastian
> [FileDialog]
> 'Ein Verzeichnis vorgeben, hier das Verzeichnis der aktuellen
> Datenbank '
>
>
> .DefaultDir = "C:\"
>
>
> Gibt es eine Möglichkeit das Verzeichniss einzuschrenken? So wie es
> jetzt angegeben ist ("C:\"), lande ich zwar auf dem Laufwerk C, kann
> dann aber Manuel immer noch ein anderes Verzeichniss anwehlen z.B:
> eine Server etc.
>
> Ich möchte aber, dass der User auf "H:\_Alle\Berlac Wissenstranfer\BEK
> Dokumente" landet und den link nur aus dem Ordner BEK Dokumente und
> dessen Unterordner holen kann.
Beim Datei-Öffnen-Dialog IMHO nein (allenfalls über einen Hook). Überprüfe
doch einfach mit instr(), ob Dein DefaultDir im zurückgegebenen filename
auftaucht. Ansonsten bleibt Dir auch noch der Weg über ein eigenes
Auswahlformular für das Verzeichnis.
--
Grüßle vom Bodensee
Jörg Ostendorp
- Access-FAQ: www.donkarl.com
- my home: www.meersburg.de
quoting Sebastian Schelker:
> 'Ein Verzeichnis vorgeben, hier das Verzeichnis der aktuellen
> Datenbank '
>
>
> .DefaultDir = "C:\"
>
>
> Gibt es eine Möglichkeit das Verzeichniss einzuschrenken? So wie es
> jetzt angegeben ist ("C:\"), lande ich zwar auf dem Laufwerk C, kann
> dann aber Manuel immer noch ein anderes Verzeichniss anwehlen z.B:
> eine Server etc.
>
> Ich möchte aber, dass der User auf "H:\_Alle\Berlac Wissenstranfer\BEK
> Dokumente" landet und den link nur aus dem Ordner BEK Dokumente und
> dessen Unterordner holen kann.
.DefaultDir = "H:\_Alle\Berlac Wissenstranfer\BEK Dokumente"
'Datei auswählen lassen
'anschliessend kontrollieren
If Left(strDateiAndPfad, Len(.DefaultDir)) <> .DefaultDir Then
MsgBox 'Sie haben gemogelt und das Verzeichnis gewechselt, sie Böser!"
End If
Danke schon Mal für deine Hilfe.
Jörg könntest du mir den vba code näher beschreiben den du
ansprichsts? Komme so nicht ganz mit beim umsetzten.
Gruss
Sebastian
> Jörg könntest du mir den vba code näher beschreiben den du
> ansprichsts? Komme so nicht ganz mit beim umsetzten.
Du solltest den Code zitieren, auf den Du bezug nimmst, sonst muss jeder
zunächst erst schauen, worum es geht.
Ein Vorschlag von Jörg lautet, den Pfad mittels instr() zu prüfen, dass
könntest Du durch folgende Änderungen im Code tun :
Füge zunächst diese beiden Zeilen Deinem bestehenden Code hinzu (den Pfad
prüfst Du natürlich noch einmal) :
Dim strPath As String 'Der Standardpfad
strPath = "H:\_Alle\Berlac Wissenstranfer\BEKDokumente"
Ändere die Zeile .DefaultDir = "H:\_Alle\Berlac Wissenstranfer\BEK
Dokumente"
in : .DefaultDir = strPath
Und nach der Zeile : strDatei = .ShowOpen kannst Du Deine Prüfungen wie
folgt einbauen :
If strDatei="" then
exit sub
else
If InStr(1, strDatei, strPath) > 0 Then
Me!Dokument1 = strDatei
Else
MsgBox "Dieser Pfad ist nicht erlaubt"
Exit Sub
End If
End If
Das ist ungetestet - ich hoffe, ich hab' nichts übersehen ;-)
Das meisste hat super geklappt. Vielen Dank! :) Jedoch .DefaultDir =
strPath springt beim öffnen des Hyperlink einfügen Fensters nicht mehr
auf H:\_Alle\Berlac Wissenstranfer\BEK Dokumente sonder auf den
Desktop. An was kann das liegen?
Gruss
Sebastian
> Das meisste hat super geklappt. Vielen Dank! :) Jedoch .DefaultDir =
> strPath springt beim öffnen des Hyperlink einfügen Fensters nicht mehr
> auf H:\_Alle\Berlac Wissenstranfer\BEK Dokumente sonder auf den
> Desktop. An was kann das liegen?
Vermutlich an den Leerzeichen im Pfad - oder ist das jetzt nur ein
Tippfehler hier ?
Trotzdem folgt er dem code nicht. Hier nochmals der komplette code.
Vieleicht fällt dir was auf...
Private Sub Dokument1_DblClick(Cancel As Integer)
If Len(Trim(Nz(Me!Dokument1))) = 0 Then
Dim fd As New FileDialog
'Damit erstellen wir ein Objekt der Klasse FileDiaolog
Dim strDatei As String
'die Stringvariable, die den Pfad aufnehmen wird
Dim strPath As String 'Der Standardpfad
strPath = "H:\_Alle\Berlac Wissenstranfer\BEKDokumente"
With fd
'Du kannst z.B. einen Titel für das Dialogfenster vergeben
.DialogTitle = "Einfügen Hyperlink "
'Ein Verzeichnis vorgeben, hier das Verzeichnis der aktuellen
Datenbank '
.DefaultDir = strPath (Hier fogt er dem Pfad nicht. Was er
eigentlich tun sollte, jedoch lande ich jetzt auf dem Desktop)
'Alternativ könntest Du z.B. auch .DefaultDir = "C:\" verwenden,
oder
'oder .DefaultDir = "C:\DeinVerzeichnisname"
'Dann kannst Du Filter vorgeben,
'Da ich von einer Textdatei oben geschrieben habe, bieten sich
' die gängigen Formate wie DOT, DOC, usw. an.
' Der letzte Filter ermöglicht die Anzeige aller Dateien
' Die Filterbox (mit max. 5 Werten) füllen
.Filter1Text = "PDF-Dateien (*.pdf)"
.Filter1Suffix = "*.pdf"
.Filter2Text = "Word-Dateien (*.doc)"
.Filter2Suffix = "*.doc"
.Filter3Text = "Text-Dateien (*.txt)"
.Filter3Suffix = "*.txt"
.Filter4Text = "Alle-Dateien (*.*)"
.Filter4Suffix = "*.*"
'Wenn Du in dem Dialog eine Datei gewählt hast,
'wird hier der Variablen strDatei der Wert Deiner Auswahl
übergeben.
strDatei = .ShowOpen
End With
If strDatei = "" Then
Exit Sub
Else
If InStr(1, strDatei, strPath) > 0 Then
Me!Dokument1 = strDatei
Else
MsgBox "Dieser Pfad ist nicht erlaubt. Nur Links aus H:\_Alle
\Berlac Wissenstranfer\BEK Dokumente"
Exit Sub
End If
End If
Else
Application.FollowHyperlink Me.Dokument1
End If
End Sub
Gruss
Sebastian
> Das war nur ein Schreibfehler. Im code ist es ohne Leerzeichen.
> strPath = "H:\_Alle\Berlac Wissenstranfer\BEKDokumente"
Hier sehe ich zwar noch immer Leerzeichen - aber daran liegt es wohl doch
nicht - hab's grad mal probiert....
Trotzdem wird es am Pfad liegen - überprüfe diesen noch einmal....
Ich hab' Deinen Code eben getestet - nur wenn ich einen ungültigen Pfad
übergebe, öffnet mir der Filedialog den zuletzt genutzten Pfad - und das
wird bei Dir halt der Desktop gewesen sein.