Accès au contenu des cellules d'un dbgrid

Résolu
_ben Messages postés 6 Date d'inscription dimanche 4 décembre 2005 Statut Membre Dernière intervention 29 décembre 2005 - 20 déc. 2005 à 22:10
_ben Messages postés 6 Date d'inscription dimanche 4 décembre 2005 Statut Membre Dernière intervention 29 décembre 2005 - 26 déc. 2005 à 14:00
Bonjour,

je veux parcourir le contenu du premier champ (toutes les lignes) d'un
DBGrid afin d'en comparer le contenu avec le contenu d'une cellule d'un
TStringgrid..comment faire?

J'ai trouvé la valeur Query.RecordCount comme limite de ma boucle....(nombre d'enregistrements contenu dans le DBGrid donc)

mais je ne sais pas comment récupérer la valeur du champ de l'enregistrement n puis n+1..puis n+2 etc...?

DBGrid.Fields[0].AsString...mais comment sélectionner la valeur
du champ dans la première ligne...puis la deuxième ligne etc?

OU est ce que je suis positionné par défaut pour lire le contenu d'un champ?

4 réponses

vaughan Messages postés 198 Date d'inscription mardi 6 août 2002 Statut Membre Dernière intervention 29 octobre 2008
21 déc. 2005 à 09:32
Voici une solution, il en existe toujours un max ...


Tu vas utiliser un DBNavigator que tu va mettre en "hide" afin de ne pas le voir à l'écran et le connecter à ta DBGrid.

Ensuite il te reste à faire ce genre de code :

For vCptChamps:=0 To DataSource.DataSet.RecordCount-1 Do
Begin
// Ton traitement champ 1
... := DBGridW.Fields[0].AsString;
// Ton traitement champ 2
...:= DBGridW.Fields[1].AsString;
// Ligne suivante Suivant
DBNaviW.BtnClick(nbNext);
End;

Attnetion si tu navige dans ta DBGrid remettre le DBNavigator à la première occurence avant traitement ...

Pour Avoir les informations de la ligne sélectionnée, simplement faire :

// Ton traitement champ 1
... := DBGridW.Fields[0].AsString;

vaughan
3
cs_Adkiks Messages postés 40 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 29 janvier 2006
21 déc. 2005 à 23:34
Si je comprends bien tu utilises une requete.Alors ton probleme est facile à résourdre.Le DBGrid est simplement un outil de visualisation.C'est la requete que tu vas utiliser pour parcourir les champs.C'est la meme chose qu'avec une table.
Dans ton exemple: Query.RecordCount est le nombre d'enregistrement. Admettons que vous avez un champs nommé NomCl:
Query.FieldByName('NomCl').AsString donne accés au champs NomCl.
En résumé c'est comme tu utilises une table.j'espere vous avoir un peu aidé.
3
yvessimon Messages postés 637 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 9 janvier 2017
22 déc. 2005 à 09:44
Avec
DBGrid1.Colums[nc].FieldName tu as le nom du champ

DBGrid1.Colums[nc].asString tu as la valeur de l'enregistrement sélectionné

yvessimon
3
_ben Messages postés 6 Date d'inscription dimanche 4 décembre 2005 Statut Membre Dernière intervention 29 décembre 2005
26 déc. 2005 à 14:00
Merci,

réponse très...complète.
0
Rejoignez-nous