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 6 et antérieur Discussion :

VB6 & DataGrid


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    ingénieur bases de données
    Inscrit en
    Juillet 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : ingénieur bases de données

    Informations forums :
    Inscription : Juillet 2006
    Messages : 52
    Par défaut VB6 & DataGrid
    Salut à tous

    Je voudrais juste savoir si y a un moyen de savoir quand on a ateind la fin de la liste des éléments d'un DataGrid.

    Je voudrais afficher les éléments d'une table par lot dans un DataGrid, et lorsque l'utilisateur a atteint la fin des données, afficher le lot suivant.

    Merci pour vos contributions

  2. #2
    Membre éprouvé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 336
    Par défaut
    salut,

    pour alimenter le datagrid, tu dois utiliser un recordset.

    En faisant une boucle Do While, tu pourras lire l'intégralité du recordset

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Do While recordset.EOF
    ...
    recordset.MoveNext
     
    Loop

  3. #3
    Membre confirmé
    Profil pro
    ingénieur bases de données
    Inscrit en
    Juillet 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : ingénieur bases de données

    Informations forums :
    Inscription : Juillet 2006
    Messages : 52
    Par défaut Detecter la fin de liste d'un DataGrid
    Citation Envoyé par Asdorve
    salut,

    pour alimenter le datagrid, tu dois utiliser un recordset.

    En faisant une boucle Do While, tu pourras lire l'intégralité du recordset

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Do While recordset.EOF
    ...
    recordset.MoveNext
     
    Loop



    Merci pour ta prompte réponse

    Mais ce que je veux c'est savoir quand on atteint la fin de liste dans un objet DataGrid (lors des événements rowcolchange ou scroll).

    En fait mon problème c'est que je veux afficher les données du DataGrid par plage (par exemple 50), et afficher la plage suivante lorsque l'utilisateur navigue jusqu'à la fin de la première plage.

  4. #4
    Membre éprouvé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 336
    Par défaut
    Citation Envoyé par mkiba
    En fait mon problème c'est que je veux afficher les données du DataGrid par plage (par exemple 50), et afficher la plage suivante lorsque l'utilisateur navigue jusqu'à la fin de la première plage.
    Je ne sais pas si on peut faire ça avec un datagrid...

    Si oui, est-ce que quelqu'un sait le faire?

    Sinon, je verrais bien un truc du genre:
    1- On récupère le nombre d'enregistrements (recordset.recordCount)
    2- On divise en plage de 50
    3-Grace à la boucle que je t'ai donné, on affiche dans une zone les 50 premières boucles
    4-Si l'utilisateur veut passer à la plage suivante, on reprend la boucle et dès que l'on arrive au 51ème passage, on recommence à afficher les 50 suivants.

    Je sais, c'est bourrin,

    SI QUELQU'UN A MIEUX...

  5. #5
    Membre confirmé
    Profil pro
    ingénieur bases de données
    Inscrit en
    Juillet 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : ingénieur bases de données

    Informations forums :
    Inscription : Juillet 2006
    Messages : 52
    Par défaut recupérer les données d'une table par pages
    Citation Envoyé par Asdorve
    Je ne sais pas si on peut faire ça avec un datagrid...

    Si oui, est-ce que quelqu'un sait le faire?

    Sinon, je verrais bien un truc du genre:
    1- On récupère le nombre d'enregistrements (recordset.recordCount)
    2- On divise en plage de 50
    3-Grace à la boucle que je t'ai donné, on affiche dans une zone les 50 premières boucles
    4-Si l'utilisateur veut passer à la plage suivante, on reprend la boucle et dès que l'on arrive au 51ème passage, on recommence à afficher les 50 suivants.

    Je sais, c'est bourrin,

    SI QUELQU'UN A MIEUX...



    le DataGrid permet de faire ça (puisqu'il n'affiche qu'une partie du recordset: DataGrid.visiblerows).

    J ai une table qui contient 1 000 000+ d'enregistrements (susceptibles d'augmenter). plus les données augmentent, plus l'affichage risque de prendre du temps.
    Ce que je voudrais faire, c'est utiliser une requête avec une clause ORDER BY et une clause LIMIT, pour limiter les données renvoyées par le recordset à 100 par exemple (SELECT .... ORDER BY ... LIMIT 100 OFFSET 1). et lier le recordset à un DataGrid.
    Quant l'utilisateur va naviguer jusqu'à la fin des éléments du DataGrid, je relance ma requête, mais cette fois ci sur les 100 prochains enregistrements (SELECT ..... ORDER BY ... LIMIT 100 OFFSET 100).

    Merci pour ton aide

  6. #6
    Membre éprouvé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 336
    Par défaut
    Citation Envoyé par mkiba
    le DataGrid permet de faire ça (puisqu'il n'affiche qu'une partie du recordset: DataGrid.visiblerows).

    J ai une table qui contient 1 000 000+ d'enregistrements (susceptibles d'augmenter). plus les données augmentent, plus l'affichage risque de prendre du temps.
    Ce que je voudrais faire, c'est utiliser une requête avec une clause ORDER BY et une clause LIMIT, pour limiter les données renvoyées par le recordset à 100 par exemple (SELECT .... ORDER BY ... LIMIT 100 OFFSET 1). et lier le recordset à un DataGrid.
    Quant l'utilisateur va naviguer jusqu'à la fin des éléments du DataGrid, je relance ma requête, mais cette fois ci sur les 100 prochains enregistrements (SELECT ..... ORDER BY ... LIMIT 100 OFFSET 100).

    Merci pour ton aide
    DataGrid.visiblerows, OFFSET, je connais pas tout ça, mais ça m'intéresse! Affaire à suivre!

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

Discussions similaires

  1. Utilisation de case à cocher avec VB6 dans Datagrid
    Par seyiv dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 09/05/2007, 15h11
  2. Datagrid Vertical en VB6 ? C'est possible ?
    Par thefutureisnow dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 06/01/2006, 16h35
  3. [VB6] DataGrid et Scroll
    Par badgam piero dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 19/12/2005, 09h40
  4. word et datagrid sous vb6
    Par azzouz_soui dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 30/09/2005, 23h18
  5. [VB6] Datagrid afficher ou cacher des colonnes par code
    Par soazig dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 06/02/2003, 17h19

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