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

VB.NET Discussion :

Script VB de récupération de données SQL Server vers une feuille Excel [Débutant]


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur en Automatisme
    Inscrit en
    Février 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur en Automatisme
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 21
    Par défaut Script VB de récupération de données SQL Server vers une feuille Excel
    Bonjour,

    Je cherche à développer pour le travail un petit script, le souci c'est que je ne sais pas trop les fonctions ou bibliothèque à utiliser.

    Je voudrais pouvoir lancer à interval régulier via une tâche planifiée un script qui pourrait me permettre d'aller récupérer le contenu d'une table SQL Server et de déposer ces données dans un fichier Excel existant et dans un onglet spécifique sans écraser le reste du fichier.

    Pouvez vous m'aider ?

    Merci d'avance,

    Benjamin

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Pour être sûr que tu sois dans le bon forum, tu cherches à faire du VB.NET ou du VBA/VB6 ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur en Automatisme
    Inscrit en
    Février 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur en Automatisme
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 21
    Par défaut
    Plutôt du .NET, je suis un peu plus à l'aise au niveau programmation dessus. Enfin si c'est possible bien sur.

  4. #4
    Invité
    Invité(e)
    Par défaut
    bonjour,
    sur le forum Excel-VBA!
    tu pourra m'y retrouver!

    je t'expliquerais comment faire avec un script VBScript qui est à mon sans plus en adéquation avec ta demande.

    l'important est le format de données dans ton Excel comme un base de données!

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur en Automatisme
    Inscrit en
    Février 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur en Automatisme
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 21
    Par défaut
    Merci pour vos réponses, elles me font remarquer que j'ai oublié de rajouté une précision, je n'ai pas accès au code VBA/ni aux macros de ce fichier Excel, il est généré par et pour un logiciel externe.
    J'ai simplement la possibilité d'écrire dans un onglet de ce dernier, et rien de plus, d'où le fait que je souhaitais passé par un script externe.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Vbscript s'écrit avec Notepad je pense que tu y as accès!

  7. #7
    Membre averti
    Homme Profil pro
    Ingénieur en Automatisme
    Inscrit en
    Février 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur en Automatisme
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 21
    Par défaut
    Oui bien sur mais même à un un autre éditeur peut importe, ce n'est pas un problème pour écrire le code, c'est juste que je ne peux pas directement l’implémenté dans ce fichier là.
    Je n'ai pas l'autorisation de l'entreprise qui gère ce fichier, j'ai simplement l'obligation d'ajouter des données à l'intérieur.

  8. #8
    Invité
    Invité(e)
    Par défaut
    bonjour,
    tu volais le faire en vb.net et ça n'avais pas l'air de poser de problème! VBScript c'est comme un fichier .Bat c'est lui qui vas enrichir ton Xls! c'est une application externe pas de l'excel!

  9. #9
    Membre averti
    Homme Profil pro
    Ingénieur en Automatisme
    Inscrit en
    Février 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur en Automatisme
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 21
    Par défaut
    Visiblement on n'est pas arrivé à ce comprendre.
    Toujours est-il qu'à force de parcourir les forums et en récupérant des bouts de code à droite et à gauche j'ai pu parvenir au résultat que j'attendais.

    Je le dépose ci-dessous, il serra modifié par la suite pour le faire coller à mon besoin plus spécifique mais ça donne un bon ordre d'idée si quelqu'un repasse par là un jour.

    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
     
    Imports System.Data.SqlClient
    Imports xls = Microsoft.Office.Interop.Excel
     
    Module Module1
     
        Sub Main()
     
            Dim xlApp As New xls.Application
            Dim xlBook As xls.Workbook
            Dim xlSheet As xls.Worksheet
     
            'Configuration de la connection SQL + Requete   
            Dim Connexion As New SqlConnection("Data Source=localhost;Initial Catalog=NomBDD;User Id=sa;Password=pwd;")
            Dim Requete As String = "SELECT * from NomDeTable"
     
            'Configuration du fichier Excel ainsi que de la Worksheet à modifier
            xlBook = xlApp.Workbooks.Open("C:\Classeur1.xlsx")
            xlSheet = xlBook.Worksheets("test")
     
            'Connexion à la base
            Connexion.Open()
     
            Dim Commande As New SqlCommand(Requete, Connexion)
            Dim Adaptateur As New SqlDataAdapter(Commande)
            Dim MonDataSet As New DataSet
     
            Try
                'Récupération des données dans un DataSet
                Adaptateur.Fill(MonDataSet, "NomDeTable")
            Catch ex As Exception
                'Fermeture de la connection en cas d'erreur
                Console.WriteLine(ex.Message)
                Commande.Dispose()
                Connexion.Close()
            End Try
     
            'Fermeture de la connection
            Commande.Dispose()
            Connexion.Close()
     
            'Ajout du dataset dans le fichier Excel
            Dim RowInd As Int16 = 1
            Dim ColInd As Int16 = 1
     
            For Each Ligne As DataRow In MonDataSet.Tables("NomDeTable").Rows()
                xlSheet.Cells(RowInd, ColInd).Value = Ligne("Colonne1").ToString
                RowInd += 1
            Next
     
            'Sauvegarde du fichier Excel et fermeture de la connection
            xlApp.DisplayAlerts = False
            xlSheet.SaveAs("C:\Classeur1.xlsx")
            xlApp.Workbooks.Close()
            xlApp.DisplayAlerts = True
     
        End Sub
     
    End Module

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/10/2008, 17h55
  2. Réponses: 3
    Dernier message: 15/10/2008, 09h24
  3. Connecté une base de donnée sql server v7 à une application Jbuilder9
    Par souheilzouabizouabi dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 15/04/2008, 12h31
  4. base de donnée sql server vers excel
    Par yucf_miagiste dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/07/2007, 12h38
  5. Importation d'une base de donnée sql server vers oracle
    Par delphy456 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 17/01/2006, 14h44

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