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

  1. #1
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut Excel SQL ADODB sur classeur en lecture seule
    Bonjour,

    Depuis plusieurs années, j'utilise cette méthode pour aller lire des fichiers excel via des requetes SQL.
    J'ai un problème, lorsque je vais lire un classeur qui est en lecture seule, le classeur s'ouvre au premier plan. Ce comportement n'est pas normal et je ne l'ai que sur les classeurs en lecture seule...
    Le fichier s'ouvre au moment du : Rst.Open requete, Cn, adOpenStatic

    Avez-vous déjà eu ce cas?

    Voici mon code :

    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
     
    Sub connexionbase(Fichier As String)
    Set Cn = New ADODB.Connection
        With Cn
            .Provider = "Microsoft.ACE.OLEDB.12.0"
            .ConnectionString = "Data Source=" & Fichier & _
                ";Extended Properties=Excel 12.0 Xml;"
            .ConnectionTimeout = 40
            .Open
        End With
        Set Rst = New ADODB.Recordset
    End Sub
     
     
    Sub Test()
    Dim requete as string
     
    requete = "Select `Champ` FROM [MaTable$] WHERE `Critere` = " & Valeur
    Call connexionbase(CheminVersLeFichier)
    Rst.Open requete, Cn, adOpenStatic
    If Rst.RecordCount > 0 Then
    'Du code
    Else
    'Du code
    End If
    End Sub
    Merci de votre aide

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    en jouant avec l'argument IMEX pour forcer la lecture seule ça ne fonctionne pas non plus ?

  3. #3
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut
    Salut, c'est peut être une piste, mais lorsque j'ajoute "IMEX=1" j'ai le message Piote ISAM introuvable.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par jojo86 Voir le message
    Salut, c'est peut être une piste, mais lorsque j'ajoute "IMEX=1" j'ai le message Piote ISAM introuvable.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With Cn
            .Provider = "Microsoft.ACE.OLEDB.12.0"
            .ConnectionString = "Data Source=" & Fichier & ";Extended Properties=""Excel 12.0 Xml;IMEX=1;"""
            .Open
        End Withl

  5. #5
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut
    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?

  6. #6
    Invité de passage
    Homme Profil pro
    Reporting & Analysis
    Inscrit en
    Janvier 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Reporting & Analysis
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1
    Par défaut Dadi Hdi
    Bonjour

    j'ai eu le meme souci, la solution c'est que tu télécharge un outil se synchronisation automatique tel que "synckBack" et tu syncronise le fichier en question sur un New dossier qui sera ton chemin d'accès connectionstring ( pas de lecteur seul )

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjours,
    IMEX=1 permet de s'affranchir du type string/numerique qui pourrait induire une erreur sur le typage des champs.

    Cette options rend fortuitement les requête en lecture seule mais ça n'a rien à voir avec ce qui te préoccupes.


Discussions similaires

  1. SQL Server 2005 - connexion en lecture seule
    Par garius31 dans le forum Administration
    Réponses: 8
    Dernier message: 14/12/2010, 14h53
  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