Accès au contenu des cellules d'un dbgrid [Résolu]

_ben 6 Messages postés dimanche 4 décembre 2005Date d'inscription 29 décembre 2005 Dernière intervention - 20 déc. 2005 à 22:10 - Dernière réponse : _ben 6 Messages postés dimanche 4 décembre 2005Date d'inscription 29 décembre 2005 Dernière intervention
- 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?
Afficher la suite 

4 réponses

Répondre au sujet
vaughan 207 Messages postés mardi 6 août 2002Date d'inscription 29 octobre 2008 Dernière intervention - 21 déc. 2005 à 09:32
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de vaughan
cs_Adkiks 40 Messages postés jeudi 20 mai 2004Date d'inscription 29 janvier 2006 Dernière intervention - 21 déc. 2005 à 23:34
+3
Utile
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é.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Adkiks
yvessimon 647 Messages postés mardi 22 avril 2003Date d'inscription 9 janvier 2017 Dernière intervention - 22 déc. 2005 à 09:44
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de yvessimon
_ben 6 Messages postés dimanche 4 décembre 2005Date d'inscription 29 décembre 2005 Dernière intervention - 26 déc. 2005 à 14:00
0
Utile
Merci,

réponse très...complète.
Commenter la réponse de _ben

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.