Parcours DBGrid [Résolu]

Signaler
Messages postés
97
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
18 décembre 2013
-
grandyaka54
Messages postés
97
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
18 décembre 2013
-
Bonjour !

Avant tout chose, j'ai un DBgrid lié à un IBQuery et un IBUpdateQuery.

Mon soucis se passe au moment ou je parcours mon DBGrid dans une colonne afin de controler la saisie avant validation et mise a jour de la table.

Certaines cellules possede un picklist car on a la possibiliter de choisir une valeur. Le probleme se passe au niveau du controle de la cellule et quand il arrive dans une cellule possedant un picklist, la cellule controle bien la donnée selectionnée mais controle aussi la donnée en premiere position du picklist. De plus, on lieu de poursuivre les controle sur les autres cellules, il revient au debut de mon DBGrid et recommence le parcourir et cette fois jusqu'a la fin. Mais la valeur selectionnée est remplacé par la valeur du 1er item de mon picklist.

voici le code simplifier :

  query1.First;


  while not query1.Eof do
  begin


    Valeur := dbgrid1.Columns.Grid.Fields[9].AsString;  //Lecture du contenu de la 1er cellule


    if ((length(Valeur) <> 8) and (length(Valeur)) then
      //..... Suite controle




    query1.Next;  //Enreg suivant


  end;  //End while

3 réponses

Messages postés
97
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
18 décembre 2013
5
Voila maintenant tout semble fonctionné comme voulu, j'ai remplacé :

query1.Fields[9].AsString   par   dbgrid.DataSource.DataSet.FieldByName('NOM').AsString
et
query1.First   par   dbgrid.DataSource.DataSet.First;

et ainsi de suite....
Messages postés
51
Date d'inscription
mardi 8 octobre 2002
Statut
Membre
Dernière intervention
21 décembre 2011

" je parcours mon DBGrid dans une colonne "

Euh, cela signifie quoi ?, on parcours un DataSet de ligne en ligne, puis on examine, les "colonnes" (champs) de celui-ci ...

Valeur := query1.Fields[9].AsString;

sinon, je préfère de loin un FieldByName, c'est beaucoup plus facile à maintenir, ou alors tu fais des constantes pour les index de colonne ...
Messages postés
97
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
18 décembre 2013
5
Euh, en effet je me suis mal exprimer Oups... Je parcours en effet mon dbgrid ligne par ligne  en examinant le contenu d'une cellule. Si le contenu répond aux conditions alors il passe à la ligne suivante.

Par contre, certain contenu possede un picklist avec une liste de valeur. Lors du controle, il verifie bien la valeur selectionné mais verifi aussi la 1er donnée de la liste ... ?? Et au lieu de poursuivre vers la ligne suivante, il revient à la 1er ligne de mon dbgrid.... ??