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 :

Transférer des données SQL express vers Excel


Sujet :

VB.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 16
    Par défaut Transférer des données SQL express vers Excel
    Bonjour,


    Après avoir essayé plusieurs solutions et plusieurs syntaxes, je tourne en rond.
    Je souhaite récupérer des données dans une base sql express et alimenter un fichier excel avec du vb.net. J'ai systématiquement des erreurs.

    Voici la dernière version testé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
    21
    22
    23
    Dim vTab As Excel.Worksheet
    Dim vSql as String
     
    vTab = vWorkbook.Sheets("Test")
    vSql = "SELECT Client.Nom, Client.Prenom FROM Client"
     
    With vTab.QueryTables.Add(Connection:="OLEDB;Provider=SQLOLEDB;Data Source=.\SQLEXPRESS;AttachDbFilename=C:\WWW\VS2010\Test\App_Data\Client.mdf;Integrated Security=True;User Instance=True", Destination:=vTab.Range("A5"))
      .CommandText = vlSql
      .Name = vTab.Name
      .FieldNames = True
      .RowNumbers = True
      .FillAdjacentFormulas = False
      .PreserveFormatting = True
      .RefreshOnFileOpen = False
      .BackgroundQuery = True
      .RefreshStyle = Excel.XlCellInsertionMode.xlOverwriteCells
      .SavePassword = False
      .SaveData = False
      .AdjustColumnWidth = True
      .RefreshPeriod = 0
      .PreserveColumnInfo = True
      .Refresh(BackgroundQuery:=True)
    End With
    A l'exécution, j'ai systématiquement une erreur sur la ligne .Refresh
    Exception from HRESULT: 0x800A03EC
    J'ai trouvé plusieurs sujets similaires mais rien ne m'a permis de résoudre le probleme pour le moment.

    Merci de m'aider.

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    hello,
    Regarde cette discussion http://www.developpez.net/forums/d35...es-vers-excel/
    et dit nous si ca t'aide...
    Bien à toi.

    P.S. : Quand tu mets du code, n'oublie as les balises CODE, c'est plus lisible

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 16
    Par défaut
    Bonsoir, et merci pour ton aide

    J'avais vu cette discussion.

    J'avais essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Refresh(BackgroundQuery:=True)
    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Refresh(BackgroundQuery:=False)
    avec le même résultat.

    Dans cette discussion la connexion se fait avec ODBC
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Connection:="ODBC;DRIVER=SQL Server;...
    Dans mon exemple j'utilise OLEDB
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Connection:="OLEDB;Provider=SQLOLEDB...
    Je pense que mon problème viens de la chaîne de connection.
    Je voudrais bien essayé avec ODBC, mais je ne connais pas le mot de passe du compte "sa" par défaut et je ne sais pas comment créer un compte.
    J'utilise SQL Server Express installé par Visual Studio 2010 (la dernière béta) et je n'ai pas le souvenir qu'il m'ait demandé un mot de passe pour le serveur SQL.
    S'il le faut, je veux bien refaire l'installation.

  4. #4
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Excuse mais je suis assez pressé donc je fais court pour maintenant.
    Si tu as un doute sur ton string de connections : http://www.connectionstrings.com/
    Mis à part cela, je pense que même en OleDb il te faut mettre un mot de passe et un user...
    Je n'ai jamais essayé cette méthode, mais elle m'intéresse grandement (Cela doit être bien plus rapide) je testerai cette solution en OleDb quand j'aurai le temps au boulot...
    Bien à toi et bon dimanche

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 16
    Par défaut
    Mes différents tests avec les connections strings n'ont rien donné.
    Je reviens vers une solution antérieure basée sur une connexion ODEDB et la fonction CopyFromRecordset.

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 319
    Par défaut
    Bonjour
    tu n'as pas de mot de passe pour le compte "sa"!
    Nasty

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 16
    Par défaut
    Lors de l'installation de Visual Studio et Sql Server, je n'ai pas renseigné de mot de passe. Je ne sais pas quel est le mot de passe par défaut et je n'ai pas trouvé cette information. J'ai essayé sans mot de passe, mais cela ne fonctionnait pas.
    Comme ça me cassait un peu les ...., j'ai potassé la doc MySql et j'ai tout migré. Maintenant j'ai le mot de passe root de MySql et j’ai mis Sql Server au placard.
    De toute façon, ça ne change rien au problème.

    Ensuite, j'ai essayé la fonction QueryTables.Add avec MySql cette fois, avec le même problème.

    Je suis revenu à une solution que je maitrise plus, basée sur une connexion adodb et qui fonctionne.

    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
     
    Dim MySqlConnection As New ADODB.Connection
    Dim MyRS As New ADODB.Recordset
    Dim MyConnectionString As String
     
    MyConnectionString = "Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=MyDatabase;Uid=MyRoot;Pwd=MyPassword"
    MySqlConnection.ConnectionString = MyConnectionString
    MySqlConnection.Open()
    Sql = “Select...”
    MyRS.Open(Sql, MySqlConnection)
     
    MyWorkbook.Sheets(“Feuille1”).Range(“A1”).CopyFromRecordset(MyRS)
     
    MyRS.Close()
    MySqlConnection.Close()
    Toutefois, si quelqu’un a une solution basée sur QueryTables.Add, cela reste intéressant de la valider.

    Merci pour ton aide.

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

Discussions similaires

  1. [XL-2003] Transférer des données d'ACCESS vers EXCEL
    Par MichaSarah dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/10/2011, 23h44
  2. [XL-2003] Bouton pour transférer des données d'un fichier Excel vers un autre
    Par Alfred23 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 07/09/2011, 17h46
  3. Réponses: 4
    Dernier message: 26/11/2008, 14h59
  4. extraction des données de MySQL vers excel
    Par wiama dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 03/05/2007, 12h37
  5. Réponses: 1
    Dernier message: 07/07/2006, 19h13

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