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é) :
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 : 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
Cependant, comme vous pouvez le constater, j'ai un :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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
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
=> 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
Partager