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
    Inscrit en
    Août 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 119
    Points : 64
    Points
    64
    Par défaut VBA et SQL server
    bonjour
    je souhaiterai construire une requête pour sql server dans une macro vba
    je n'arrive pas a la construire je ne connais pas du tout la syntaxe a appliquer
    pouvez vous me filer un coup de main ?
    merci

    je voudrais dans cette ligne .CommandText = Array("""DB35"".""dbo"".""TOTO""")
    faire un select ..... from DB35..TOTO a,DB35..TATA b
    where a.toto=b.toto



    voici le script généré via l'assistant VBA pour recuperer de la donnée

    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
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array( _
            "OLEDB;Provider=SQLOLEDB.1;Persist Security Info=True;User ID=eeeeee;Password=eeeee;Data Source=eeeeeee;Use Procedure for Prepare=1;Auto Translate=" _
            , _
            "True;Packet Size=4096;Workstation ID=eeeeeeeee;Use Encryption for Data=False;Tag with column collation when possible=False;In" _
            , "itial Catalog=DB35"), Destination:=Range("$A$1")).QueryTable
            .CommandType = xlCmdTable
            .CommandText = Array("""DB35"".""dbo"".""TOTO""")
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .PreserveColumnInfo = True
            .Refresh BackgroundQuery:=False
        End With

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Je comprends pas ce que tu veux faire!
    Un requêtes persistante dans Excel ou importer des données de Sql serveur vers Excel?

  3. #3
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 119
    Points : 64
    Points
    64
    Par défaut
    salut

    je veux faire une requête persistante dans excel (dans le codde vba) qui importera d'une base sql server les datas que je souhaite

    après il y a peut être d'autres solutions pour requêter une base sql server via VBA

    merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Une requête persistante permet de définir une connexion ODBC dans un classeur Excel et d'affecter le résultat d'une requête a une plage de cellules. C'est que de l'affiche assujetti a un connexion ODBC. Si tu fournis le classeur par mail par exemple le données ne seront jamais mis a jour et tous traitement sur cet onglet seront incohérent!
    En d'autres termes si tu utilises la requête pour calculer l'âge du capitaine, le résultats deviendra caduc dès l'instant ou une valeur changera dans la base de données car ta requête réévaluera ses valeurs de temps en temps!

    Je serai fortement désappointé si je voyais sur mon blog a 10H30 une image de 10H30 avec le commentaire posté a 10h00! A savoir une région dévasté par un tsunami et un commentaire qui dit c'est cool!


    Ce n'est pas importation mais une visualisation!

    Un import consiste a ce connecter a une base de données requêter dessus coller le résultat dans Excel et clôturer la connexion.

    Ma question n'était pas fortuite.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    With CreateObject("AdoDb.Connection")
           .Open "Provider=SQLNCLI;Server=" & Server & ";Database=" & BASE & ";UID=" & User & ";PWD=" & Password & ";"
    Activecell.copyfromrecordset .Execute("select ..... from DB35..TOTO a,DB35..TATA b where a.toto=b.toto")
    .Close
    End with
    Dernière modification par Invité ; 18/02/2017 à 13h22.

  5. #5
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 119
    Points : 64
    Points
    64
    Par défaut
    merci
    cela répond parfaitement a mon besoin

    une dernière petite chose
    je voudrai afficher les champs de ma requête
    j'ai passé la commande dans le bloc with avant le .close

    .FieldNames = True

    mais cela bug

    saurais tu comment afficher les champs de mon select dans ma feuille excel ?

    encore merci

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    With CreateObject("AdoDb.Connection")
           .Open "Provider=SQLNCLI;Server=" & Server & ";Database=" & BASE & ";UID=" & User & ";PWD=" & Password & ";"
     
       Set rs = .Execute("select ..... from DB35..TOTO a,DB35..TATA b where a.toto=b.toto")
        For i = 0 To rs.Fields.Count - 1
            Range("A1").Offset(0, i) = rs(i).Name
           Next
     Range("A2").CopyFromRecordset rs
    .Close
    End With

  7. #7
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 119
    Points : 64
    Points
    64
    Par défaut
    impec !
    merci

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

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