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 :

VBA et sql server


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2019
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2019
    Messages : 59
    Points : 40
    Points
    40
    Par défaut VBA et sql server
    Hello,

    J'essaye de lancer une requête SQL depuis Excel via une macro dans SQL SERVER 2017, et rappatrier le résultat de la requête dans Excel.

    Mais j'ai une erreur 3709 ...

    Pouvez-vous m'aider svp ? Je suis sur office 365 + SQL SERVER 2017 (Ref ACTIVE X DATA OBJECT 6.1 cochée)

    Erreur sur cette Ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     rs.Open SQLStr, Cn, adOpenStatic
    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
    Dim Cn As ADODB.Connection
        Dim Server_Name As String
        Dim Database_Name As String
        Dim User_ID As String
        Dim Password As String
        Dim SQLStr As String
        Dim rs As ADODB.Recordset
        Set rs = New ADODB.Recordset
     
        Server_Name = "MON_SERVEUR" ' Enter your server name here
        Database_Name = "ANA" ' Enter your database name here
        User_ID = "TOTO" ' enter your user ID here
        Password = "TITI" ' Enter your password here
     
        SQLStr = "SELECT * FROM MATABLE" ' Enter your SQL here
     
        Set Cn = New ADODB.Connection
        Cn.connectionstring = "Provider=SQLNCLI11;Server=" & Server_Name & ";Database=" & Database_Name & _
        ";Uid=" & User_ID & ";Pwd=" & Password & ";"
     
        rs.Open SQLStr, Cn, adOpenStatic
         ' Dump to spreadsheet
        With Worksheets("Feuil2").Range("a1:z5000") ' Enter your sheet name and range here
            .ClearContents
            .CopyFromRecordset rs
        End With
         '            Tidy up
        rs.Close
        Set rs = Nothing
        Cn.Close
        Set Cn = Nothing
    Merci par avance.

    R@g

  2. #2
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 419
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonjour,
    Maintenant pour la qualité de la requête !??

    Il ne faut pas oublier d'ouvrir la connexion !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
         ' Dump to spreadsheet
    Cn.connectionstring = "Provider=SQLNCLI11;Server=" & Server_Name & ";Database=" & Database_Name & _
        ";Uid=" & User_ID & ";Pwd=" & Password & ";"
     Cn.open
        With Worksheets("Feuil2").Range("a1:z5000") ' Enter your sheet name and range here
            .ClearContents
            .CopyFromRecordset cn.execute(SQLStr)
        End With

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2019
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2019
    Messages : 59
    Points : 40
    Points
    40
    Par défaut
    Hello,

    Merci pour ta réponse.

    La requête est + interessante que ça mais c'était pour l'exemple.

    J'ai une erreur sur mon identifiant maintenant ...

    Pourtant j'ai bien pris celui indiqué dans sql server ...

    Auriez-vous une idée de ce qui coince ?

    Merci à vous.

    R@g

  4. #4
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 419
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim Cn As new ADODB.Connection
    Cn.open "Provider=SQLOLEDB.1;Password=" & PassWord & ";Persist Security Info=True;User ID=" & User & ";Initial Catalog=" & Base & ";Data Source=" & Server
    
    

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2019
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2019
    Messages : 59
    Points : 40
    Points
    40
    Par défaut
    Hello,

    Nope toujours une erreur mais elle a changé.

    "Invalid connection string atribute"

    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
    Dim Cn As ADODB.Connection
        Dim Server_Name As String
        Dim Database_Name As String
        Dim User_ID As String
        Dim Password As String
        Dim SQLStr As String
        Dim rs As ADODB.Recordset
        Set rs = New ADODB.Recordset
     
        Server_Name = "MON_SERVEUR" ' Enter your server name here
        Database_Name = "ANA" ' Enter your database name here
        User_ID = "TOTO" ' enter your user ID here
        Password = "TITI" ' Enter your password here
     
        SQLStr = "SELECT * FROM MATABLE" ' Enter your SQL here
     
        Set Cn = New ADODB.Connection
        Cn.open "Provider=SQLOLEDB.1;Password=" & PassWord & ";Persist Security Info=True;User ID=" & User & ";Initial Catalog=" & Base & ";Data Source=" & Server
     
     
     
             ' Dump to spreadsheet
     With Worksheets("Feuil2").Range("a1:z5000") ' Enter your sheet name and range here
            .ClearContents
            .CopyFromRecordset cn.execute(SQLStr)
        End With
         '            Tidy up
        rs.Close
        Set rs = Nothing
        Cn.Close
        Set Cn = Nothing

    L'erreur est sur cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Cn.open "Provider=SQLOLEDB.1;Password=" & PassWord & ";Persist Security Info=True;User ID=" & User & ";Initial Catalog=" & Base & ";Data Source=" & Server

  6. #6
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 419
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonjour,
    Je t'ai donné la méthode que j'utilise pour me connecter à une base de données SQL serveur, avec mes variable !

    Il pourrait être judicieux de remplacer les variables par les tiennes. USER par user_id , serveur par serveu_name etc...

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2019
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2019
    Messages : 59
    Points : 40
    Points
    40
    Par défaut
    Hello,

    Désolé j'ai voulu aller trop vite ...

    Cependant j'ai le même résultat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Cn.Open "Provider=SQLOLEDB.1;Password=" & Password & ";Persist Security Info=True;User ID=" & User_ID & ";Initial Catalog=" & Database_Name & ";Data Source=" & Server_Name

Discussions similaires

  1. [XL-2007] VBA et SQL Server
    Par Duddy dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 13/03/2012, 13h00
  2. [XL-2003] Transfert de données depuis Excel en VBA vers SQL Server
    Par donos dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 06/06/2011, 14h57
  3. Conversion VBA to SQL SERVER
    Par mino26tz dans le forum Access
    Réponses: 12
    Dernier message: 03/12/2010, 13h30
  4. Conversion VBA to SQL SERVER
    Par mino26tz dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 01/12/2010, 18h19
  5. VBA excel <-> SQL Server 2005, login failed
    Par spirit69 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/03/2008, 11h38

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