Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Textfeld anstatt Hyperlinkfeld mit funkt. "RunCommand acCmdInsertHyperlink"

135 views
Skip to first unread message

Sebastian Schelker

unread,
Mar 27, 2007, 2:05:05 AM3/27/07
to
Hallo NG,

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

Jens Schilling

unread,
Mar 27, 2007, 2:12:36 AM3/27/07
to
Hallo, 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


Gunter Avenius

unread,
Mar 27, 2007, 2:19:56 AM3/27/07
to
Hallo Jens,

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

Gunter Avenius

unread,
Mar 27, 2007, 2:21:11 AM3/27/07
to
Hallo Sebastian,

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.

Sebastian Schelker

unread,
Mar 27, 2007, 2:28:07 AM3/27/07
to
Hallo Zusammen,

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?

Jens Schilling

unread,
Mar 27, 2007, 2:29:58 AM3/27/07
to
Hallo, Jens

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

Jens Schilling

unread,
Mar 27, 2007, 2:32:19 AM3/27/07
to
Guten Morgen, Gunter

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

Jens Schilling

unread,
Mar 27, 2007, 2:36:53 AM3/27/07
to
Hallo, Sebastian

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 ?

Sebastian Schelker

unread,
Mar 27, 2007, 2:46:06 AM3/27/07
to
On 27 Mrz., 08:36, "Jens Schilling"

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?

Jens Schilling

unread,
Mar 27, 2007, 2:54:07 AM3/27/07
to
Hallo, Sebastian

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

Sebastian Schelker

unread,
Mar 27, 2007, 3:07:07 AM3/27/07
to
On 27 Mrz., 08:54, "Jens Schilling"

Ist ein schönes Formular. Nur hab ich leider keine Ahnung, wie ich das
in meine DB einbaue...

Sebastian Schelker

unread,
Mar 27, 2007, 3:13:20 AM3/27/07
to
Ne jetzt im ernst.

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


Gunter Avenius

unread,
Mar 27, 2007, 3:15:02 AM3/27/07
to
Hallo Sebastian,

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.

Peter Doering

unread,
Mar 27, 2007, 3:32:11 AM3/27/07
to
Hallo,

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

Jens Schilling

unread,
Mar 27, 2007, 3:40:06 AM3/27/07
to
Hallo, Sebastian

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

Henry Habermacher [MVP Access]

unread,
Mar 27, 2007, 4:30:32 AM3/27/07
to
Hallo Jens

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

Message has been deleted

Jens Schilling

unread,
Mar 27, 2007, 5:05:48 AM3/27/07
to
Hallo, Henry

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

Sebastian Schelker

unread,
Mar 27, 2007, 5:39:40 AM3/27/07
to
Hallo Jens,

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

Peter Doering

unread,
Mar 27, 2007, 6:10:07 AM3/27/07
to
Hallo,

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.

Jens Schilling

unread,
Mar 27, 2007, 6:12:48 AM3/27/07
to
Hallo, Sebastian

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

Sebastian Schelker

unread,
Mar 27, 2007, 7:34:40 AM3/27/07
to
Kaum zu glauben, aber ich habe es dohc hinbekommen....

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

Sebastian Schelker

unread,
Mar 27, 2007, 7:43:23 AM3/27/07
to
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)

Wenn dieses Textfeld dann gefühlt ist, muss es ja erkennen dass es
jetzt follow hyperlink machen muss...

Wie stelle ich das an?

Gruss

Jens Schilling

unread,
Mar 27, 2007, 8:11:36 AM3/27/07
to
Hallo, Sebastian

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

Sebastian Schelker

unread,
Mar 27, 2007, 8:49:40 AM3/27/07
to
Sorry das ich soviele Fragen habe. Aber ich erstaunt, dass etwas was
mit einem Hyperlinkfeld so einfach ist mit ein Textfeld 100x
aufwändiger ist....

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?

Henry Habermacher [MVP Access]

unread,
Mar 27, 2007, 9:22:42 AM3/27/07
to
Hallo Sebastian

"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

Sebastian Schelker

unread,
Mar 28, 2007, 9:37:55 AM3/28/07
to
Hallo zusammen,

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

Jens Schilling

unread,
Mar 28, 2007, 9:48:01 AM3/28/07
to
Hallo, Sebastian

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

Sebastian Schelker

unread,
Mar 29, 2007, 8:20:33 AM3/29/07
to
Hallo NG'ler,

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

Jörg Ostendorp

unread,
Mar 29, 2007, 9:10:53 AM3/29/07
to
Hallo 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

Henry Habermacher [MVP Access]

unread,
Mar 29, 2007, 9:56:05 AM3/29/07
to
Hallo Sebastian

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

Sebastian Schelker

unread,
Apr 3, 2007, 8:06:19 AM4/3/07
to
Hallo Jörg,

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

Jens Schilling

unread,
Apr 3, 2007, 9:46:34 AM4/3/07
to
Hallo, 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 ;-)

Sebastian Schelker

unread,
Apr 4, 2007, 2:29:29 AM4/4/07
to
On 3 Apr., 15:46, "Jens Schilling"
Hallo Jens,

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

Jens Schilling

unread,
Apr 4, 2007, 2:40:39 AM4/4/07
to
Hallo, 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 ?

Sebastian Schelker

unread,
Apr 4, 2007, 2:48:37 AM4/4/07
to
Das war nur ein Schreibfehler. Im code ist es ohne Leerzeichen.

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

Jens Schilling

unread,
Apr 4, 2007, 3:12:31 AM4/4/07
to
Hallo, 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.

0 new messages