Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Plantage application Access

2 réponses
Avatar
LM
Bonjour à tous,

Je reviens sur mon problème concernant le plantage de mon application Access
(voir post du 26/07/2006 19:12)

Voici à mon avis la partie du code qui doit poser problème.
Sachant que l'appli peut ne pas planter pendant 72h, et peut planter 2 fois
en 1 heure ....
Sachant que l'appli plante sur différents postes (Windows XP SP2 + Access
2000 SP3)

Si vous voyez quelque chose qui semble mal codé ... moi je suis un peu
perdu, car même en essayant de piéger les erreurs, je n'arrive à rien !

Merci pour vos éclaircissements ...

Laurent




Private Sub TxtCAB_AfterUpdate()

On Error GoTo TxtCAB_AfterUpdate_Error

VarCAB = Me.TxtCAB.Value
If Len(VarCAB) = 29 Then
VarUPU = 1
Else
VarUPU = 0
End If
VarDateFlashage = Format(Now(), "dd/mm/yyyy")
VarHeureFlashage = Format(Now(), "hh:mm")

Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT * FROM TblFlashageRXLocal WHERE CAB ='" &
Replace(VarCAB, "'", "''") & "'")
If rs.RecordCount = 0 Then
rs.Close
Set rs = db.OpenRecordset("TblFlashageRXLocal")
rs.AddNew
rs![Zone] = VarZone
rs![RX] = VarRX
rs![DateFlashage] = VarDateFlashage
rs![HeureFlashage] = VarHeureFlashage
rs![CAB] = VarCAB
rs![UPU] = VarUPU
rs.Update
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
VarNbFlashe = VarNbFlashe + 1
VarNbFlasheVacation = VarNbFlasheVacation + 1
Me.LblNbFlashe2.Caption = VarNbFlashe
Me.LblNbFlashe4.Caption = VarNbFlasheVacation
Me.LblCAB.Visible = True
If VarUPU = 1 Then
Me.LblCAB.ForeColor = 32768
Me.LblCAB.Caption = "ENREGISTREMENT OK"
ElseIf VarUPU = 0 Then
Me.LblCAB.ForeColor = 255
Me.LblCAB.Caption = "*** CODE A BARRES NON UPU ***"
End If
Else
Me.LblCAB.Visible = True
Me.LblCAB.ForeColor = 255
Me.LblCAB.Caption = "*** CODE A BARRES DEJA FLASHE ***"
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
End If

Me.TxtCAB = ""
Me.TxtCAB.SetFocus

FinErr:
Exit Sub

TxtCAB_AfterUpdate_Error:

Set rserr = CurrentDb.OpenRecordset("TblErreurs")
rserr.AddNew
rserr![DateErreur] = Now
rserr![Erreur] = "L'erreur inattendue " & Err.Number & " s'est produite dans
la procédure TxtCAB_AfterUpdate du module Form_FrmCAB " & Err.Description
rserr.Update
rserr.Close
Set rserr = Nothing

MessageBox Me.hwnd, "L'erreur inattendue " & Err.Number & " s'est produite"
& Chr(10) & _
"dans la procédure TxtCAB_AfterUpdate du module Form_FrmCAB" & Chr(10) & _
"" & Err.Description & "", _
"" & VarNomAppli & "- Erreur", MB_OK + MB_ICONHAND
End Sub

2 réponses

Avatar
Raymond [mvp]
Bonsoir.

les erreurs aléatoires sont très difficiles à cerner.
commence par faire une table log dans laquelle tu placeras des valeurs fixes
à partir de la fonction sensée planter et tu réduiras énormément le champ de
recherche.
modifies quand même ceci, mais qui ne doit pas planter:
VarHeureFlashage = Format(Now(), "hh:nn")
au lieu de
VarHeureFlashage = Format(Now(), "hh:mm")

mon pif me dit que ça se passe là:
Set rs = db.OpenRecordset("SELECT * FROM TblFlashageRXLocal WHERE CAB ='" &
Replace(VarCAB, "'", "''") & "'")
avec un problème sur des " ou des ' de temps en temps.
évite au maximum ce type de caractères dans les index
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
Découvrez le Jargonaute, le langage IT, tel que vous n'avez jamais osé le
parler:
http://www.microsoft.com/france/communautes/jargonaute/


"LM" a écrit dans le message de news:
44ce4257$0$832$
| Bonjour à tous,
|
| Je reviens sur mon problème concernant le plantage de mon application
Access
| (voir post du 26/07/2006 19:12)
|
| Voici à mon avis la partie du code qui doit poser problème.
| Sachant que l'appli peut ne pas planter pendant 72h, et peut planter 2
fois
| en 1 heure ....
| Sachant que l'appli plante sur différents postes (Windows XP SP2 + Access
| 2000 SP3)
|
| Si vous voyez quelque chose qui semble mal codé ... moi je suis un peu
| perdu, car même en essayant de piéger les erreurs, je n'arrive à rien !
|
| Merci pour vos éclaircissements ...
|
| Laurent
|
|
|
|
| Private Sub TxtCAB_AfterUpdate()
|
| On Error GoTo TxtCAB_AfterUpdate_Error
|
| VarCAB = Me.TxtCAB.Value
| If Len(VarCAB) = 29 Then
| VarUPU = 1
| Else
| VarUPU = 0
| End If
| VarDateFlashage = Format(Now(), "dd/mm/yyyy")
| VarHeureFlashage = Format(Now(), "hh:mm")
|
| Set db = CurrentDb
| Set rs = db.OpenRecordset("SELECT * FROM TblFlashageRXLocal WHERE CAB ='"
&
| Replace(VarCAB, "'", "''") & "'")
| If rs.RecordCount = 0 Then
| rs.Close
| Set rs = db.OpenRecordset("TblFlashageRXLocal")
| rs.AddNew
| rs![Zone] = VarZone
| rs![RX] = VarRX
| rs![DateFlashage] = VarDateFlashage
| rs![HeureFlashage] = VarHeureFlashage
| rs![CAB] = VarCAB
| rs![UPU] = VarUPU
| rs.Update
| rs.Close
| Set rs = Nothing
| db.Close
| Set db = Nothing
| VarNbFlashe = VarNbFlashe + 1
| VarNbFlasheVacation = VarNbFlasheVacation + 1
| Me.LblNbFlashe2.Caption = VarNbFlashe
| Me.LblNbFlashe4.Caption = VarNbFlasheVacation
| Me.LblCAB.Visible = True
| If VarUPU = 1 Then
| Me.LblCAB.ForeColor = 32768
| Me.LblCAB.Caption = "ENREGISTREMENT OK"
| ElseIf VarUPU = 0 Then
| Me.LblCAB.ForeColor = 255
| Me.LblCAB.Caption = "*** CODE A BARRES NON UPU ***"
| End If
| Else
| Me.LblCAB.Visible = True
| Me.LblCAB.ForeColor = 255
| Me.LblCAB.Caption = "*** CODE A BARRES DEJA FLASHE ***"
| rs.Close
| Set rs = Nothing
| db.Close
| Set db = Nothing
| End If
|
| Me.TxtCAB = ""
| Me.TxtCAB.SetFocus
|
| FinErr:
| Exit Sub
|
| TxtCAB_AfterUpdate_Error:
|
| Set rserr = CurrentDb.OpenRecordset("TblErreurs")
| rserr.AddNew
| rserr![DateErreur] = Now
| rserr![Erreur] = "L'erreur inattendue " & Err.Number & " s'est produite
dans
| la procédure TxtCAB_AfterUpdate du module Form_FrmCAB " & Err.Description
| rserr.Update
| rserr.Close
| Set rserr = Nothing
|
| MessageBox Me.hwnd, "L'erreur inattendue " & Err.Number & " s'est
produite"
| & Chr(10) & _
| "dans la procédure TxtCAB_AfterUpdate du module Form_FrmCAB" & Chr(10) & _
| "" & Err.Description & "", _
| "" & VarNomAppli & "- Erreur", MB_OK + MB_ICONHAND
| End Sub
|
|
Avatar
LM
Bonjour Raymond,

Content de voir que tu t'es penché sur mon problème ...
J'avais en effet tenté de loguer les erreurs dans une table ... mais je ne
retrouvais pas les erreurs correspondant aux plantages ...

Pour ton intuition, je pense également que le problème doit être par là ...
cet après midi j'ai affiné le filtrage du champ de saisi TxtCAB, à savoir
qu'il ne peut maintenant accepter uniquement les lettres ou les chiffres ...

Depuis 13:00, l'application n'a pas plantée ... je verrai demain matin ce
que ça a donné durant la nuit ...

Merci !

Laurent

LM SYSTEMS Signature Laurent MERLET Gérant LM SYSTEMS SARL 10 rue des
Loriots 77360 Vaires sur Marne Tél : 06 82 29 23 43

"Raymond [mvp]" a écrit dans le message
de news:
Bonsoir.

les erreurs aléatoires sont très difficiles à cerner.
commence par faire une table log dans laquelle tu placeras des valeurs
fixes
à partir de la fonction sensée planter et tu réduiras énormément le champ
de
recherche.
modifies quand même ceci, mais qui ne doit pas planter:
VarHeureFlashage = Format(Now(), "hh:nn")
au lieu de
VarHeureFlashage = Format(Now(), "hh:mm")

mon pif me dit que ça se passe là:
Set rs = db.OpenRecordset("SELECT * FROM TblFlashageRXLocal WHERE CAB ='"
&
Replace(VarCAB, "'", "''") & "'")
avec un problème sur des " ou des ' de temps en temps.
évite au maximum ce type de caractères dans les index
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
Découvrez le Jargonaute, le langage IT, tel que vous n'avez jamais osé le
parler:
http://www.microsoft.com/france/communautes/jargonaute/


"LM" a écrit dans le message de news:
44ce4257$0$832$
| Bonjour à tous,
|
| Je reviens sur mon problème concernant le plantage de mon application
Access
| (voir post du 26/07/2006 19:12)
|
| Voici à mon avis la partie du code qui doit poser problème.
| Sachant que l'appli peut ne pas planter pendant 72h, et peut planter 2
fois
| en 1 heure ....
| Sachant que l'appli plante sur différents postes (Windows XP SP2 +
Access
| 2000 SP3)
|
| Si vous voyez quelque chose qui semble mal codé ... moi je suis un peu
| perdu, car même en essayant de piéger les erreurs, je n'arrive à rien !
|
| Merci pour vos éclaircissements ...
|
| Laurent
|
|
|
|
| Private Sub TxtCAB_AfterUpdate()
|
| On Error GoTo TxtCAB_AfterUpdate_Error
|
| VarCAB = Me.TxtCAB.Value
| If Len(VarCAB) = 29 Then
| VarUPU = 1
| Else
| VarUPU = 0
| End If
| VarDateFlashage = Format(Now(), "dd/mm/yyyy")
| VarHeureFlashage = Format(Now(), "hh:mm")
|
| Set db = CurrentDb
| Set rs = db.OpenRecordset("SELECT * FROM TblFlashageRXLocal WHERE CAB
='"
&
| Replace(VarCAB, "'", "''") & "'")
| If rs.RecordCount = 0 Then
| rs.Close
| Set rs = db.OpenRecordset("TblFlashageRXLocal")
| rs.AddNew
| rs![Zone] = VarZone
| rs![RX] = VarRX
| rs![DateFlashage] = VarDateFlashage
| rs![HeureFlashage] = VarHeureFlashage
| rs![CAB] = VarCAB
| rs![UPU] = VarUPU
| rs.Update
| rs.Close
| Set rs = Nothing
| db.Close
| Set db = Nothing
| VarNbFlashe = VarNbFlashe + 1
| VarNbFlasheVacation = VarNbFlasheVacation + 1
| Me.LblNbFlashe2.Caption = VarNbFlashe
| Me.LblNbFlashe4.Caption = VarNbFlasheVacation
| Me.LblCAB.Visible = True
| If VarUPU = 1 Then
| Me.LblCAB.ForeColor = 32768
| Me.LblCAB.Caption = "ENREGISTREMENT OK"
| ElseIf VarUPU = 0 Then
| Me.LblCAB.ForeColor = 255
| Me.LblCAB.Caption = "*** CODE A BARRES NON UPU ***"
| End If
| Else
| Me.LblCAB.Visible = True
| Me.LblCAB.ForeColor = 255
| Me.LblCAB.Caption = "*** CODE A BARRES DEJA FLASHE ***"
| rs.Close
| Set rs = Nothing
| db.Close
| Set db = Nothing
| End If
|
| Me.TxtCAB = ""
| Me.TxtCAB.SetFocus
|
| FinErr:
| Exit Sub
|
| TxtCAB_AfterUpdate_Error:
|
| Set rserr = CurrentDb.OpenRecordset("TblErreurs")
| rserr.AddNew
| rserr![DateErreur] = Now
| rserr![Erreur] = "L'erreur inattendue " & Err.Number & " s'est produite
dans
| la procédure TxtCAB_AfterUpdate du module Form_FrmCAB " &
Err.Description
| rserr.Update
| rserr.Close
| Set rserr = Nothing
|
| MessageBox Me.hwnd, "L'erreur inattendue " & Err.Number & " s'est
produite"
| & Chr(10) & _
| "dans la procédure TxtCAB_AfterUpdate du module Form_FrmCAB" & Chr(10) &
_
| "" & Err.Description & "", _
| "" & VarNomAppli & "- Erreur", MB_OK + MB_ICONHAND
| End Sub
|
|