MSFlexgrid [Résolu]

gon_ak 197 Messages postés mardi 28 février 2006Date d'inscription 17 novembre 2006 Dernière intervention - 8 nov. 2006 à 10:52 - Dernière réponse : gon_ak 197 Messages postés mardi 28 février 2006Date d'inscription 17 novembre 2006 Dernière intervention
- 8 nov. 2006 à 14:53
Bonjour à tous!

J'ai un petit souci et ça fait deux jours que je suis la dessus.
En fait, à la base j'ai récupéré des données de ma base de données (requête sql) car celles-ci me sont utile pour effectuer un calcul de productivité " KmLgth".
Je souhaite maintenant écrire les résultats obtenus dans une colonne d'un MSFlexgrid. Par exemple dans la colonne 2.

Mais je n'ai pas trouvé la propriété qu'il faut utiliser pour écrire dans le tableau.
Pouvez-vous m'aidez SVP, SVP, SVP...
Merci d'avance.

Voici le bout de code:

For ij = 0 To frmShiftReport.Adodc1.Recordset.RecordCount
    If frmShiftReport.Adodc1.Recordset.RecordCount > 0 Then
        frmShiftReport.Adodc1.Recordset.MoveFirst
        Do While Not frmShiftReport.Adodc1.Recordset.EOF
            NbDoff = frmShiftReport.Adodc1.Recordset.Fields!DoffCNT
            YarnLength = frmShiftReport.Adodc1.Recordset.Fields!YarnLgth
            ShiftTime = frmShiftReport.Adodc1.Recordset.Fields!ShiftTIM
            YnCount = frmShiftReport.Adodc1.Recordset.Fields!YarnCount
                       
            KmLgth = ((NbDoff * YarnLength * YnCount) / ShiftTime) / 1000
           
            frmShiftReport.Adodc1.Recordset.MoveNext
        Loop
        
        ??????????????????????????
        
    End If
Next ij
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
tbbuim1 940 Messages postés jeudi 20 février 2003Date d'inscription 3 février 2011 Dernière intervention - 8 nov. 2006 à 11:01
3
Merci
????,
Tu veux mettre le résultat d'un recordset dans un MSH
Utilise ma fonction
Tu dois créer uhne connexion ADODB
Elle marche du tonnerre!
Tout ce que tu as à faire, c'est une fonction d'initialisation de ta flex
Pour choisir la largeur des colonnes , la position des valeur dans chaque colonne et la hauteur des lignes et leurs propriétés
'Rempli Une msh comme si elle etait relié à un adodc (structure,données)
'En fait, j'ai remarqué que ça allé plus vite que de la lié à un ADODC
Public Sub ADOMSH(ByVal Conn As ADODB.Connection, Frm As Form, MSH As String, ByVal sql As String, Optional CL As Boolean = False)
    Dim I As Integer
    Dim j  As Integer
    Dim MSH_Rows  As Integer
    Dim MSH_Cols As Integer
    On Error GoTo Redraw
    rsG.Open sql, Conn, 1, 2
   
    Frm(MSH).Redraw = False
    MSH_Rows = rsG.RecordCount + 1 'Nombre de lignes totales
    MSH_Cols = rsG.Fields.Count    'Nombre de colonnes totales
    Frm(MSH).Cols = MSH_Cols
    'Si ya plus d'une ligne
    If rsG.RecordCount > 1 Then
        Frm(MSH).Rows = MSH_Rows
    Else
        Frm(MSH).Rows = 2
        Frm(MSH).Row = 1
        For I = 0 To MSH_Cols - 1
            Frm(MSH).Col = I
            Frm(MSH).Text = ""
        Next I
    End If
    'Renseigne le nom des colonnes
    Frm(MSH).Row = 0
    For I = 0 To MSH_Cols - 1
        Frm(MSH).Col = I
        Frm(MSH).Text = rsG.Fields(I).Name
    Next I
    'Rempli la MSH avec les valeurs fournies par la requête.
    j = 1 '1 pour passer la ligne des titres
    While rsG.EOF = False
        Frm(MSH).Row = j
        For I = 0 To MSH_Cols - 1
            Frm(MSH).Col = I
            If rsG(I).Type = adDouble Then
                Frm(MSH).Text = Format(fn(rsG(I).Type, rsG(I)), "# ### ##0.00")
            Else
                Frm(MSH).Text = fn(rsG(I).Type, rsG(I))
            End If
        Next I
        j = j + 1
        rsG.MoveNext
    Wend
    rsG.Close
    Frm(MSH).Redraw = True
    If CL = True Then
        'Met une ligne sur 2 en BleuClair
        For I = 1 To Frm(MSH).Rows - 1
            For j = 0 To Frm(MSH).Cols - 1                Frm(MSH).Row I: Frm(MSH).Col j                If I Mod 2 1 Then Frm(MSH).CellBackColor Bleu_Clair
            Next j
        Next I
    End If
    Frm(MSH).SetFocus 'Mets le curseur sur la première cellule du tableau    Frm(MSH).Col 0: Frm(MSH).Row 1
    Exit Sub
Redraw: 'Permet d'afficher le résultat obtenu juste avant l'erreur
    Frm(MSH).Redraw = True
End Sub

TBBUIM

Merci tbbuim1 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de tbbuim1
Meilleure réponse
cs_MPi 3877 Messages postés mardi 19 mars 2002Date d'inscription 23 août 2018 Dernière intervention - 8 nov. 2006 à 12:47
3
Merci
Dans une boucle ou une double-boucle en utilisant le compteur
If Rs.Recordcount > 0 then
For i = 0 to Rs.Recordcount
grid1.textMatrix(i + 1,0) = Rs!MonChamp

ou sur plusieurs colonnes
For i = 0 to Rs.Recordcount
For j = 0 to rs.Fields.Count
Grid1.textmatrix(i + 1, j) = Rs.Fields(j)

quelque chose comme ça...

MPi

Merci cs_MPi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_MPi
tbbuim1 940 Messages postés jeudi 20 février 2003Date d'inscription 3 février 2011 Dernière intervention - 8 nov. 2006 à 11:01
0
Merci
????,
Tu veux mettre le résultat d'un recordset dans un MSH
Utilise ma fonction
Tu dois créer uhne connexion ADODB
Elle marche du tonnerre!
Tout ce que tu as à faire, c'est une fonction d'initialisation de ta flex
Pour choisir la largeur des colonnes , la position des valeur dans chaque colonne et la hauteur des lignes et leurs propriétés
'Rempli Une msh comme si elle etait relié à un adodc (structure,données)
'En fait, j'ai remarqué que ça allé plus vite que de la lié à un ADODC
Public Sub ADOMSH(ByVal Conn As ADODB.Connection, Frm As Form, MSH As String, ByVal sql As String, Optional CL As Boolean = False)
    Dim I As Integer
    Dim j  As Integer
    Dim MSH_Rows  As Integer
    Dim MSH_Cols As Integer
    On Error GoTo Redraw
    rsG.Open sql, Conn, 1, 2
   
    Frm(MSH).Redraw = False
    MSH_Rows = rsG.RecordCount + 1 'Nombre de lignes totales
    MSH_Cols = rsG.Fields.Count    'Nombre de colonnes totales
    Frm(MSH).Cols = MSH_Cols
    'Si ya plus d'une ligne
    If rsG.RecordCount > 1 Then
        Frm(MSH).Rows = MSH_Rows
    Else
        Frm(MSH).Rows = 2
        Frm(MSH).Row = 1
        For I = 0 To MSH_Cols - 1
            Frm(MSH).Col = I
            Frm(MSH).Text = ""
        Next I
    End If
    'Renseigne le nom des colonnes
    Frm(MSH).Row = 0
    For I = 0 To MSH_Cols - 1
        Frm(MSH).Col = I
        Frm(MSH).Text = rsG.Fields(I).Name
    Next I
    'Rempli la MSH avec les valeurs fournies par la requête.
    j = 1 '1 pour passer la ligne des titres
    While rsG.EOF = False
        Frm(MSH).Row = j
        For I = 0 To MSH_Cols - 1
            Frm(MSH).Col = I
            If rsG(I).Type = adDouble Then
                Frm(MSH).Text = Format(fn(rsG(I).Type, rsG(I)), "# ### ##0.00")
            Else
                Frm(MSH).Text = fn(rsG(I).Type, rsG(I))
            End If
        Next I
        j = j + 1
        rsG.MoveNext
    Wend
    rsG.Close
    Frm(MSH).Redraw = True
    If CL = True Then
        'Met une ligne sur 2 en BleuClair
        For I = 1 To Frm(MSH).Rows - 1
            For j = 0 To Frm(MSH).Cols - 1                Frm(MSH).Row I: Frm(MSH).Col j                If I Mod 2 1 Then Frm(MSH).CellBackColor Bleu_Clair
            Next j
        Next I
    End If
    Frm(MSH).SetFocus 'Mets le curseur sur la première cellule du tableau    Frm(MSH).Col 0: Frm(MSH).Row 1
    Exit Sub
Redraw: 'Permet d'afficher le résultat obtenu juste avant l'erreur
    Frm(MSH).Redraw = True
End Sub

TBBUIM
Commenter la réponse de tbbuim1
gon_ak 197 Messages postés mardi 28 février 2006Date d'inscription 17 novembre 2006 Dernière intervention - 8 nov. 2006 à 11:10
0
Merci
En fait c'est les résultats de la variable "KmLgth" que je souhaite écrire dans une colonne du MSFlexGrid.
Commenter la réponse de gon_ak
cs_MPi 3877 Messages postés mardi 19 mars 2002Date d'inscription 23 août 2018 Dernière intervention - 8 nov. 2006 à 11:55
0
Merci
Regarde du côté de TextMatrix

Grid1.TextMatrix(Ligne, Colonne) = KmLgth

MPi
Commenter la réponse de cs_MPi
gon_ak 197 Messages postés mardi 28 février 2006Date d'inscription 17 novembre 2006 Dernière intervention - 8 nov. 2006 à 12:34
0
Merci
Salut MPI,

Merci pour ta réponse, mais comment je pourrais m'y prendre pour afficher tous les résultats car en employant ta méthode il m'affiche seulement le résultat du dernier enregistrement.
STP j'ai vraiment besoin d'aide
Merci d'avance 
Commenter la réponse de gon_ak
gon_ak 197 Messages postés mardi 28 février 2006Date d'inscription 17 novembre 2006 Dernière intervention - 8 nov. 2006 à 14:53
0
Merci
Merci les gars!!
Commenter la réponse de gon_ak

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.