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 :

Excel SQL ADODB sur classeur en lecture seule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 128
    Par défaut Excel SQL ADODB sur classeur en lecture seule
    J'ai lu cette discussion.

    Citation Envoyé par jojo86 Voir le message
    Merci, plus de message d'erreur avec ton code, mais le fichier s'ouvre quand même au premier plan, c'est vraiment pénible ce comportement d'excel...
    Sinon j'ai pensé ouvrir le classeur de manière cachée et l'enregistrer en local sur le disque utilisateur et ensuite utiliser ce fichier comme base de données...

    En fait je viens de comprendre que si une personne est ouverte en modif sur la base de données, alors le fichier s'ouvre à l'écran... Savez-vous comment éviter ça?

    Bonjour jojo.
    Il vient de m'arriver le même problème aujourd'hui.
    Le classeur dans lequel j'exécute ma requête SQL est protégé (moi je n'y ai que l'accès en lecture seul). Du coup mon instance Excel l'ouvre et là ça plante à cause des macros exécutées à l'ouverture du classeur.

    J'utilise le même code que toi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim cn As ADODB.Connection, rs As ADODB.Recordset
    Set cn = New ADODB.Connection
    cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & ExternalWB_FullName & "';Extended Properties='Excel 12.0;HDR=Yes;IMEX=1';"
    Je vais continuer de chercher une solution pour empêcher Excel d'ouvrir le classeur.
    Mais dans le PIRE des cas, pour respecter mes deadlines je pense être obligé de faire une copie temporaire du classeur, qui elle ne posera aucun problème.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
           "Data Source=" & ThisWorkbook.Path & "\" & ThisWorkbook.Name & ";" & _
            "Extended Properties=""Excel 12.0;HDR=No;IMEX=1;Readonly=Yes"";"

  3. #3
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 128
    Par défaut
    En effet, ça marche.
    Pourquoi faire compliqué quand on peut faire simple

    Un gros merci !

    Discussion résolue !


    EDIT: Si le classeur est ouvert par un autre utilisateur, mon instance Excel l'ouvre quand même.
    De plus,manipuler directement un fichier en production n'est pas recommandé. Du coup je vais passer par une copie du classeur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim fs As Object
    Dim path_WB_to_copy As String 'chemin + nom du classeur a copier
    Dim path_WB_to_paste As String ' chemin + nouveau nom de la copie
     
    path_WB_to_copy = "C:\ .... \classeur1.xlsx"
    path_WB_to_paste = "C:\ .... \classeur2.xlsx"
     
    Set fs = CreateObject("Scripting.FileSystemObject")
    fs.CopyFile path_WB_to_copy, path_WB_to_paste
    Set fs = Nothing
    Et là, une fois la copie faite, je peux faire TOUT ce que je veux dessus. Et si une erreur arrive ça n'aura pas d'impact sur la production car c'est une copie.

    Slooby !

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

Discussions similaires

  1. Excel SQL ADODB sur classeur en lecture seule
    Par jojo86 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 30/01/2019, 19h35
  2. Protection classeur en lecture seul
    Par lelou54 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 21/08/2010, 12h58
  3. Connexion ADO sur mdb en Lecture seule impossible ?
    Par ak_damien dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/02/2010, 13h58
  4. SQL server 2008 Problème de lecture seule
    Par Kalion dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/03/2009, 13h20
  5. ouvrir un classeur en lecture seule
    Par dtmch3 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/02/2009, 10h48

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