Bonjour,


En espérant écrire au bon endroit, je me met petit à petit au VBS, sachant que finalement,c 'est un peu similaire au VBA, mais en plus puissant

Bref, j'ai récupéré un script VBS, et je vous avoue qu'il y a des choses que j'ai du mal à comprendre. Grossièrement, ce code permet de déplacer des mails dans des dossiers spécifiques.

Voici un extrait de ce code qui me pose "problème "(même si question serait plutôt le terme approprié) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
	
on error resume next
	frommail = olmyitem.senderName
	frommail2 = olmyitem.SenderEmailAddress
	objmail = olmyitem.subject
	corpmail = olmyitem.body
	datemail = olmyitem.ReceivedTime
	mail = objmail & vbCrLf & corpmail
	tomail = olmyitem.to
	ccmail = olmyitem.cc
	EntryID = olmyitem.EntryID
	'Gestion d'erreur si on n'arrive pas a definir les variables demandé
	If Err.Number <> 0 Then 
		olmyitem.move olfoldererreur
		instructions d'insertion SQL
		Err.clear
	End If
Comme vous le voyez dans ce morceau de code (inclus dans une boucle For, mais je pense pas que ça ait une espèce d'importante), on a un "On error Resume next", qui permet d'ignorer l'erreur si jamais il en apparait une.
Cependant, comme vous pouvez le constater, j'ai un :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
If Err.Number <> 0 Then
Qui normalement permet de faire la gestion des erreurs. Là je comprend plus vu qu'on a ignoré l'erreur, normalement, pour ce que j'ai compris, il ne devrait jamais rentrer dans cette condition. Pourtant, il rentre quand même (car le mail est bien déplacé dans mon dossier défini sous olfoldererreur ) et j'arrive pas à comprendre pourquoi.
Cela voudrait-il dire que s'il rencontre une erreur, il l'ignore mais "stocke" le numéro de l'erreur quelquepart ?

Par ailleurs, dans le reste du code, je n'ai, à aucun moment, une réinitialisation des erreurs (un On Error go To 0), du coup je comprend pas Quelqu'un pourrait-il m'éclairer ?



Tant que j'y suis, par rapport à ce code, j'ai rajouté, au début de celui-ci, une gestion d'erreur sur une connexion comme ceci (en copiant un peu l'existant finalement) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
On Error Resume Next
strConnectString = "DRIVER=NomDriver;Server=NomServeur;UID=Id;Password=password;Database=Nombase;Option=3"
rs.ActiveConnection = strConnectString
if err.number <> 0 then
	msgbox "Connexion à la base echouée"
	Wscript.quit
else
	'traitement initial
end if
On error goto 0
=> Je ne sais pas si mon On Error Resume Next est très judicieux
=> Ai-je vraiment écrit correctement mon code ?
=> J'ai mis un On error goto 0 qui permet de revenir à une gestion d'erreur par défaut : est-ce bien cela ?


En espérant n'avoir rien oublié, je vous remercie par avance pour vos lumières