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

Runtime Discussion :

Runtime erreur d'execution sur tablette


Sujet :

Runtime

  1. #1
    Futur Membre du Club
    Runtime erreur d'execution sur tablette
    Bonjour à tous !

    Alors je vais essayer de vous expliquer mon problème en vous indiquant les quelques essais que j'ai fais pour essayer de comprendre.

    J'ai une application Access 2013 avec des formulaire et une table.
    J'ai un pc avec Access 2013, et une tablette avec le runtime access 2013.
    Quand je met ma base de donnée sur ma tablette qui a le runtime, j’obtiens l'erreur "Cette application a été arrêtée à cause d'une erreur d’exécution" je constate que c'est dès qu'un bout de code s’exécute, par exemple j'ai fais un test :

    • Mettre un bouton dans mon formulaire principal (menu)
    • Affecter du code simple à ce bouton : (MsgBox "Test")
    • Tester sur la tablette : toujours ce message d'erreur...

    J'ai donc essayé de faire une toute nouvelle base vide pour tester de la même manière, j'ai donc créé un bouton dans un formulaire qui exécute le même code puis je l'ai mis sur la tablette : Ça fonctionne, aucune erreur.

    Voilà j'espère avoir été clair..
    Je ne connais pas beaucoup Access, je vous remercie donc d'avance pour votre aide !

  2. #2
    Modérateur

    Bonjour.

    Le runtime n'est pas très pratique pour le débogage.

    Te serait-il possible d'installer une vrai Access sur ta tablette pour pouvoir faire des essais.

    Si tu utilises le runtime et que tu ne veux pas avoir simplement le message "Cette application a été arrêtée à cause d'une erreur d’exécution" totalement inutile, il faut que tu ailles dans le code et que tu t'assures qu'il contienne du code pour de la gestion d'erreur et même chose pour les formulaires.

    Cela veut dire que tu devrait avoir au moins quelque chose comme :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    On Error Goto Err_TaProcedure
     
    'ici le code ta procédure
     
    Exit_TaProcedure:
        exit sub '(ou exit function)
     
    Err_TaProcedure:
        call msgbox("Erreur dans TonModule.TaProcedure : " & err.number & ", " & err.description)
        resume exit_TaProcedure



    TaProcedure est le nom de la procédure en cours.
    ToModule est le nom du module en cours (ou le nom du formulaire ou du rapport pour les procédures qui sont "dans" les formulaires ou rapports).

    On place généralement ce code au niveau le plus "haut".
    Par exemple, si tu as une procédure A, qui appelle une procédure B qui appelle une procédure C, on met ce code habituellement dans Procédure A.
    Le problème est que cela va te dire que l'erreur s'est produite dans A alors qu'elle peut très bien être dans C.
    Donc tu voudras peut-être le mettre dans toutes tes procédures et fonction.

    Pour les formulaires, il faut mettre du code dans la procédure événementielle associée à l'événement Sur Erreur.

    Le code est quelque chose comme :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Form_Error(DataErr As Integer, Response As Integer)
          msgbox "Erreur dans fomulaire" & me.TonForm & " : " & DataErr & ", " & Error$(DataErr)
          Response = acDataErrContinue 'Acces va continuer malgrès l'erreur. Si tu ne veux pas cela mettre acDataErrDisplay à la place de acDataErrContinue 
    End Sub


    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Futur Membre du Club
    Bonjour Marot,

    déjà merci beaucoup pour ta réponse !

    Non, je ne peux pas avoir access complet sur la tablette, c'est d'ailleurs bien dommage..

    J'ai réussi à régler mon problème, c'était à cause d 'une API qui fonctionnait bien sur l'ordi sous Windows 7 mais qui faisait planter la tablette sur Windows 10, étrange.

    Par contre, je vais quand même faire ce que tu m'a dis et rajouter la gestion d'erreurs dans mon code, enfin plutôt essayer

    Encore merci, je passe en résolu

  4. #4
    Modérateur

    Bonjour.

    Note que pour ce genre de problème il est possible que même l'ajout de code de gestion d'erreur ne marche pas.
    Les appels aux API ou les problèmes de références sont parfois "sous le radar" de VBA ce qui fait que Access plante sans rien expliquer :-(.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.