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 :

afficher données dans une grille


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Points : 19
    Points
    19
    Par défaut afficher données dans une grille
    salut,
    Je suis entrain de réaliser une application VB6 et Access dans le cadre d'un stage.
    J'accéde à ma BDD via l'outil ADO.
    Dans un form, j'envisage d'aficher dans une grille les factures qui concernent un fournisseur précis par son ID,voilà le code que j'ai utilisé.SVP dites moi quelles sont les erreurs que j'ai comise car rien ne saffiche!

    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
    Dim i As Integer 
    Set rsligne_fact_four = New ADODB.Recordset 
    rsligne_fact_four.Open "select * from ligne_facture_four where Code_four= '" & Combo1.Text & "'", cn, 1, 2 
     
    Set rsfact_four = New ADODB.Recordset 
    rsfact_four.Open " select * from Facture_four where Code_fou = '" & Combo1.Text & " '", cn, 1, 2 
     
     
    If rsligne_fact_four.RecordCount = 0 Then 
    MsgBox "Il n'y a aucun facture saisie", vbInformation, "MAC//Z" 
    Exit Sub 
    Else 
    With g 
      .FixedRows = 1 'ligne en-tete 
      .Rows = 2 ' + une ligne vide 
       i = 1 
    rsligne_fact_four.MoveFirst 
    Do While Not rsligne_fact_four.EOF 
    If rsligne_fact_four.Fields(4) = Combo1.Text Then 
    i = i + 1 
     
      .Rows = i 'nombre de ligne 
      .Row = i - 1 'ligne courante 
     
      .Col = 0 
    .Text = rsligne_fact_four.Fields(0) 
    .Col = 1 
    .Text = rsfact_four.Fields(1) 
    .Col = 2 
    .Text = rsligne_fact_four.Fields(3) 
    .Col = 3 
    .Text = rsligne_fact_four.Fields(4) 
    .Col = 4 
    .Text = rsligne_fact_four.Fields(5) 
    End If 
      rsligne_fact_four.MoveNext 
    Loop 
    End With 
    End If 
     
    End Sub
    NB: pour afficher la grille , j'ai associé ke code suivant au form_load du form
    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
    15
    16
    17
    18
    19
    g.Clear 
    g.Rows = 2 
    g.Cols = 5 
    g.Row = 0 
    g.Col = 0 
    g.ColWidth(0) = 1800 
    g.Text = "Numéro facture" 
    g.Col = 1 
    g.ColWidth(1) = 2500 
    g.Text = "Date" 
    g.Col = 2 
    g.ColWidth(2) = 2000 
    g.Text = "Montant HT" 
    g.Col = 3 
    g.ColWidth(3) = 1200 
    g.Text = "Taux TVA" 
    g.Col = 4 
    g.ColWidth(4) = 3000 
    g.Text = "Montant TTC"
    Merci à vous d'avance.

  2. #2
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Heu, il serait interessant de nous dire quel composant grille tu as utilisé.

    Il y en a un spécial pour ADO. Le DataGrid qui s'utilise conjointement avec le Data control

    La il suffira que ta requête à la base de données limite les reéonses à tes conditions. Le remplissage de la grille est entièrement automatique.
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    salut,
    j'utulise un MSflexgrid.
    Mais mon probléme c'est que les données qui vont être affichées dans la grille doivnet etre récupérées de deux tables de ma base de donnees ce qui explique l'existance de deux Recordset dans le code!
    Merci

  4. #4
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Une requête SELECT peut faire ça... (voir les tutos SQL). Reste à voir si la méthode de connexion choisie est compatible...

    Pour l'affichage de données provenant d'une base de données, comme le conseillait Delbeke, tu devrait plutôt utiliser un composant DataGrid qui est mieux adapté. C'est dans les composants supplémentaires (Ctrl + T).

Discussions similaires

  1. [TKinter] Repérer un "individu" donné dans une grille
    Par Helpingna dans le forum Général Python
    Réponses: 7
    Dernier message: 10/12/2012, 01h01
  2. Réponses: 2
    Dernier message: 18/12/2010, 21h31
  3. Afficher données dans une comboBox
    Par andy331 dans le forum C#
    Réponses: 1
    Dernier message: 01/06/2010, 09h25
  4. [MySQL] mysql : affiche données dans une section membre
    Par endelium dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 28/03/2010, 14h02

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