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

Access Discussion :

[OLE DB] Autorisation de lecture sur Msysobjects


Sujet :

Access

  1. #1
    Membre habitué Avatar de petit arbre
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 143
    Points : 153
    Points
    153
    Par défaut [OLE DB] Autorisation de lecture sur Msysobjects
    Bonjour,

    Je suis connecté à une base Access via OLE DB 4.0 et je tente de lire la table Msysobjects.
    J'ai l'erreur suivante :

    pas d'autorisarion de lecture sur Msysobjects.

    Comment peut-on faire pour contourner ce problème?

    MErci d'avance

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Arrives tu à lire la table depuis Access ?

    Peut être une limitation du fournisseur OLEDB

    Mais pourquoi veut tu lire cette table ? Ce n'est pas très conseillé

  3. #3
    Membre habitué Avatar de petit arbre
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 143
    Points : 153
    Points
    153
    Par défaut
    Je veux récupérer les liaisons entre les tables.
    C'est effectivement peut être une limitation d'OLE DB qui ne permet pas de lire les tables systèmes.
    ceci dit ça vient d'Access car sous Oracle, Sql server ou autre on y arrive.

  4. #4
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Pour une telle manipulation, il est préférable de travailler avec les modèles objets correspondant plutot que de lire les données dans les tables systèmes (qui dépendent des versions d'Access). Avec ADOX par exemple, tu pourras consulter facilement les relations

  5. #5
    Membre habitué Avatar de petit arbre
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 143
    Points : 153
    Points
    153
    Par défaut
    Merci pour ton aide, il y a de la docu sur ADox sur le site?
    ou alors c'est simple et tu peux m'indiquer rapidement?

  6. #6
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311

  7. #7
    Membre habitué Avatar de petit arbre
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 143
    Points : 153
    Points
    153
    Par défaut
    Encore une fois merci, je vais regarder ça de plus près !!

  8. #8
    Membre actif
    Inscrit en
    Août 2005
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 96
    Points : 205
    Points
    205
    Par défaut Pas d'autorisation de lecture sur 'MSysObjects'
    Supprimer l'erreur "Impossible de lire les enregistrements; pas d'autorisation de lecture sur 'MSysObjects'"

    IL faut modifier (ou créer) à partir d'access le fichier System.mdw présent normalement par défaut dans "C:\Documents and Settings\votre_compte\Application Data\Microsoft\Access\System.mdw"

    Ce fichier contient les informations du groupe de travail gérant les droits d'accès des utilisateurs au différentes tables de la base.

    Voir : Comprendre et mettre en oeuvre la sécurité sous Microsoft Access

    -Ouvrir dans Access la base à accéder
    -Faire Outils/Sécurité/Administrateur du groupe de travail puis rejoindre

    Si le fichier System.mdw existe :
    -Sélectionner le fichier System.mdw
    Sinon
    -Créer le fichier System.mdw

    -Faire Outils/Sécurité/Autorisations d'accès
    -Dans la liste "type objet" sélectionner "tables"
    -Dans la liste "Nom objet" sélectionner "'MSysObjects"
    -Dans la partie "Autorisations d'accès", cliquer sur "Administrer"

    Vous pouvez accéder au fichier.

    Avec Windev, exemple de code pour lister les tables d'une base access :

    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
     
    //Connection à la source de données
    b_result = SQLConnecte(c:\ma_base_access.mdb,"","passe","","OLEDB","Microsoft.Jet.OLEDB.4.0")
    SI b_result = 0 ALORS
    SQLInfoGene()
    Info("Code erreur : "+SQL.Erreur+RC+...
    SQL.MesErreur)
    RETOUR
    FIN
     
    //Exécution de la requête
    SI PAS SQLExec("SELECT MSysObjects.Name, MSysObjects.Type FROM MSysObjects WHERE MSysObjects.Type IN(6,1)","REQ" 
     
    ALORS
    SQLInfoGene()
    Info("Code erreur : "+SQL.Erreur+RC+...
    SQL.MesErreur...
    )
    SQLFerme("REQ")
    FIN
     
    i est un entier
    table_nom est une chaîne
    TANTQUE SQLAvance("REQ") = 0// Il y a encore une ligne à lire
    i++
    table_nom = SQLLitCol("REQ", 1)
    tableAjouteLigne(ma_table,table_nom)
    FIN
    SQLFerme("REQ")
    Bonne prog !

  9. #9
    Membre habitué Avatar de petit arbre
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 143
    Points : 153
    Points
    153
    Par défaut
    Alors ça c'est une bonne piste !!!!
    Merci beaucoup ...

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 72
    Points : 37
    Points
    37
    Par défaut MSysObject invisible!
    Bonjour,

    Comment je fais la manip si MSysObject est invisible ? J'arrive à la trouver à partir d'une requête SELECT * mais elle n'apparaît ni dans la liste des tables, ni dans la fenêtre dans laquelle tu nous dis d'aller..

    Merci
    Pour la Terre et vos économies, pensez à une maison passive et à la renovation.

  11. #11
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 799
    Points
    799
    Par défaut
    Comment je fais la manip si MSysObject est invisible ? J'arrive à la trouver à partir d'une requête SELECT * mais elle n'apparaît ni dans la liste des tables, ni dans la fenêtre dans laquelle tu nous dis d'aller
    Outils/options/Affichage "objets système"

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 72
    Points : 37
    Points
    37
    Par défaut
    Rho la honte.

    Merci !
    Pour la Terre et vos économies, pensez à une maison passive et à la renovation.

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

Discussions similaires

  1. autorisation de lecture sur dossier
    Par ppphil dans le forum C#
    Réponses: 5
    Dernier message: 11/01/2011, 08h59
  2. Autorisation d'accès sur internet
    Par ibtisss dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 12/09/2005, 15h35
  3. Erreur de lecture sur BD Access avec delphi
    Par e120650 dans le forum Bases de données
    Réponses: 1
    Dernier message: 10/06/2005, 10h17
  4. [C#] lecture sur port série
    Par Iokanaan dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/05/2005, 13h50
  5. [Kylix] Lecture sur le port série en C++
    Par MD Software dans le forum EDI
    Réponses: 1
    Dernier message: 08/05/2004, 12h52

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