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

Bases de données Discussion :

Ouvrir un fichier Access (MDB)


Sujet :

Bases de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 316
    Par défaut Ouvrir un fichier Access (MDB)
    Bonjour,

    Etant obligé de travailler avec une base mdb, je voudrais acceder au fichier c:/base.mdb. il ne veut pas ouvrir le fichier. Voici comment je procede :

    le access.pro:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    QT       += core gui\
                sql
     
    TARGET = access
    TEMPLATE = app
     
     
    SOURCES += main.cpp\
            qtaccess.cpp
     
    HEADERS  += qtaccess.h
     
    FORMS    += qtaccess.ui
    le Access.h :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    #ifndef QTACCESS_H
    #define QTACCESS_H
     
    #include <QMainWindow>
     
     
    namespace Ui {
        class QtAccess;
    }
     
    class QtAccess : public QMainWindow
    {
        Q_OBJECT
     
    public:
        explicit QtAccess(QWidget *parent = 0);
        ~QtAccess();
     
    private:
        void read();
        Ui::QtAccess *ui;
    };
     
    #endif // QTACCESS_H
    le access.cpp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    #include <QtGui>
     
    #include "qtaccess.h"
    #include "ui_qtaccess.h"
    #include <QSqlDatabase>
    #include <QSqlQuery>
     
     
     
    QtAccess::QtAccess(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::QtAccess)
    {
        ui->setupUi(this);
        read();
    }
    void QtAccess::read()
    {
        QString file = "C:/base.mdb";
        QString table = "2010 03 19_exportse2005";
        QSqlDatabase m_db;
        m_db = QSqlDatabase::addDatabase("QODBC");
        QString dataBaseString = "DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=" + file;
        m_db.setDatabaseName(dataBaseString);
        if (m_db.open())
        {
            QString command = "SELECT  [2010 03 19_exportse2005].Matricule FROM " + table + " GROUP BY  [2010 03 19_exportse2005].Matricule";
            QStringList list;
            QSqlQuery resultat = m_db.exec(command);
            while (resultat.next())
            {
                list.append(resultat.value(0).toString());
            }
            ui->listWidget->addItems(list);
            m_db.close();
         }
         else
         {
            QMessageBox::critical(this, "Erreur", "Impossible d'ouvrir la base : " + file);
         }
    }
     
    QtAccess::~QtAccess()
    {
        delete ui;
    }
    le fichier est bien en c:\base.mdb, la table s'appelle bien :2010 03 19_exportse2005 et un des champs est bien : Matricule.

    message suivant qui s'affiche :

    QSqlDatabase: QODBC driver not loaded
    QSqlDatabase: available drivers: QSQLITE

    Cordialement

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut


    Le message d'erreur n'a rien de sibyllin : il te faut installer le plug-in ODBC, soit le compiler. Cf. la doc http://qt.developpez.com/doc/4.7/sql-driver/.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 316
    Par défaut
    bonsoir,

    je suis sous windows xp ou seven avec qt 4.7.4

    après avoir parcouru beaucoup d'article sur le sujet, il semble ne plus avoir de drivers QODBC ?

    j'ai remplacé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    m_db = QSqlDatabase::addDatabase("QODBC");
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    m_db = QSqlDatabase::addDatabase("QSQLITE");
    resultat :
    Plus de message sur QODBC, mais il ne veut toujours pas ouvrir la base. Il va sur "mon" message box : erreur impossible d'ouvrir C:/base.mdb.

    cordialement

  4. #4
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut
    C'est normal qu'il te râle dessus : demande à ton traducteur français-anglais de te traduire un document en chinois mandarin, cela lui posera un très léger problème. C'est la même chose : tu lui annonces du chinois et tu lui donnes du portugais, il n'apprécie guère. Ta seule solution est de compiler le plug-in ODBC (ou de réécrire un plug-in pour Access, mais j'éviterais franchement).
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  5. #5
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 316
    Par défaut
    Bonsoir,

    il te faut installer le plug-in ODBC, soit le compiler!!!!

    installer le plug-in ODBC => a priori introuvable.

    le compiler => j'veux bien compiler mais quoi !!!!
    dans ta doc pour windows il n'y a rien de precis.

    et je confirme que odbc est bien installé sur ma machine. (access 2003 aussi d'ailleur)

    Cordialement

  6. #6
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut
    Ah ?

    How to Build the ODBC Plugin on Windows

    The ODBC header and include files should already be installed in the right directories. You just have to build the plugin as follows:
    cd %QTDIR%\src\plugins\sqldrivers\odbc
    qmake odbc.pro
    nmake

    If you are not using a Microsoft compiler, replace nmake with make in the line above.

    Note: This database plugin is not officially supported for Windows CE.
    Sinon, la différence entre UNIX et Windows, ici, c'est la configuration des chemins, qui est considérée effectuée sous Windows...
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

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

Discussions similaires

  1. [PowerShell] Script pour ouvrir un fichier Access
    Par egphenix dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 23/05/2013, 14h59
  2. Ouvrir un fichier Access (ACCDB)
    Par Kermichou dans le forum Bases de données
    Réponses: 1
    Dernier message: 20/01/2012, 16h43
  3. Ouvrir un fichier access 97 sous access 2003
    Par kroma23 dans le forum Access
    Réponses: 1
    Dernier message: 28/01/2009, 15h07
  4. convertir fichier access MDB en base mysql
    Par ps3user dans le forum Décisions SGBD
    Réponses: 0
    Dernier message: 14/10/2008, 17h38
  5. Impossible d'ouvrir un fichier access
    Par squale32 dans le forum Access
    Réponses: 4
    Dernier message: 13/09/2006, 12h26

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