PDA

Vollständige Version anzeigen : Nutzung ActiveX-TreeView für eigenen Explorer


Pille
10.11.2003, 13:08
Nachdem ich mir nun schon so viel Mühe gemacht hab einen eigenen Explorer zu erstellen sollen auch andere was von haben!

Achtet bitte darauf das die OCX-Datei für das TreeView-Element vorhanden ist!

Und vielen Dank für die Anregung von Günter Kramer!

Für Fragen, Anregungen und Kritiken stehe ich natürlich jederzeit zur Verfügung!

In diesem Sinne viel Spaß wünscht

Thomas Pietzsch (Pille) :cool:

Sascha Trowitzsch
09.01.2004, 19:12
Sieht übrigens so aus:

gzoppelt
10.02.2004, 14:38
Hi Thomas,
ich war so glücklich, Deinen Beitrag gefunden habe.
aber ich komme an den anhang nicht ran,
das system tut so, als würde ich schlimmes versuchen,
code stehlen oder so,
kannst du nicht mal ausnahmsweise mir dies dein beispiel
per e-mail schicken: zoppelt@schmolck.de
wäre echt lieb
darfst dir auch was wünschen als belohnung :-)


Gruß
Günther

bluemoon
03.03.2005, 09:59
Hallo,

ich habe da ein kleines Problem mit deinem Explorer.
Wenn ich ihn öffne funktioniert alles.

Ich möchte nun in meiner DB, wenn ich auf den Knopf drücke, dass sich das Frm_TestExplorer öffnet (das funktioniert) auch und wenn ich dann aber auf das Feld klicke um den Explorer anzuzeigen, öffnet er diesen, aber ich sehe die Pfade nicht

Vielleicht kannst du mir helfen.

Danke

Pille
03.03.2005, 10:53
Hallo,

das Thema "Verweise" ist ein sehr leidiges Thema bei VBA für MS Access. Du brauchst unbedingt die OCX-Datei für das TreeView-Control. Ich hab dir als Hilfe eine kleine Word-Datei zur Verfügung gestellt mit Screen-Shoots als Beispiel. Eine andere Erklärung für dein Phänomen hab ich im Augenblich auch nicht parat.

Viel Spaß

bluemoon
03.03.2005, 15:34
hi,

erstmal danke für deine Hilfe

Den Verweis Microsoft Windows Common Controls 6.0 habe ich nicht und ich finde ihn auch nicht in der Hilfe ansonsten habe ich die Verweise so eingetragen

Danke

bluemoon
03.03.2005, 15:36
hallo,

ausserdem gibt er mir noch ne Fehlermeldung aus das er den benutzerdefinierten Typ "Knoten As Node" nicht kennt.

Danke

Pille
03.03.2005, 16:10
Nach der Fehlermeldung ist es eindeutig das es sich um einen fehlenden OCX-Verweis handelt! Du mußt auf deinem PC die Datei "mscomctl.ocx" suchen. In Win 2000 liegt sie z.B. unter "C:\WINNT\system32". Diese mußt du im "Verweis-Fenster" öffnen, dann erscheint auch der entsprechende Eintrag!

Gruß
Pille

bluemoon
04.03.2005, 14:36
Hi,

danke hab die Datei gefunden. Aber er gibt mir immer noch die Fehlermeldung, dass er diesen Datentyp "Node" nicht kennt.

Gruß

Pille
04.03.2005, 14:54
Dann bin ich, ehrlich gesagt, ziemlich ratlos! Kontrollier bitte wirklich nochmal ob die Verweise in "deinem" Programm so eingetragen und aktiviert sind sind wie in meinem Screenshoot, denn das ist wirklich das einzige woran die Sache scheitern kann.

Gruß
Pille

Pille
04.03.2005, 15:06
Du kannst das übrigens auch kontrollieren in dem Du den Objektkatalog öffnest und dort im "Suchen-Feld" den Begriff "Node" eingibst. Er sollte dir dann den Verweis auf die Bibliothek "MSComctrlLib" zeigen. Zum besseren Verständnis in der Anlage nochmal ein Screenshoot.

Gruß
Pille

bluemoon
07.03.2005, 11:07
Hi,

vielen Dank. Jetzt hats geklappt

Ciao

Poppsy
15.08.2005, 16:28
Hallo Pille....

erstmal ein riesen Lob dafür. Dieser Explorer ist einfach genjal und einmalich, find ich.
Bin froh das dies von Dir erstellt worden ist....

Läuft auch prima....

Jetzt habe ich aber folgende Bitte...
Beim Steuerelement Tree.
Sobald ich einen Ordner anklicke deren Verweis gesperrt ist, als der Zugriff verweigert wird, wegen "keine Berechtigung" oder ähnlich... dann kommt die Fehlermeldung

Laufzeitfehler 70, Zugriff verweigert.

Nun möchte ich, dass mir zwar beim klicken auf den gesperrten Ordner zwar eine "Msgbox Meldung" Angezeigt wird, mit der Info, dass der Zugriff werweigert wird, aber nicht unbdingt den "Error MsgBox - Beenden - Debuug "...!
Für den Anwender, der dann was flaschen drückt, kann es erhebliche Folgen haben, wenn er dann in den Programmzeilen rumspielt und was ändert oder löscht....

Wie bekomme ich das hin?
Du hast doch sicherlich eine genjale Programierzeile dafür...

Herzelichen Gruß aus
Berlin....
:.-)
:mrcool:

TommyK
15.08.2005, 18:14
Hallo,

ersetze den Code der Funktion "LesenVerzeichnisInhalt"
durch diesen hier:
<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Function</span> LesenVerzeichnisInhalt(abkntidx <span class="TOKEN">As</span> <span class="TOKEN">Integer</span>)
&nbsp;
<span class="TOKEN">Dim</span> unterverz <span class="TOKEN">As</span> Object, dateien <span class="TOKEN">As</span> Object, verzobj <span class="TOKEN">As</span> Object, knt <span class="TOKEN">As</span> Node
<span class="TOKEN">Dim</span> kntname <span class="TOKEN">As</span> <span class="TOKEN">String</span>
&nbsp;
<span class="REM">'ist gew&auml;hlter Node ein Laufwerk</span>
<span class="TOKEN">On Error GoTo</span> LesenVerzeichnisInhalt_Error
&nbsp;
<span class="TOKEN">If</span> Left(Me.BaumAnzeige.Nodes(abkntidx).Image, 5) = &quot;drive&quot; <span class="TOKEN">Then</span>
<span class="REM"> 'wenn Laufwerk nicht bereit -&gt; Abbruch</span>
<span class="TOKEN">If</span> <span class="TOKEN">Not</span> CreateObject(&quot;Scripting.FileSystemObject&quot;).GetDrive(Me.BaumAnzeige.Nodes(abkntid x)).isready <span class="TOKEN">Then</span> <span class="TOKEN">Exit Function</span>
<span class="REM"> 'ansonsten Backslash anh&auml;ngen</span>
kntname = Me.BaumAnzeige.Nodes(abkntidx).FullPath &amp; &quot;\&quot;
<span class="TOKEN">Else</span>
kntname = Me.BaumAnzeige.Nodes(abkntidx).FullPath
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
&nbsp;
<span class="REM">'Pr&uuml;fung ob Nodes noch nicht gelesen</span>
<span class="TOKEN">If</span> Me.BaumAnzeige.Nodes(abkntidx).Children = 0 <span class="TOKEN">Then</span>
<span class="REM"> 'Pr&uuml;fung ob es sich nicht um eine Datei handelt</span>
<span class="TOKEN">If</span> Left(Me.BaumAnzeige.Nodes(abkntidx).Image, 4) &lt;&gt; &quot;file&quot; <span class="TOKEN">Then</span>
<span class="REM"> 'Verzeichnisse lesen</span>
<span class="TOKEN">Set</span> unterverz = CreateObject(&quot;Scripting.FileSystemObject&quot;).GetFolder(kntname)
<span class="TOKEN">For</span> <span class="TOKEN">Each</span> verzobj <span class="TOKEN">In</span> unterverz.SubFolders
<span class="TOKEN">Set</span> knt = Me.BaumAnzeige.Nodes.Add(abkntidx, tvwChild, , verzobj.Name, &quot;path_close&quot;)
<span class="REM"> 'Standard: Node geschlossen = Tag = 0</span>
knt.Tag = 0
<span class="TOKEN">Next</span>
<span class="REM"> 'Dateien lesen</span>
<span class="TOKEN">Set</span> dateien = CreateObject(&quot;Scripting.FileSystemObject&quot;).GetFolder(kntname).Files
<span class="TOKEN">For</span> <span class="TOKEN">Each</span> verzobj <span class="TOKEN">In</span> dateien
<span class="TOKEN">Set</span> knt = Me.BaumAnzeige.Nodes.Add(abkntidx, tvwChild, , verzobj.Name, &quot;file&quot;)
<span class="REM"> 'Standard: Node geschlossen = Tag = 0</span>
knt.Tag = 0
<span class="TOKEN">Next</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
&nbsp;
<span class="TOKEN">On Error GoTo 0</span>
<span class="TOKEN">Exit Function</span>
&nbsp;
LesenVerzeichnisInhalt_Error:
<span class="TOKEN">If</span> Err = 70 <span class="TOKEN">Then</span>
MsgBox &quot;Zugriff verweigert&quot;, vbInformation + vbOKOnly, &quot;System Info&quot;
<span class="TOKEN">Exit Function</span>
<span class="TOKEN">Else</span>
<span class="TOKEN">Dim</span> strErrString <span class="TOKEN">As</span> <span class="TOKEN">String</span>
strErrString = &quot;Error Information...&quot; &amp; vbCrLf
strErrString = strErrString &amp; &quot;Error#: &quot; &amp; Err.Number &amp; vbCrLf
strErrString = strErrString &amp; &quot;Description: &quot; &amp; Err.Description
MsgBox strErrString, vbCritical + vbOKOnly, &quot;Error in procedure LesenVerzeichnisInhalt of VBA Dokument Form_Frm_Explorer&quot;
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">End</span> <span class="TOKEN">Function</span></pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)
Das sollte jetzt klappen

Poppsy
15.08.2005, 18:44
Hömma....Suuper!
Klapt....Dank und Trank....

Ich sauf mir jetzt einen....
Wünsch Dir ne schöne Woche.
Po

semra öztürk
29.11.2005, 16:52
hallo, ich kriege eine fehlermeldung wenn ich frm_Explorer öffne und zwar folgende: Laufzeitfehler 91: Objektvaribale oder With-Blockvariable nicht festgelegt.

Pille
02.12.2005, 08:43
Suche bitte in den Foren nach dem String

"Das Thema "Verweise"!"

Da hab ich mich schon einmal ausgelassen und bei dir scheint das ein identisches Problem zu sein!

Viele Grüße
Pille

KDL
17.02.2009, 11:46
Dieser Thread ist zwar schon ein bisschen älter, ich hoffe ihn ließt trotzdem noch jemand.

Dieser selbst gebaute Explorer gefällt mir sehr gut und ich verwende ihn auch für einen bestimmten Zweck. Aber es gibt einen dicken Schönheitsfehler: wenn ich die lokale Festplatte anzeige, werden die Verzeichnisse korrekt sortiert angezeigt. Aber wenn ich auf ein externes Laufwerk gehe, dann erfolgt gar keine Sortierung mehr. Ich habe mal versucht, ob ich den Code entsprechend korrigieren kann, habe aber keine Möglichkeit gefunden eine Sortierung zu erzwingen (anscheinend gibt ScriptingRuntime sowas nicht her). Hat da jemand eine Idee?