zen69
Messages postés584Date d'inscriptionjeudi 28 décembre 2006StatutMembreDernière intervention29 avril 2010
-
12 mars 2008 à 15:51
zen69
Messages postés584Date d'inscriptionjeudi 28 décembre 2006StatutMembreDernière intervention29 avril 2010
-
13 mars 2008 à 20:23
Bonjour à tous.
Voilà comme beaucoup de gens, je reçoit un runtime error 339 lors de l'éxécution de mon appli sur certain poste. Je sais qu'il y a déjà beaucoup de discussion à ce sujet sur le forum, mais aucun n'offre une solution automatisée (du moins je n'ai pas trouvé). Alors je voudrais que quelqu'un m'explique pourquoi ce runtime error ne passe pas par mon error_handling.
Voici le code que j'ai mis dans les événements form_load et form_activate de mon apli.
Private Sub Form_Load()
On Error GoTo Err_Handler
lblVersion = gstrVersion
cmdRetail.Enabled = IIf(usr_Retail > 0, True, False)
cmdWholesale.Enabled = IIf(usr_Wholesale > 0, True, False)
cmdProduction.Enabled = IIf(usr_Production > 0, True, False)
cmdCompta.Enabled = IIf(usr_Compta > 0, True, False)
cmdShip.Enabled = IIf(usr_Ship > 0, True, False)
cmdDev.Enabled = IIf(usr_Dev > 0, True, False)
Exit Sub
Err_Handler:
If Err.Number = 339 And InStr(Err.Description, "crystl32.ocx") > 0 Then
MsgBox "m0851System2 a rencontré une erreur jugez critique, avec les composants de Crystal Reports." & vbNewLine & _
"m0851System2 va tenter de réparer l'erreur par lui même. Si vous recevez ce message à nouveau, veuillez contacter votre administrateur.", vbInformation
Dim oFSO As FileSystemObject
Set oFSO = CreateObject("Scripting.FileSystemObject")
Call oFSO.CopyFile(rptUpd & "crystl32.ocx", sysDir() & "crystl32.ocx", True)
Call oFSO.CopyFile(rptUpd & "crpe32.dll", sysDir() & "crpe32.dll", True)
Shell ("regsvr32 crystl32.ocx")
Else
MsgBox Err.Number & vbNewLine & Err.Description, vbCritical
End If
Cependant l'erreur ne passe pas du tout par ce code... le on error n'est jamais déclanché. Quelqu'un peut me dire pourquoi ?
zen69
Messages postés584Date d'inscriptionjeudi 28 décembre 2006StatutMembreDernière intervention29 avril 20101 12 mars 2008 à 20:38
quand je fais ca... ca change rien... meme message... mon erreur n'est pas catcher pas le On Error.... je comprends pas... est-ce que les erreur causés par des composant fautif sont gérable dans vb6 ?
zen69
Messages postés584Date d'inscriptionjeudi 28 décembre 2006StatutMembreDernière intervention29 avril 20101 13 mars 2008 à 20:23
J'avais pensé a quelque chose qui pourrait peut-etre resoudre mon probleme...
En gros ca consiste a verifier si le composant est bien enregistrer.
J'ai donc developper une petite procedure tres simple :
Dim test
test = shell("regsvr32 crystl32.ocx") 'ce composant est celui qui me cause probleme pour linstant.
msgbox test
Mais la derniere ligne me retourne un entier (random) et ce que l'enregistrement du composant reussie ou echoue.
Quelqu'un sait-il comment verifier qu'un composant est bien enregistrer... j'imagine que ceci doit ce faire du cote du registre... je vais continuer mes recherches... si quelqu'un a deja une solution... Je vous pris de m'en tenir informer...