Bonjour,

Je souhaite à mettre en place une BDD type fichier avec MS Access et réaliser son client sous Qt.
Je voudrai que chaque utilisateur possède un compte sur cette BDD et qu'il y ai plusieurs types de compte (Administrateur, lecture seule, lecture / écriture).
J'ai donc créé un "groupe de travail" sous Access pour verrouiller la base. Donc quand je me connecte sur la base via Access, il n'y a pas de problème, on me demande bien l'utilisateur et le mot de passe, les différents droits des utilisateurs sont bien pris en compte, etc.
Je cherche à me connecter à cette BDD via mon client créé, j'utilise donc le driver ODBC et y renseigne les éléments de connexion d'un utilisateur du groupe. Mon client me donne le message d'erreur suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
[Microsoft][Pilote ODBC Microsoft Access] Vous n'avez pas l'autorisation requise pour utiliser l'objet '(Inconnu)'. Demandez l'autorisation requise à votre administrateur système ou à la personne ayant créé cet objet.
QODBC3 : Unable to connect
Par contre quand je verouille la BDD par un simple MDP sans utiliser de "groupe de travail" je peux renseigner celui-ci dans mon client et la connexion est établie , mais ce n'est pas ce que je cherche ...
Je met mon code pour me connecter mais je ne pense pas que le problème vienne de là.
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
 
#include <QDebug> 
#include <QtSql> 
#include <QSqlError>
 
#include "MessageBoxes.h"
#include<QMessageBox>
 
void successful_connection();
void failed_connection(QSqlDatabase);
 
bool createConnection(QString id, QString mdp)
{
    bool found = 0;
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
 
    db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=TableUsers.mdb");
    qDebug() << "Database name : " << db.databaseName();
 
    db.setUserName(id); 
    qDebug() << "User name : " << db.userName();
 
    db.setPassword(mdp); 
    qDebug() << "Password entered";
 
    if(!db.open()) 
    {
        qDebug() << "Erreur";
        found = 0;
        failed_connection(db);
    }
 
    if(db.open())
    {
        //qDebug() << "Vous etes maintenant connecté a " << db.hostName();
        successful_connection();
        found = 1;
    }
    return found;
}
Si quelqu'un a déjà rencontré ce probléme ou a tout simplement une idée, je suis preneur!

Merci.