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 :

Connection ADOBD pour utiliser SQL en vba EXCEl


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 26
    Par défaut Connection ADOBD pour utiliser SQL en vba EXCEl
    Bonjour ;

    j'essai d'utiliser SQL pour une recherche mutictitères sur une feuille EXcel, et j'ai un prob de connection ADOBD je crois sachant que j'ai instalé Microsft ActiveX DAta objects 2.8 Library.

    quand j'exsécute mon code un bug m'indique que la feuille en question n'existe pas alors qu'il y'est dans mon classeur

    en cherchant plus loin j'ai conclu que la connection ODBC n'est pas établit du coup elle trouve pas mes tables(onglets)

    quelqu'un aura t-il une solution ou une idée ?
    Merci beaucoup,ci-aprés mon bout du 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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Dim Conn As ADODB.Connection
    Dim rsT As ADODB.Recordset
    Dim Fichier As String, Direction As String, rSQL As String
    Dim Nbenreg As String
     
     
        Direction = ThisWorkbook.Path
        Fichier = Classeur
     
        'Mise en place de la connexion avec le fichier
        Set Conn = New ADODB.Connection
            With Conn
                .Provider = "Microsoft.Jet.OLEDB.4.0"
                .ConnectionString = "Data Source=" & Classeur & _
                ";Extended Properties=Excel 8.0;"
                .Open
            End With
     
           rSQL = "SELECT * FROM [Priorités$] WHERE [rpm_pole]<> 'DP'"
        'Exécution de la Recherche SQL
        Set rsT = New ADODB.Recordset
            With rsT
                .ActiveConnection = Conn
                .Open rSQL, , adOpenKeyset, adLockOptimistic, adCmdTableDirect
            End With
     
        Nb_résultats = rsT.RecordCount
     
      Sheets("Résultat").Select
      Nbenreg = Range("A2").End(xlDown).Row
      Range("A2:IV" & Nbenreg).Select
      Selection.Delete
      Sheets("Priorités").Select
      Sheets("Priorités").Rows("1:1").Select
      Selection.Copy
      Sheets("Résultat").Select
      Rows("1:1").Select
      ActiveSheet.Paste
     
      Sheets("Résultat").Range("A2").CopyFromRecordset rsT

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    A tout hasard http://www.developpez.net/forums/sho...0&postcount=14
    Si ça peut t'être utile...

  3. #3
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonjour,

    Je ne comprend pas comment tu définis le nom de ton classeur:
    "Classeur" est une autre variable ?



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .ConnectionString = "Data Source=" & Classeur & _
    est ce que ça ne devrait pas être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .ConnectionString = "Data Source=" & Direction & "/" & Fichier & _




    Sinon, pour vérifier le nom des feuilles dans ton classeur fermé:

    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
    Sub ListeFeuillesClasseurFerme()
        Dim XlConnect As Object, XlCatalog As Object
        Dim Fichier As String, Resultat As String
        Dim Feuille As Object
     
        Fichier = "C:\dossier\Nom classeur.xls"
     
        Set XlConnect = CreateObject("ADODB.Connection")
        Set XlCatalog = CreateObject("ADOX.Catalog")
     
        XlConnect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Fichier & _
                ";Extended Properties=Excel 8.0;"
        Set XlCatalog.ActiveConnection = XlConnect
     
        For Each Feuille In XlCatalog.Tables
            Resultat = Resultat & Feuille.Name & vbCrLf
        Next
     
        MsgBox Resultat
    End Sub


    bonne journée
    michel

  4. #4
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 26
    Par défaut
    rebonjour

    je m'explique un peu mieux
    en fait j'vais déja déclarer le chemin+nom de mon fichier et je lui ai donné le nom "classeur" ensuite moi je travail sur le meme classeur et pas un classeur fermé
    voilà

    ce que je comprends pas que sur un poste je me rappel que j'avais reussi à faire tourner ma macro et ça marchait mais pas sur le poste là où je suis en ce moment

  5. #5
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 26
    Par défaut
    je m'excuse pour ma façon d'ecriture, je tiens à remercier SilkyRoad et ouskel'n'or. le probleme est résolu

    bonne aprém

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

Discussions similaires

  1. Utiliser AdvancedSearch sous VBA Excel pour lire les emails d'Outlook
    Par jean.cdc dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/02/2011, 15h29
  2. Réponses: 5
    Dernier message: 27/05/2008, 18h43
  3. l'avantage d'utiliser un module vba excel ?
    Par hich24 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/04/2008, 17h55
  4. Aide pour simplifier un code VBA Excel
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 24/01/2008, 16h15
  5. documentation pour une formation au vba excel version 2000
    Par zobusfr dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/05/2007, 19h17

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