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 :

Communication entre EXCEL et une base de donnée MYSQL


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2013
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 14
    Points : 8
    Points
    8
    Par défaut Communication entre EXCEL et une base de donnée MYSQL
    Bonjour,

    J'ai une base de données MySQL:
    TABLE actions ( avec 13 champs );
    Et j'ai réaliser une macro de test sous excel 2007 en utilisant SQLrequest de XLODBC.XLA:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub SQLtest()
        r = 7
        With Worksheets("Test")
                    queryString = "SELECT * FROM actions"
                    Worksheets("test").Cells(1, 1) = queryString False)
                    BD_array = SQLRequest("DSN=Bidule_actions", queryString, , 2, False)
                    .Range(.Cells(2, 1), .Cells(14, 14)) = BD_array
        End With
    End Sub
    Seulement cette librairie et cette fonction ne sont plus mis à jour, je voudrais donc les remplacer pour cela d'après mes recherches, je voit deux possibilitées:

    - Intégrer l'api c mysql libmysql.dll à excel pour remplacer SQLRequest mais le problème ici est que je ne sais pas comment intégrer cette dll à excel.

    - Ou bien utilisé ADO mais j'ai le même problème comment l'utilisé sous excel ?

    J’espère avoir assez détailler mon problème et je suis donc preneur de toutes les informations que vous avez (j'ai évidemment déjà effectuer un certain nombre de recherche internet mais rien ne m'a paru très clair) Merci.

  2. #2
    Invité
    Invité(e)

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2013
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Merci pour le lien seulement j'ai une erreur au niveau de
    Compile error:
    User-defined type not defined
    J'avais pourtant fais un test simple pour vérifier que j'avais bien inclut ADO qui marchait nickel :

    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
    Sub RequeteClasseurFerme_Excel2007()
        Dim Cn As ADODB.Connection
        Dim Fichier As String
        Dim NomFeuille As String, texte_SQL As String
        Dim Rst As ADODB.Recordset
        Dim cellule1 As String
     
        'Définit le classeur fermé servant de base de données
        Fichier = "C:\Documents and Settings\Book1.xlsx"
        'Nom de la feuille dans le classeur fermé
        NomFeuille = "Sheet1"
     
        Set Cn = New ADODB.Connection
     
        With Cn
            .Provider = "Microsoft.Jet.OLEDB.4.0"
            .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
                & Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
            .Open
        End With
     
            texte_SQL = "SELECT * FROM [" & NomFeuille & "$]"
            Set Rst = New ADODB.Recordset
            Set Rst = Cn.Execute(texte_SQL)
        'Ecrit le résultat de la requête dans la cellule A2
            Range("A2").CopyFromRecordset Rst
     
        Cn.Close
        Set Cn = Nothing
     
    End Sub

  4. #4
    Invité
    Invité(e)
    Par défaut
    ADODBRD c'est une class tu n'a pas besoin de la référence ado car elle est généré par creatobject!
    tu dois intégrer la class dans ton projet
    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
    Dim cnx As New ADODBRD
    cnx.TYPEBASE=
    '1 - ODBC
    '2 - ORACLE
    '3 - ACCESS 2012
    '4 - ACCESS 2000
    '5 - ACCESS 97
    '6 - SQL SERVER
    '7 - SQL SERVER 2005 Express
    '9 - SQLite
    '10 - SQLite3
    '11 - MySQL
    cnx.Fichier = "c\mdb\base.mdb"
    'pour autre
    cnx.User = "moi"
    cnx.PassWord = "****"
    cnx.Server = "192.168."
    cnx.BASE = "mabase"

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2013
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Oui merci je ne l'ai vu qu'après et donc en le déclarant comme une classe cela marche désolé de ne pas avoir fait attention et merci beaucoup donc maintenant grâce à vous je peux me connecter à mon serveur MySQL avec ADO, maintenant je voudrais par exemple afficher le contenu de ma table actions sous Excel comme je le faisais avec SQLRequest est-ce possible à l'aide de votre code (je suis entrain de l'étudier plus en détail maintenant que j'arrive à l’exécuter) ?

    PS : il y a une petite erreur dans les commentaire pour une connexion à une base MySQL c'est 11 et non 12.

  6. #6
    Invité
    Invité(e)
    Par défaut
    PS : il y a une petite erreur dans les commentaire pour une connexion à une base MySQL c'est 11 et non 12.
    oui je m'en suis aperçu mais trop tard car j'avais posté dans mon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sql = "SELECT NomPrenomAge.* FROM NomPrenomAge;"
    Set Rec = con.OpenRecordSet(Sql)
     
    Dim wrk As Workbook
    Set wrk = Application.Workbooks.Add
     
    'insert les en-tetes
    For I = 1 To Rec.Fields.Count
        wrk.Sheets(1).Cells(1, I).Value = Rec.Fields(I - 1).Name
    Next I
     
    'Ajout des données à partir de A2
    wrk.Sheets(1).Range("A2").CopyFromRecordset Rec
    http://www.developpez.net/forums/d13...l/#post7175488

  7. #7
    Futur Membre du Club
    Inscrit en
    Avril 2013
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Merci beaucoup je met le sujet en résolu et j'espère que je ne m'interrogerais pas sur un nouveau problème juste après

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

Discussions similaires

  1. Import d'un fichier Excel dans une base de données MySql via POI
    Par intel42 dans le forum Développement Web en Java
    Réponses: 8
    Dernier message: 27/07/2011, 16h24
  2. [MySQL] Insérer le contenu d'un fichier Excel dans une base de donnée Mysql
    Par ghir_ana dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/07/2011, 15h46
  3. Réponses: 4
    Dernier message: 08/01/2009, 15h01
  4. importer une fichier excel dans une base de donnée MySQL
    Par maverick56 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 29/05/2007, 09h15
  5. [Excel] Génération de fichier excel depuis une base de donnée MySQL
    Par wiama dans le forum Bibliothèques et frameworks
    Réponses: 11
    Dernier message: 26/05/2007, 01h06

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