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 :

Problème affichage de données importées via RecordSet


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 53
    Par défaut Problème affichage de données importées via RecordSet
    Bonjour,
    J'aimerais avoir votre aide sur un petit soucis qui peut paraitre vraiment simpliste pour certain mais je débute en vba. Donc j'aimerais me connecter à une base de données via code vba puis ensuite afficher les données dans une feuille de mon classeur. Ces données peuvent être important en taille.

    Je vous fournit en partie mon code dans mon fichier actuel que je vais joindre avec ma petite explication.
    Donc voila l'utilisateur va selectionner dans le UserForm qui s'affiche le shop pqu'il décide de voir, ensuite lorsqu'il appuie sur le bouton ça lui importe toutes les données du shop qu'il a selectionné dans la feuille. Cependant je n'arrive pas à afficher ces données pourriez vous m'aider svp.


    Mon code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub CreationRequete(NomShop As String)
        ActiveSheet.Range("A1").Value = NomShop
     
        Dim cnn As New ADODB.Connection, rst As New ADODB.Recordset, fld As ADODB.Field
        ' Ouverture de la connexion
        cnn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Data Source=JONATHAN-PORT\SQLEXPRESS;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=JONATHAN-PORT;Use Encryption for Data=False;Tag with column collation when possible=False;Initial Catalog=Toyota_test"
        ' Ouverture du Recordset en défilement en avant, et en lecture seule
        rst.Open "SELECT * FROM " & NomShop, cnn, adOpenForwardOnly, adLockReadOnly
     
        '''''Affichage des données
     
        ' Fermeture du Recordset
        rst.Close
    End Sub
    Si on ne ce revoit pas d'ici demain je vous souhaites une bonne matinée et surtout de très bonne fête à vous tous et toutes !

    PS : (Je n'arrive pas à mettre mon fichier en pièce jointe )

    Sincèrement Jonathan.

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bonjour,

    Exemple avec CopyFromRecordset


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub LectureAccess()
      'Microsoft ActivexDataObject 2.8 Library
      repertoire = ThisWorkbook.Path & "\"
      Dim rs As ADODB.Recordset
      Set cnn = New ADODB.Connection
      cnn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & repertoire & "Access2000.mdb"
      Set rs = cnn.Execute("SELECT * FROM Client ORDER BY nom_client")
      Range("A2").CopyFromRecordset rs
      rs.Close
      cnn.Close
      Set rs = Nothing
      Set cnn = Nothing
    End Sub
    Exemple avec boucle sur les enregistrements

    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
     
     
    Sub LectureAccess2()
      repertoire = ThisWorkbook.Path & "\"
      Dim rs As New ADODB.Recordset
      Set cnn = New ADODB.Connection
      cnn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & repertoire & "Access2000.mdb"
      rs.Open "SELECT * FROM client ORDER BY nom_client", cnn
      Do While Not rs.EOF
        MsgBox rs!Nom_Client
        rs.MoveNext
      Loop
      rs.Close
      cnn.Close
    End Sub
    Exemple avec GetRows

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Private Sub UserForm_Initialize()
      rep = ThisWorkbook.Path
      Dim rs As ADODB.Recordset
      Set cnn = New ADODB.Connection
      cnn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & rep & "\Access2000.mdb"
      Set rs = cnn.Execute("SELECT nom_client FROM Client ORDER BY nom_client")
      Me.Choix.List = Application.Transpose(rs.GetRows)
      rs.Close
      cnn.Close
      Set rs = Nothing
      Set cnn = Nothing
    End Sub
    Jacques Boisgontier

Discussions similaires

  1. Réponses: 6
    Dernier message: 03/11/2012, 21h18
  2. [CR 10] affichage des données importées
    Par roi2010 dans le forum Débuter
    Réponses: 1
    Dernier message: 15/01/2010, 11h20
  3. Problème affichage de données
    Par cyberyan dans le forum Excel
    Réponses: 1
    Dernier message: 29/10/2008, 16h54
  4. [MySQL] Problème Affichage des données
    Par buzzchewan dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 15/02/2007, 15h05
  5. probleme d'affichage de données d'un recordset
    Par ben5985 dans le forum Access
    Réponses: 7
    Dernier message: 22/11/2006, 14h24

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