VB Netzlaufwerk trennen und mappen klappt nicht so richtig
Liebe Gemeinde,
ich habe ein VB Script, diese soll schauen ob ein Laufwerksbuchstabe vorhanden ist, ist dieser vorhanden, dann trenne diesen und mappe den gleichen mit Pfad X.
Code:
Es funktioniert einfach nicht... und jetzt kommts...
ändere ich den Buchstaben beim mapping (mapNetworkDrive), wird das "alte" NLW getrennt und das neue verbunden, bei gleichen Buchstaben passiert einfach gar nichts, auch keine Fehlermeldung oder ähnliches...
Was ich noch besonders komisch finde:
falls das trennen klappt(Buchstabe geändert) wird das NLW noch immer angezeigt, kann allerdings nicht mehr geöffnet werden, normalerweise sollte es doch einfach aus der GUI verschwinden, fehlt hier irgend ein Parameter? Ich möchte dass das NLW komplett verschwindet, so als ob man das ganze mit der Maus(Computer - Rechtsklick - NLW trennen) machen würde.
Bitte um Hilfe(VB Anfänger)!
DANKE AN ALLE!
Gruß
Dr.
ich habe ein VB Script, diese soll schauen ob ein Laufwerksbuchstabe vorhanden ist, ist dieser vorhanden, dann trenne diesen und mappe den gleichen mit Pfad X.
Code:
'Verbinden eines Netzlaufwerkes
If Auswahl = 1 Then
If Filesystem.DriveExists("M:\") Then WshNetwork.RemoveNetworkDrive "M:",True,True
WshNetwork.MapNetworkDrive "M:", "\\Fileserver\AL_" & PLZG & "\TL\" & PLZ, True
End If
If Auswahl = 2 Then
Es funktioniert einfach nicht... und jetzt kommts...
ändere ich den Buchstaben beim mapping (mapNetworkDrive), wird das "alte" NLW getrennt und das neue verbunden, bei gleichen Buchstaben passiert einfach gar nichts, auch keine Fehlermeldung oder ähnliches...
Was ich noch besonders komisch finde:
falls das trennen klappt(Buchstabe geändert) wird das NLW noch immer angezeigt, kann allerdings nicht mehr geöffnet werden, normalerweise sollte es doch einfach aus der GUI verschwinden, fehlt hier irgend ein Parameter? Ich möchte dass das NLW komplett verschwindet, so als ob man das ganze mit der Maus(Computer - Rechtsklick - NLW trennen) machen würde.
Bitte um Hilfe(VB Anfänger)!
DANKE AN ALLE!
Gruß
Dr.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 313072
Url: https://administrator.de/contentid/313072
Ausgedruckt am: 25.11.2024 um 00:11 Uhr
21 Kommentare
Neuester Kommentar
Place a small break between the disconnect and reconnect. This should solve the race condition of resusing the resources for the drive letter.
Regards
falls das trennen klappt(Buchstabe geändert) wird das NLW noch immer angezeigt, kann allerdings nicht mehr geöffnet werden,
This is the case sometimes, explorer simply does not get the change, close the explorer window or logoff then it's gone. Normal behavior.Regards
In batch yes, not in vb, you can use a small sub to wait a number of seconds
To make break of 1 second, then call:
Sub pause(t As Integer)
start = Timer
Do While Timer < start + t
DoEvents
Loop
End Sub
pause 1
?? I already wrote it above, place the sub inside your module and place the
pause 2
call in between your mapping lines.
We can't see your current code , so you forgot a closing pharentisis somewhere...
Line 82, there is a "lonely" End if and some other non matching if constructs !!
And Sub's are not allow to be placed inside other sub's if you missed to post the outer frame.
And Sub's are not allow to be placed inside other sub's if you missed to post the outer frame.
Zitat von @Dr.Cornwallis:
oh, i understand the error @ line 82, but how can i place the Sub into this code? Sorry im a bloody VB beginner
omg... sure ??oh, i understand the error @ line 82, but how can i place the Sub into this code? Sorry im a bloody VB beginner
You have a primary sub where your main code is placed inside.
Then the other subs are placed as siblings beside the main sub not inside the main sub.
Sub YourMainSub()
'...
End Sub
function Get_User_Name()
'...
End Function
Sub pause()
'....
End sub
You can't place a function inside an if !!!!!!!
See above ...
See above ...
Zitat von @Dr.Cornwallis:
If you execute the code of the pause alone(new file), then u can see the error message.
You can't execute this sub standalone, you have to call it with a parameter.If you execute the code of the pause alone(new file), then u can see the error message.
Here it's working without problems.
Where are you executing this ?
You can write
start = Timer()
My code works 100%, your are simply making some kind of weird error in your code we cannot see, my friend
I recommend reading the basics before patching any code together ... http://www.vba-tutorial.de/index.htm
I recommend reading the basics before patching any code together ... http://www.vba-tutorial.de/index.htm