IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Access Discussion :

msaccess a provoqué une erreur dans KERNEL32.dll


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 23
    Points : 15
    Points
    15
    Par défaut msaccess a provoqué une erreur dans KERNEL32.dll

    Bonjour,

    Depuis quelques jours sans raisons apparente chaque fois que j'ouvre un formulaire j'obtiens le message d'erreur :
    "Msaccess a provoqué une erreur dans KERNEL32.dll, le programme va être arrêté, si le problème persiste redémarrer l'ordinateur"

    Curieusement, cette erreur se produit uniquement sur 1 seul de mes formulaires, ce formulaire est assez gros avec plusieurs onglets et plusieurs sous-formulaires et beaucoup de code vba associé à des procédures évènementielles....

    Si je re-démarre l'ordinateur parfois l'erreur se reproduit, parfois pas... la base de donnée est sous accès97, mon code vba est compilé dans le module vba, le pc surlequel j'ai l'erreur est sous windows millénium....

    Quand je lance cette base de donnée sur un pc sous xp pro avec 1go de ram, il se produit un phénomène curieux, au premier lancement du formulaire cela me ferme accès, puis après avoir relancer accès le formulaire s'ouvre normalement et fonctionne correctement....

    J'ai franchement aucunne pistes.....


  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 419
    Points : 508
    Points
    508
    Par défaut
    Salut

    Tu as la version corrigé SR2 de access 97 ? Ca peut peut etre aider, sais-t-on jamais...

  3. #3
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 172
    Points
    12 172
    Billets dans le blog
    5
    Par défaut
    Bonjours,

    Cette erreur est fréquente lorsque l'usage des OCX est exagéré.
    Dans ton cas, tu les imbriques donc tu es certainement concerné par ce cas.
    Essaye de mettre en place des formulaires flottants et modaux plutôt que d'essayer de tout caser dans un seul. De plus, ergonomiquement parlant, c'est difficile à utiliser...

    Argy

  4. #4
    Membre à l'essai
    Inscrit en
    Novembre 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 23
    Points : 15
    Points
    15
    Par défaut


    Désolé, mais comment fait-on des formulaires flottants et modaux ?

    Pardon, plûtot c'est quoi un formualire flottant et un modal ???

    Je suis désolé, mais je suis un néophyte qui a appris le vba uniquement en lisant des livres... sans avoir une vrai formation en informatique... cette base de donnée que j'ai développé en 3 ans et qui fait environ 12 Mo compactée, me sert tous les jours dans mon travail, c'est une GMAO et en fait le formulaire qui me pose problème est inspiré des formulaires professionnels du style "sophie" (mais qui sont trop cher à l'achat pour notre direction...)

    Merci d'avance pour vos conseils..


  5. #5
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 172
    Points
    12 172
    Billets dans le blog
    5
    Par défaut
    Un formulaire flottant est un formulaire à part entière sauf qu'il est plus petit que le formulaire appelant (principal dans ton cas).
    Il est flottant parce que l'on peut le déplacer pour voir les données en dessous.
    On l'ouvre en mode Modal pour obliger l'utilisateur à fermer ce dernier s'il souhaite accéder au formulaire principal.
    A titre d'exemple, un MsgbBox est par défaut Modal.
    Cela se défini dans les propriétés de ce dernier.

    En fait, la boîte à onglet est très pratique, j'accorde mais dès que l'y pose des TreeViews ou des sous-formulaire, il y a un pépin qui s'installe. Le problème c'est qu'il est quasi impossible de déterminer la cause de la défaillance.
    C'est pourquoi je te propose cette solution...

    Tu peux essayer de diminuer l'accélération graphique de ta carte vidéo pour voir si ça change quelque chose, mais c'est totalement suggestif et sans garanties...

    Sinon, voici un exemple de positionnement de formulaire si tu as besoin de le positionner à droite de l'écran ici mais ne tiens compte de ce tuto que si nécesaire...

    Argy

  6. #6
    Membre à l'essai
    Inscrit en
    Novembre 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    :o
    Merci pour le conseil, je vais tenter de dissocier les sous-formualires que j'ai inclus à l'intérieur des onglets et d'utiliser des artifices du style : sur évènement souris déplacer sur un champ particulier alors ouverture d'un formulaire dimensionné à la taille de mon sous-formulaire initial et avec les données qui étaient incluses avant la modif et même effet inverse ensuite pour le faire disparaitre...

    Je vais tenter....

    En fait ce soir après avoir compacté la base et redémarrer le pc j'ai plus l'erreur... franchement c'est bizarre cette erreur de l'API windows!!!

    en tout cas merci pour votre aide, vous m'avez donné une piste..


  7. #7
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    slt,

    Citation Envoyé par massol joel
    En fait ce soir après avoir compacté la base et redémarrer le pc j'ai plus l'erreur... franchement c'est bizarre cette erreur de l'API windows!!!
    Le compactage fait toujours du bien, ça peut corriger certaines erreurs...

    Citation Envoyé par massol joel
    sur évènement souris déplacer sur un champ particulier alors ouverture d'un formulaire dimensionné à la taille de mon sous-formulaire initial et avec les données qui étaient incluses avant la modif et même effet inverse ensuite pour le faire disparaitre...
    Y a peut-être plus simple :
    Tu laisses un contrôle sous-formulaire et tu lui affectes le formulaire que tu veux (propriété SourceObject)
    Parce que redimensionner et positionner un formulaire avec précision c'est pas gagné
    C'est plus simple de redimensionner le contrôle sous-formulaire si besoin et d'y affecter dynamiquement n'importe quel formulaire

  8. #8
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 172
    Points
    12 172
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Arkham46
    Le compactage fait toujours du bien, ça peut corriger certaines erreurs...
    Effectivement c'est une solution à tenter...

    : Question...
    N'as tu pas fait un copié / coller de ton Contrôle Tab d'un formulaire à l'autre pour éviter de tout reconstruire (et c'est depuis cela que ça coince) ?

    Argy

  9. #9
    Membre à l'essai
    Inscrit en
    Novembre 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 23
    Points : 15
    Points
    15
    Par défaut

    Effetivement il m'arrive souvent de faire du copie/coller pour aller plus vite ; en effet j'essaie d'avoir dans tous mes formulaires à peu près la même ergonomie et le copie/coller aide bien pour cela....


    Et maintenant est-il possible de corriger cela ? ou je dois refaire un nouveau formulaire à l'identique du celui qui me pose problème sans utiliser du tout le copie/coller et ensuite remplacer l'ancien par le nouveau ?

    En tout cas, je retiens la leçon pour l'avenir....

  10. #10
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 172
    Points
    12 172
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par massol joel
    Et maintenant est-il possible de corriger cela ? ou je dois refaire un nouveau formulaire à l'identique du celui qui me pose problème sans utiliser du tout le copie/coller et ensuite remplacer l'ancien par le nouveau ?
    Eh bien en fait, oui et non...
    Dupliquez un formulaire ne pose aucun problème au sein d'Access avec des objets Access et normalement doit en théorie ne poser aucun problème si ce dernier contient un OCX tel qu'un TreeView, ListView, SSTab etc... mais bon.
    Mais bon, si je me suis permis de te poser cette question, c'est que l'emploi de tels objets dupliqués dans un formulaire m'a causé (récemment) des erreurs qui on une certaine similitude avec celle que tu soulèves... Expliquer la cause, je cherche encore...
    Je finirais bien par trouver mais en attendant, je pose à chaque fois le composant plutôt que dupliquer.

    Argy

  11. #11
    Membre à l'essai
    Inscrit en
    Novembre 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    :o
    A près vérification : c'est la fonction "réparer la base donnée" dans les utilitaires access qui corrige provisoirement le défaut, puis après avoir ouvert 1 fois ou 2 internet explorer l'erreur revient à nouveau...

    Je confirme également que c'est bien le fait d'avoir plusieurs sous-formulaires dans plusieurs onglets qui me provoque cette erreur ; en effet sans les supprimer je les ai déplacer en-dehors des onglets et là plus d'erreur...

    Cela veut donc dire que c'est soit l'onglet, soit le sous-formulaire... pas cool...

    J'ai également tenté de copier le formulaire en totalité : cela réduit la fréquence de l'erreur, mais elle finit pas revenir...

    je pense que je suis bon pour refaire mon formulaire... je vais devoir en refaire 3 ou 4... refaire les liens entre-eux.... bref quelques heures de boulot en vu !!!

    En tout cas merci pour votre aide !

  12. #12
    Membre à l'essai
    Inscrit en
    Novembre 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 23
    Points : 15
    Points
    15
    Par défaut


    Je vais clôturer le sujet... car j'ai bien peur que la seule solution soit l'huile de coude...

    En gros c'est un bug ou faiblesse d'access : si on utilise un onglet on évite d'y coller un sous-formulaire sous peine de plantage kernel32.dll...

    Ce qui est curieux c'est ce lien entre internet explorer et le déclenchement de l'erreur... quand on cherche des infos sur kernel32.dll on nous dit qu'il s'agit d'un API windows qui réserve un espace mémoire à windows lui-même et que souvent l'erreur résulte d'un logiciel qui tente d'y écrire..

    De plus, mon problème provoque une erreur kernel32.dll sous windows 9x, mais sous windows 2000 et xp, cela ne provoque pas d'erreur mais ferme carrément access !!!
    Il semble donc que le kernel32.dll de windows 2000 et ultérieur gére mieux l'erreur...

    Je clôture donc ... mais si vous avez une idée je suis preneur !!!



    encore merci à vous tous

  13. #13
    Membre à l'essai
    Inscrit en
    Novembre 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 23
    Points : 15
    Points
    15
    Par défaut


    Bonjour,

    J'ai trouvé la raison de mon erreur !!! après un week-end de recherche !!!

    En fait cela vient de 2 champs indépendants dans lesquels j'avais affecté comme source de donnée la valeur d'un champ d'un sous-formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =[liste4].[Formulaire]![Dernier]
    J'ai refait mon formulaire en supprimant les onglets ; toujours la même erreur, puis en résuidant le nombre de sous-formulaire un par un... mais j'avais toujours l'erreur !!!!

    Puis j'ai remarqué ces 2 champs indépendants dont la souce de contrôle dans l'onglet donnée pointait sur un champs d'un sous-formulaire... en supprimant ce lien l'erreur ne c'est plus reproduite !!

    Donc ma conclusion est qu'il ne faut pas faire pointer un champ indépendant sur la valeur d'un champ d'un sous-formulaire ; j'avais besoin de récupérer la valeur de 2 champs d'un de mes sous-formulaires, aussi pour contourner cette diffilcultée j'ai utilisé le code en balayant la table concernée...

    Donc cette fois problème VRAIEMENT résolu !!!

    Mille merci à vous tous pour vos réponses...


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 19
    Dernier message: 17/03/2011, 14h30
  2. Réponses: 0
    Dernier message: 03/06/2008, 18h21
  3. Caractère provoquant une erreur dans une requête
    Par defluc dans le forum Firebird
    Réponses: 4
    Dernier message: 04/02/2008, 12h14
  4. Réponses: 6
    Dernier message: 29/05/2006, 11h21
  5. Comment lancer une erreur dans une procédure stockée
    Par borgfabr dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/05/2005, 17h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo