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

Macros et VBA Excel Discussion :

Connexion ADO sur mdb en Lecture seule impossible ?


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 8
    Points
    8
    Par défaut Connexion ADO sur mdb en Lecture seule impossible ?
    Bonjour à tous,

    Cela fait maintenant plus de 2 jours que je suis bloqué sur ce problème là. Je pense qu'il y a 2 options : soit c'est impossible, soit c'est simple comme bonjour mais je trouve pas, c'est pourquoi je demande vos lumières.

    J'ai donc un code VBA dans un classeur Excel qui établit une connexion ADO sur un fichier mdb situé sur un dossier réseau. Tout fonctionne à merveille sur mon poste.

    J'installe mon appli sur le poste d'un client, et là j'ai une erreur sur la méthode Open de mon object ADODB.Connection.

    L'erreur est la suivante : Erreur d'éxécution : Vous n'avez pas l'autorisation requise pour utiliser l'objet "path\base.mdb". Demandez l'autorisation requise à votre administrateur....."

    Bon j'ai quand même trouvé que mon client n'ayant pas les droits en écriture sur le dossier de la base de données mdb, c'est pourquoi ca plante.

    MA question pour finir est la suivante : est-il possible d'établir une connexion ADO sur un objet mdb qui est en lecture seule ? (J'ose espérer que oui) et si oui quelles manip VB/Access dois-je effectuer.

    Le bout de code bien utile avec les tests que j'ai fait (changer le mode de connexion adReadOnly, etc..)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim cnx As ADODB.Connection
    Set cnx = CreateObject("ADODB.Connection")
    cnx.Provider = "Microsoft.Jet.OLEDB.4.0"
    cnx.Open "\\miafs713\Vol1\SHARE\DOE\EUR_L_F_TR\rCOUTS_TRP\100\frfr\DATA\COUTS_TRP_DAT.mdb" 
    'C'est le open qui plante
    Merci de vos réponses,

    Damien.

  2. #2
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    Salut
    Il y a un sujet similaire qui traine dans les 10 derniers postés.
    En fait il te faut definir le readonly dans le connectionstring de ta connection ADO, définir le provider comme tu le fais ne suffit pas

    Avec M$ Jet je dirais quelque chose comme ça, je ne l'ai pas testé sur VBA mais c'est ce que j'utilise dans un autre langage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim CheminBD as string
    CheminBD = "\\miafs713\Vol1\SHARE\DOE\EUR_L_F_TR\rCOUTS_TRP\100\frfr\DATA\COUTS_TRP_DAT.mdb"
    cnx.ConnectionString =  "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=" & cheminBD & ";Mode=ReadOnly;"
    cnx.open
    Je l'ai adapté mais je te garanti rien, si ca ne fonctionne pas essai de definir
    Je te met le lien de l'autre discutions, attention en fonction du provider, les paramètres ne correspondent pas forcement

    En espérant que ça fonctionne
    A++
    Qwaz

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Merci pour ta réponse Qwazerty.

    Malheureusement cela ne fonctionne pas. J'ai déjà essayer de changer la propriété mode de ma connexion mais cela ne suffit pas. J'ai toujours le même message d'erreur.

    J'ai également essayer des chose qui en théorie fonctionnent comme ici : http://www.xtramania.com/Documentati...ra/FAQs/Cdrom/

    Mais sans succès, je me demande si ce n'est pas dans les paramètre de ma base Access que le problème se situe. Quelqu'un d'autre a-t-il eu le problème ?

    Merci !

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 48
    Points : 40
    Points
    40
    Par défaut
    Juste comme ça, est ce que ce client ou d'autres ayant access sur leur poste peuvent ouvrir cette base en lecture seule sans avoir recours à du VBA ?
    Car si ça ne marche pas non plus ainsi il faudra peut être vérifier les droits plus profondément les droits de sécurité du fichier et du partage.

    Sinon j'aurais dit comme Qwazerty, je fais ça sur des fichiers Excel en lecture seule, comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With Cn
        .Provider = "MSDASQL"
        .ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _
            "DBQ=" & Fichier & "; ReadOnly=True;"
        .Open
    End With

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    En fait, ce qui me fait penser que cela vient de mon fichier mdb c'est que si je ne met pas le bon mode Read Share, je n'ai pas le même message d'erreur : J'obtient un truc du genre "impossible de verrouiller la base."

    Là le message me dit clairement que c'est cette base sur laquelle je n'ai pas les autorisations.

    Tous les exemple que j'ai trouvé sur le net arrivent à se connecter à une base sur cd je vois pas la différence avec une base sur un disque réseau en lecture seule.

    Et oui, pour te répondre les clients ont access et peuvent ouvrir la base mais ils ont le message "La base est ouverte en lecture seule, vous ne pourrez pas modifier.."

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Bon, je clôture ce post j'ai trouvé comment contourner le problème mais la cause est toujours inconnue.

    Qu'ai-je donc bien pu faire ?

    Juste créer une nouvelle base Access mdb et d'y importer les objets de la base précédente qui posait soucis.

    Au final avec le code initial : aucun problème.

    C'est toujours bon à savoir pour ceux à qui un phénomène comme ça arriverait.

    Bonne journée à tous!

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

Discussions similaires

  1. [XL-2007] Connexion ADO sur TXT
    Par nako13 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 19/06/2013, 19h28
  2. Connexion php sur une base MSSQL Server impossible
    Par momosan dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 19/03/2012, 19h44
  3. connexion ado sur base access
    Par olibara dans le forum ADO.NET
    Réponses: 6
    Dernier message: 01/05/2011, 13h33
  4. base en lecture seule : impossible à modifier
    Par dumca dans le forum Access
    Réponses: 4
    Dernier message: 11/05/2007, 12h09
  5. Desactivation de la lecture seule impossible
    Par MrEddy dans le forum Windows XP
    Réponses: 7
    Dernier message: 12/03/2007, 14h13

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