Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur connection à base de données

    13 juillet 2019 à 18:42:10

    Bonjour,

    je dois, pour un projet, réaliser une interface graphique en python. Cette interface permettant de gérer une base de donnée.

    Je suis obligé d'utiliser Microsoft Access comme base de donnée. Celui-ci a été installer avec mon pack Office 365 en 64-bits, je possède la dernière version de Python en 32-bits et en 64-bits.

    Je souhaite me connecter à ma base de données, j'importe donc "pyodbc" et tente une connection.

    import pyodbc
    
    
    
    conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=D:\Programmation\Python\Test\test.accdb;')
    cursor = conn.cursor()
    cursor.execute('SELECT * FROM Patients')
    
    

    Problème: la connection n'a pas lieu et ce message d'erreur m'est retourné : 

    "pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié (0) (SQLDriverConnect)')".

    Après de nombreuses recherches sur le web, j'en conclue que j'ai un problème de version entre mon Python et MS Access, cependant j'ai tenté a de multiples reprises d'installer les bonnes versions (32-bits/64-bits) entre Python et MS Access. Impossible de résoudre le problème....

    Avez-vous une idée ?

    Merci.

    • Partager sur Facebook
    • Partager sur Twitter
      13 juillet 2019 à 22:41:41

      Salut

      Après des recherches sur le web, d'accord. Mais, tu as simulé le problème que tu as déduit ?

      Synchronise les bonnes versions de Python et d'Access et teste une petite base de données. La portion de phrase "Source de données introuvable" me fait penser à une erreur quant au chemin d'accès à la base de données.

      • Partager sur Facebook
      • Partager sur Twitter
        14 juillet 2019 à 0:05:22

        Merci de ta réponse

        alors oui j'ai essayé de synchroniser les bonnes versions de Python et d'Access pour tester avec une petite base de données, mais ça ne marche pas rien n'y fait.

        J'ai tenté d'accéder a ma base de données par différentes manières (URL vers le fichier, nom du fichier directement, etc..) mais le problème revient toujours..

        • Partager sur Facebook
        • Partager sur Twitter
          14 juillet 2019 à 0:56:51

          Je ne connais pas pyodbc, et fais très peu de gestion de bdd avec python. Je ne peux pas t'aider plus. Dommage que tu sois pieds et poings liés à Access parce que je suis sûr que tu peux mener à bien ton projet, ou du moins, 90% avec le système de gestion sqlite3 qui est intégré à Python.

          • Partager sur Facebook
          • Partager sur Twitter
            14 juillet 2019 à 13:29:04

            Salut,

            Je regarde la documentation et je trouve ceci: https://github.com/mkleehammer/pyodbc/wiki/Connecting-to-Microsoft-Access

            Plus particulièrement cette partie:

            Therefore, if you already have Microsoft Office it is highly recommended that you use a Python environment that matches the "bitness" of the Office install.)

            D'après ce que tu as dit, tu as installé Office en 64 bits. Donc tu dois utiliser Python 64 bits. Ensuite j'essaierais le petit bout de code donné dans le wiki pour tester les drivers trouvés:

            >>> import pyodbc
            >>> [x for x in pyodbc.drivers() if x.startswith('Microsoft Access Driver')]

            Finalement, en comparant ton code à celui du wiki, je vois qu'il a écrit DRIVER en majuscules. Je ne sais pas si ça a une importance.

            -
            Edité par Dan737 14 juillet 2019 à 13:31:53

            • Partager sur Facebook
            • Partager sur Twitter

            Erreur connection à base de données

            × 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