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:
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:
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:
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