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 :

Requête SQL et Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti

    Homme Profil pro
    Directeur comptable
    Inscrit en
    Septembre 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Directeur comptable
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2007
    Messages : 37
    Par défaut Requête SQL et Excel
    Bonjour à tous,
    Je suis en train d'écrire une macro VBA qui exécute une requête SQL entre deux tables contenues dans deux feuilles Excel. Le résultat doit s'afficher dans une troisième feuille.
    Avec certaines requêtes (type SELECT * FROM [Feuil1$] WHERE...) ça fonctionne sans problème très rapidement.
    Mais avec une jointure, Excel rame et ne parvient à rien.
    Si quelqu'un pouvait me dire d'où ça vient, cela me retirerait une épine du pied.
    Je tiens à préciser que j'ai essayer ma requête avec ACCESS, et cela fonctionne très bien.
    Merci d'avance de vos réponses,
    Bonne soirée,
    Benoît

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    Sub Requête(ClasseurRequête As String, OngletRequête As String, CellulesDestination As String, SourceDonnées As String, OngletDonnéesEtafi As String, TexteRequête As String)
        Dim i As Integer
     
        'Efface les données
        Workbooks(ClasseurRequête).Sheets(OngletRequête).Range("A1:BZ50000").ClearContents
        'Efface les connexions préexistantes
        Workbooks(ClasseurRequête).Sheets(OngletRequête).Select
        For i = 1 To ActiveWorkbook.Connections.Count
            ActiveWorkbook.Connections.Item(1).Delete
        Next i
        'Importe les données
        With Workbooks(ClasseurRequête).Sheets(OngletRequête).ListObjects.Add(SourceType:=0, Source:=Array( _
            "OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;Data Source=" & SourceDonnées & "" _
            , _
            ";Mode=Share Deny Write;Extended Properties=""HDR=YES;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path=" _
            , _
            """"";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=37;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2" _
            , _
            ";Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encryp" _
            , _
            "t Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False" _
            , _
            ";Jet OLEDB:Support Complex Data=False;Jet OLEDB:Bypass UserInfo Validation=False" _
            ), Destination:=Range(CellulesDestination)).QueryTable
            .CommandType = xlCmdSql
            .CommandText = TexteRequête
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .PreserveColumnInfo = True
            .SourceDataFile = SourceDonnées
            .ListObject.DisplayName = OngletRequête
            .Refresh BackgroundQuery:=False
        End With
     
        'Efface les connexions
        Workbooks(ClasseurRequête).Sheets(OngletRequête).Select
        For i = 1 To ActiveWorkbook.Connections.Count
            ActiveWorkbook.Connections.Item(1).Delete
        Next i
     
     
    End Sub
     
     
     
    Sub DemandeRésultatRequête()
        s = "SELECT [Temp_ReqPC2$].[Entité], [Temp_ReqPC2$].[Compte10], [Temp_ReqPC1$].[Libellé] FROM [Temp_ReqPC2$] LEFT JOIN [Temp_ReqPC1$] "
        s = s + "ON [Temp_ReqPC2$].[Entité] & '/' & [Temp_ReqPC2$].[MaxPériode] & '/' & [Temp_ReqPC2$].[Compte10]=[Temp_ReqPC1$].[Entité] & '/' & [Temp_ReqPC1$].[Période] &'/'& [Temp_ReqPC1$].[Compte10]"
        '---Exécution de la requête
        Requête NomClasseurTables, "Feuil2", "$A$1", CheminClasseurs & "\" & NomClasseurTables & ExtClasseurXL, NomOngletTables_BGCIN, s
     
    End Sub

  2. #2
    Membre averti

    Homme Profil pro
    Directeur comptable
    Inscrit en
    Septembre 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Directeur comptable
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2007
    Messages : 37
    Par défaut
    Bonsoir,
    Vraiment personne pour m'aider à résoudre mon problème de LEFT JOIN ?
    Benoît

Discussions similaires

  1. [XL-2007] requête sql enVBA Excel
    Par wisdo dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 13/03/2012, 13h38
  2. Réponses: 9
    Dernier message: 11/10/2010, 18h29
  3. Aide requête SQL + extraction Excel
    Par mary-ppa01 dans le forum Débuter
    Réponses: 3
    Dernier message: 09/06/2010, 16h24
  4. Exporter une requête SQL vers excel
    Par Info_76 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/08/2007, 09h09
  5. [MySQL] requête sql vers excel en php
    Par jenny06 dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 20/04/2007, 11h27

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