Partage
  • Partager sur Facebook
  • Partager sur Twitter

[VBA] Access affiche #Erreur

    25 mars 2022 à 16:14:34

    Bonjour, je commence a utiliser Microsoft Access et suis en train de travailler sur une base de données ou je dois faire des vérifications. J'ai créé une fonction qui me permet de vérifier certaines erreurs dans la base de données. Cette dernière fonctionne parfaitement sauf que sur certaines lignes du tableau qui s'affiche, dans la colonne de ma fonction il y a marqué : "#Erreur". J'ai fait exprès de mettre des erreurs que ma fonction détecte sur ces lignes et le message s'enlève, mais une fois que je corrige, je vois de nouveau apparaître "#Erreur" et ça toujours sur les mêmes lignes. J'ai vidé ma fonction pour qu'elle soit blanche et pareille dans la colonne, il y a marqué "#Erreur" sur les mêmes lignes.
    Sauriez-vous peut-être ce que cela signifie ?

    -
    Edité par Benzouye 29 mars 2022 à 15:47:09

    • Partager sur Facebook
    • Partager sur Twitter
      26 mars 2022 à 19:33:47

      Bonjour,

      Il est difficile de t'aider sans savoir de quoi l'on parle, tu devrais poster le code en question (VBA ?) et indiquer à quel endroit le problème apparaît, éventuellement avec une copie d'écran pour que l'on voit...

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        29 mars 2022 à 14:49:42

        Bonjour Benzouye,

        Malheureusement, je n'ai pas le droit d'envoyer de capture d'écran. Il s'agit bien d'un code VBA que j'utilise dans une requête sur Microsoft Access. J'ai remarqué que lorsque j'appelle une fonction et que j'efface une cellule d'une colonne utilisée en entré de cette fonction, j'ai en sortie dans ma requête à la ligne où j'ai effacé la cellule, dans la colonne ou j'appelle la fonction le message : #Erreur qui s'affiche. J'ai remarqué que lorsque j'appelle une fonction et que j'efface une cellule d'une colonne utilisée en entrée de cette fonction, j'ai en sortie dans ma requête à la ligne où j'ai effacé la cellule, dans la colonne ou j'appelle la fonction le message :

        Je vais essayer d'expliquer brièvement ce que je dois faire : disons que j'ai une table qui contient deux colonnes, la colonne de gauche contient le numéro des prises et celle de droite les appareils qui y sont branchés. Il y a certaines prise qui ne sont pas branché et donc la cellule de droite sera vide. Je veux créer une fonction pour vérifier que certains appareils sont bien branchés a des prises précise, par exemple que les frigos (nommés dans les cellules frigo1frigo2 et frigo3) soient bien branchés aux prises 4, 5 et 6.

        Du coup j'ai créé une fonction simple qui vérifie que si le numero de la prise est 4 ou 5 ou 6 et bien il faut que à gauche la cellule doit contenir le mot frigo et la meme chose dans l'autre sens si dans une cellule a gauche qui contient le mot frigo est associé à une autre prise que 4, 5 ou 6 et bien c'est une erreur. Dans ma requête, on a donc les deux colonnes de la table contenant les numéros des prises et le nom des appareils et une troisième colonne ma fonction qui prend en entrée les deux autres colonnes.

        Du coup pour tester mon algorithme et voir s'il identifie bien les erreurs, j'ai modifié mes données directement sur la table, ensuite, je lance la requête et vérifie que les erreurs ont bien été détecter et tout était bon. Le problème arrive après, une fois que j'ai corrigé la table pour la remettre comme elle était avant, je retourne sur ma requête et découvre que dans la colonne de ma fonction (sur les lignes ou j'ai apporté des modif dans la table) le mot #Erreur et inscrit.

        J'ai finalement découvert ou en tout cas pense avoir découvert pourquoi j'ai ce #Erreur qui s'affiche. Je pense que le fait de supprmier le contenu de cellule après un test la rend NULL et donc elle n'est pas utilisable par la fonction. Pour contourner ce problème, j'ai utilisé la fonction de Access Iif (VraiFaux) dans laquelle je vérifie si la cellule est nulle ou pas (IsNull(X)) si elle l'es je ne fais rien, sinon j'applique la fonction.

        Je ne suis pas sur a 100 % de ce que je dis vu que je débute en Access et je ne sais pas si j'ai été assez clair, mais si vous n'avez pas compris, je peux essayer de réexpliquer.

        Merci d'avoir pris le temps de lire mon message.

        -
        Edité par warzemo 29 mars 2022 à 14:49:59

        • Partager sur Facebook
        • Partager sur Twitter
          29 mars 2022 à 15:46:42

          Je te propose quand même de poster le code VBA en question.

          Déplacement vers un forum plus approprié

          Le sujet est déplacé de la section Base de données vers la section Autres langages (VBA, Ruby,...)

          • Partager sur Facebook
          • Partager sur Twitter
          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
            29 mars 2022 à 18:45:25

            Je pense que tu as bien résolu ton problème, après peut-être en voyant ta formule, on pourrait plus rentrer  dans le détail (pas une capture, mais un copier/coller de la formule, c'est plus pratique, et tu peux remplacer les données sensibles comme "machine super secrete" par "machine1")
            • Partager sur Facebook
            • Partager sur Twitter

            [VBA] Access affiche #Erreur

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown