Bonjour à tous,
je voulais savoir si quelqu'un a déja rencontré ce problème je m'explique, j'ai un code me permettant de traiter un nombre important d'informations chaque jour, mon problème est que parfois (notre ligne ADSL étant pas top), j'ai des micro coupures, une micro coupure génère forcément une alerte VBA et le code s'arrête , pour contrer ça j'utilise resume, ainsi lorsqu'il y a une déconnexion le programme est rénvoyé à l'endroit de l'erreur jusqu'à reconnexion, voila ce que j'ai fais,
donc s'il y a une coupure, le resume va retourner à l'erreur, ça peut être sur un OpenRecordset, dans un Select * FROM, sur un RecordCount, s'il y a qu'une déconnexion le programme va se dérouler normalement, mais s'il y a une 2ème coupure Access se ferme directement, j'ai aucun message rien il se ferme, j'ai fais la même manip avec Access 2003 et là c'est une fenêtre qui me propose de retourner l'erreur à Microsoft, peut être que ma gestion d'erreur n'est pas bonne ou qu'il y a réellement un bug, bref si vous pouviez m'aider..
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31 Private Sub Traitement_Click() On Error GoTo Erreur3146 Dim db As Database Dim rsCheckTblRafale As DAO.Recordset Dim rsMvtStock As DAO.Recordset Dim rsOrdersHs As DAO.Recordset Dim rsOrdersPrt As DAO.Recordset Dim rsOrdersRxp As DAO.Recordset Dim rsOrders As DAO.Recordset Dim rsOrdersProductsHs As DAO.Recordset Dim rsOrdersProductsPrt As DAO.Recordset Dim sRafale As String Dim i As Integer Set db = CurrentDb 'ici du code avec plusieurs db.OpenRecordset pour le traitement 'Gestion d'une micro coupure Erreur3146: If Err.Number = 3146 Then If MsgBox("Echec de connexion erreur 1, continuer le process ?" & Chr(13) & "si vous choisissez d'arrêter contactez-moi !!", vbYesNo + vbExclamation) = vbYes Then Resume Else DoCmd.Hourglass False Exit Sub End If End If End Sub
PS : mes contraintes sont que les informations sont récupérées en fonction de leur status, et que ce status change dans le déroulement du code, ainsi il n'est pas possible de revenir en arrière ou de sauter des étapes..
je vous remercie pour vos réponses
Partager