Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

problème avec Tabctl32.ocx


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    problème avec Tabctl32.ocx
    Bonjour,
    j'ai développé un programme qui utilise, entre autres, Tabctl32.ocx.
    A l'époque il avait été développé sous Windows 7 sous lequel il fonctionnait très bien.
    Ayant fait l'acquisition d'un ordi sous Windows 8.1 32 bits processeur x64, j'ai voulu y installer ledit programme.
    Tout marchait bien jusqu'à ce que j’obtienne ce message :
    "erreur d'exécution 372
    Impossible de charger le contrôle SSTab à partir de Tabctl32.ocx.
    Votre version de Tabctl32.ocx est peut-être obsolète.
    Vérifiez que vous utilisez la version du contrôle fournie avec votre application.
    "
    Ce que je ne comprends pas, c'est que dans un menu utilisant ce contrôle, ça marche et que dans un autre ça ne marche pas !!
    J'ai pourtant bien installé la même version de Tabctl32.ocx que celle ayant servi à développer l'application.

    Avez-vous une explication qui me permettrait enfin d'utiliser ce programme ?

    Merci d'avance pour votre aide.

  2. #2
    Modérateur

    Bonjour;
    As-tu la possibilité de recompiler le programme sous Windows 8.1 32 bits ?
    Cela pourrait résoudre le problème.

    Ou bien : Si le composant n'est utilisé que par ton programme :
    - Commence par retirer l'inscription de Tabctl32.ocx du registre par : Regsvr32 /u C:\Windows\System32\Tabctl32.ocx.
    - Mets une copie de Tabctl32.ocx dans le dossier cible du programme et enregistre-le avec la commande :
    Regsvr32 Chemin_vers_le_Fichier\Tabctl32.ocx.
    avec "Chemin_vers_le_Fichier" : le dossier où tu as installé ton programme.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #3
    Membre du Club
    Bonjour,

    J'ai bien retiré l'inscription de Tabctl32.ocx du registre puis j'en ai mis une copie dans le dossier qui contient le programme, ce dossier s'appelle : Gestionclub et est dans Documents

    Puis j'ai ouvert l'invite de commandes et voici ce qui s'inscrit :
    "c:\users\Gazoute>.

    Donc j'ai suivi tes instructions : c:\users\Gazoute>Gestionclub\regsvr32 Tabctl32.ocx et erreur, ça ne marche pas, on me répond qu'il n'y a pas Tabctl32.ocx à cet endroit !!

    Ce doit être moi qui ait fait une erreur mais laquelle ?

  4. #4
    Rédacteur/Modérateur

    Salut

    Gazoute>Gestionclub
    es tu sûr ??? un > dans le nom d'un dossier ????

    Suite:
    J'ai bien retiré l'inscription de Tabctl32.ocx du registre puis j'en ai mis une copie dans le dossier qui contient le programme,
    tu aurais peu ne pas le désenregistrer.
    Par défaut, l'exécutable va rechercher les DLLs, Ocxs ou autres dans le dossier ou se trouve ton programme .exe, tu n'as même pas besoin de le registrer à cette emplacement.
    Attention, l'exécutable et l'Ocx doivent être dans le même dossier pour une utilisation sans registrer.


    Autrement,
    relis bien se que t'as indiqué l_autodidacte
    Citation Envoyé par
    - Mets une copie de Tabctl32.ocx dans le dossier cible du programme et enregistre-le avec la commande :
    Regsvr32 Chemin_vers_le_Fichier\Tabctl32.ocx.
    avec "Chemin_vers_le_Fichier"
    Tu peux le registrer de cette façon: Regsvr32 c:\users\Gazoute\Gestionclub\Tabctl32.ocx, si c:\users\Gazoute est bien le dossier qui contient exécutable et Ocx.
    ProgElecT
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  5. #5
    Membre du Club
    c:\Users\Gazoute>

    Ça c'est ce qui s'inscrit quand j'ouvre l'invite de commandes.

    l_autodidacte dit :

    Mets une copie de Tabctl32.ocx dans le dossier cible du programme (pour moi le dossier cible est Gestionclub qui se trouve dans Documents)
    et enregistre-le avec la commande :
    Regsvr32 Chemin_vers_le_Fichier\Tabctl32.ocx
    avec "Chemin_vers_le_Fichier" : le dossier où tu as installé ton programme donc Gestionclub.

  6. #6
    Rédacteur/Modérateur

    Re

    Je viens de te mettre la ligne de commande qui doit être utilisé pour le registrer (partie sur fond gris).
    ProgElecT
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  7. #7
    Membre du Club
    voici la réponse obtenue :

    le module "c:\users\Gazoute\documents\tabctl32.ocx" a été chargé mais l'appel à DllRegisterServer a échoué avec le code d'erreur 0x8002801c

  8. #8
    Rédacteur/Modérateur

    pour cette erreur, il te faut démarrer cmd en tant qu'administrateur.
    Dans le menu windows "taper ici pour rechercher", écrire simplement cmd , dans la fenêtre qui apparait, cliquer bouton droit sur la phrase Invite de commande, choisir exécuter en tant qu'administrateur, la tu devrais pouvoir registrer ton OCX dans la fenêtre DOS.
    ProgElecT
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  9. #9
    Membre du Club
    quand j'ouvre l'invite de commandes en mode administrateur, voici ce qui s'affiche :

    c:\windows\system32> et pas question de supprimer system32 !

    autre chose, mon ordi est tactile alors "le clic droit" comment fait-on ?

  10. #10
    Rédacteur/Modérateur

    Citation Envoyé par Gazoute Voir le message
    quand j'ouvre l'invite de commandes en mode administrateur, voici ce qui s'affiche :

    c:\windows\system32> et pas question de supprimer system32 !
    ....
    pourquoi veux tu supprimer system32, ..... comprend pas ...
    depuis cette fenêtre tu passes la ligne de commande Regsvr32 c:\users\Gazoute\Gestionclub\Tabctl32.ocx

    Citation Envoyé par Gazoute Voir le message
    ...
    autre chose, mon ordi est tactile alors "le clic droit" comment fait-on ?
    aucune idée.
    ProgElecT
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  11. #11
    Membre du Club
    Bonjour,
    J'ai fait comme tu me l'as dit :
    "c:\Windows\system32>regsvr32 c:\users\gazoute\documents\gestionclub\tabctl32.ocx"

    Ça a réussi, tabctl32 a été enregistré.

    Mais quand j'ai ouvert l'application, j'ai obtenu la même réponse :
    "impossible de charger le contrôle SSTab à partir de Tabctl32.ocx" !!
    Par contre, dans l'application, si je clique sur un autre menu qui utilise lui aussi le contrôle SSTab, aucun problème, ça fonctionne !!

  12. #12
    Rédacteur/Modérateur

    Salut

    Par contre, dans l'application, si je clique sur un autre menu qui utilise lui aussi le contrôle SSTab, aucun problème, ça fonctionne !!
    A priori, sur un de tes Forms, SSTab est référencé vers l'ocx du dossier de exécutable, et le Form ou il y a problème, le SSTAB est référencé vers l'ocx du dossier system32.
    Vérifier en allant lire (avec le bloc note windows, pas l'éditeur VB6) le fichier .FRM du Form qui fonctionne, faire copier Copier/Coller de la ligne et remplacer dans le Form qui pose problème.
    ProgElecT
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  13. #13
    Modérateur

    Dans mon premier post, j'ai dit ceci :
    Citation Envoyé par l_autodidacte Voir le message
    As-tu la possibilité de recompiler le programme sous Windows 8.1 32 bits ?
    Cela pourrait résoudre le problème.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  14. #14
    Membre du Club
    Citation Envoyé par l_autodidacte Voir le message
    Dans mon premier post, j'ai dit ceci :
    Désolé mais je ne peux pas recompiler ce programme sous Windows 8.