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 à une base de données SQL Server


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de arcane
    Inscrit en
    Avril 2003
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 313
    Par défaut Connexion à une base de données SQL Server
    Bonjour,
    Je teste une connexion à une base SQL Server 2019 pour inclure une table dans une feuille Excel (en fait, exécuter n'importe quelle requête SQL)
    J'ai cette macro :
    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
    Sub MacroArc()
     
        Dim Requete As String, Id As String
     
        Dim qt As QueryTable
        Dim rDest As Range
     
     
    Const sConnect = "ODBC;" & "Driver={SQL Server Native Client 11.0};" & "Server=SRV-SQL, 1433;" & "Database=DIST_PARIS;" & "Trusted_Connection=no"
     
        Requete = "SELECT * FROM DIST_PARIS.TOURNEE ;"
        MsgBox Requete
     
    Set rDest = Sheets("Feuil1").Range("A1")
    rDest.CurrentRegion.Clear
     
    Set qt = rDest.Parent.ListObjects.Add(SourceType:=xlSrcQuery, Source:=Array(sConnect), Destination:=rDest).QueryTable
     
    With qt.Parameters.Add("ProductID", xlParamTypeVarChar)
        .SetParam xlRange, Sheets("Feuil1").Range("Z1")
        .RefreshOnChange = True
    End With
     
    With qt
        .CommandText = Requete
        .CommandType = xlCmdSql
        .AdjustColumnWidth = True
        .BackgroundQuery = False
        .Refresh
    End With
     
    Set qt = Nothing
    Set rDest = Nothing
     
    End Sub
    Cela fait une erreur d'exécution 1004 sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set qt = rDest.Parent.ListObjects.Add(SourceType:=xlSrcQuery, Source:=Array(sConnect), Destination:=rDest).QueryTable
    Puis
    [Microsoft][SQL Server Native Client 11.0][SQL Server]Nom d'objet 'DIST_PARIS.TOURNEE' non valide
    Au final, j'essaye de faire une macro générique pour effectuer cette connexion.
    Un peu d'aide serait bienvenue.
    Merci

  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 562
    Par défaut
    Bonjour

    Pourquoi ne pas utiliser PowerQuery pour cela ?

    C'est intégré à ta version Excel et prévu pour

  3. #3
    Membre éclairé Avatar de arcane
    Inscrit en
    Avril 2003
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 313
    Par défaut
    A ma connaissance (limitée il est vrai) dans Power Query tu exécutes une requête fixe.
    Mon but est de pouvoir construire la requête SQL.

    A moins qu'il y a la possibilité de construire une requête SQL et de la passer en power Query ? Je n'ai pas cherché dans ce sens.
    De plus, potentiellement ce n'est pas une seule mais plusieurs requêtes que je voudrais exécuter dans le même Excel.
    Merci

  4. #4
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 562
    Par défaut
    Bonjour

    On peut mettre la requête en SQL dans PowerQuery : exemple sur Access
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =  Odbc.Query("dsn=Societes_Formation", "select * from ca_mensuel where mois ='mars'")

Discussions similaires

  1. connexion une base de données SQL Server à distance
    Par laklak dans le forum Bases de données
    Réponses: 22
    Dernier message: 30/05/2007, 17h23
  2. Réponses: 5
    Dernier message: 18/05/2007, 14h34
  3. Connexion à une base de données SQL Server
    Par tsdia2 dans le forum Accès aux données
    Réponses: 5
    Dernier message: 06/04/2007, 11h32
  4. [SQL-Server] Connexion à une base de donnée SQL Server
    Par dieudo dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 15/05/2006, 14h00
  5. Réponses: 3
    Dernier message: 29/03/2004, 18h02

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