Gérer le runtime error 339

zen69 Messages postés 584 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 29 avril 2010 - 12 mars 2008 à 15:51
zen69 Messages postés 584 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 29 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 ?

Merci en avance,

<hr size="2" width="100%" />  zen69 aka Ortho Le Profett
  [site web]

6 réponses

cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
12 mars 2008 à 17:55
Bonjour,

il semblerait que l'erreur ne soit pas due à ton code mais à la machine :
il doit lui manquer une des deux dll suivante :
scrrun.dll
vb6fr.dll

-- Pourquoi faire simple quand on peut faire compliquer --
0
zen69 Messages postés 584 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 29 avril 2010 1
12 mars 2008 à 18:17
Et cela expliquerais pourquoi mon error handling est tout simplement ignoré au runtime ?

<hr size="2" width="100%" />  zen69 aka Ortho Le Profett
  [site web]
0
zen69 Messages postés 584 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 29 avril 2010 1
12 mars 2008 à 18:59
scrrun.dll <- prensente sur le poste
vb6fr.dll <- pas presente sur le poste mais j'utilise vb6 enu et non fr...

<hr size="2" width="100%" />  zen69 aka Ortho Le Profett
  [site web]
0
Lunikmarty Messages postés 55 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 17 avril 2008
12 mars 2008 à 20:15
Ajoute voir la ligne en rouge dans ton code... je suis pas sur que ton erreur vienne de là mais bon, on ne sait jamais



Private Sub
Form_Load
()

    On Error GoToErr_Handler
        'Ton Code
On Error GoTo 0
       Exit Sub
   
    Err_Handler:
        'Ton Code
End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zen69 Messages postés 584 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 29 avril 2010 1
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 ?

<hr size="2" width="100%" />  zen69 aka Ortho Le Profett
  [site web]
0
zen69 Messages postés 584 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 29 avril 2010 1
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...

Merci,

<hr size="2" width="100%" />  zen69 aka Ortho Le Profett
  [site web]
0
Rejoignez-nous