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 :mrgreen:
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é) :
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.Code:
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
Cependant, comme vous pouvez le constater, j'ai un :
Qui normalement permet de faire la gestion des erreurs. Là je comprend plus :weird: 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 :weird: (car le mail est bien déplacé dans mon dossier défini sous olfoldererreur ) et j'arrive pas à comprendre pourquoi.Code:If Err.Number <> 0 Then
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) :
=> Je ne sais pas si mon On Error Resume Next est très judicieux :weird:Code:
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
=> 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 :)