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

Composants VCL Delphi Discussion :

S'arrêter sur un enregistrement dans un DBGrid


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de vg-matrix
    Inscrit en
    Février 2007
    Messages
    1 220
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Février 2007
    Messages : 1 220
    Par défaut S'arrêter sur un enregistrement dans un DBGrid
    Salut tout le monde,

    J'ai un DBGrid qui contient des centaines de lignes. J'aimerais donc positionner le curseur sur une ligne correspondant à un critère de recherche.

    Mais je ne sais pas comment faire

  2. #2
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut

    Il suffit de faire un Locate (ou autre méthode de recherche) sur le DataSet du DBGrid.

    Tout déplacement dans le DataSet se reflète dans le DBGrid.

    @+ Claudius

  3. #3
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 704
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 704
    Par défaut
    Citation Envoyé par Cl@udius Voir le message
    Il suffit de faire un Locate (ou autre méthode de recherche) sur le DataSet du DBGrid.

    Tout déplacement dans le DataSet se reflète dans le DBGrid.
    Par contre le Locate n'est pas une fonction fiable à 100%. Elle peut échouer.
    Je l'utilise pour apporter un peu de confort d'utilisation à mes utilisateurs, mais je ne base aucun algo de traitement dessus.
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

  4. #4
    Membre éprouvé Avatar de vg-matrix
    Inscrit en
    Février 2007
    Messages
    1 220
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Février 2007
    Messages : 1 220
    Par défaut
    Comment s'utilise "Locate"?

    J'ai penser à quelque chose:
    * Positionner le curseur au debut du dataset
    * Parcourir les lignes du dataset avec un "While not dbgrid.datasource.dataset.eof do"
    * Si l'enregistrement recherché est trouvé, alors "break".

    Est-ce une bonne methode?

  5. #5
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Par défaut
    Slt; chez moi sa marche très bien à 100% le locate avec bien sur d'indexé le champ voulu dans la BDD.
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure Tfetab.Edit2Change(Sender: TObject);
    var option:tlocateoptions;
    begin
    dm1.tetabe.First;
    if edit2.Text<>''
     then
      begin
      option:=[lopartialkey];
      dm1.tetabe.Locate('etablissement',edit2.text,option);
      end ;
    end;
    voila un exemple , a testé là ou je suis j'ai pas delphi
    +1 Clau Clau

  6. #6
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Hello
    Citation Envoyé par Lung Voir le message
    Par contre le Locate n'est pas une fonction fiable à 100%. Elle peut échouer.
    Qu'est-ce que tu veux dire par là ?
    La recherche échoue si les critères de recherche ne sont pas trouvés. Ou bien tu sous-entend qu'avec certains composants cette fonction n'est pas fiable: Echec de la recherche alors qu'une occurrence existe.

    Citation Envoyé par Lung Voir le message
    .., mais je ne base aucun algo de traitement dessus.
    Locate déplace le curseur du DataSet, donc oui à n'utiliser qu'à bon escient.

    @+ Claudius

  7. #7
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 704
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 704
    Par défaut
    Citation Envoyé par Cl@udius Voir le message
    Qu'est-ce que tu veux dire par là ?
    La recherche échoue si les critères de recherche ne sont pas trouvés. Ou bien tu sous-entend qu'avec certains composants cette fonction n'est pas fiable: Echec de la recherche alors qu'une occurrence existe.
    Non, même avec les bons critères et les bonnes données, j'ai déjà eu (rarement, mais c'est déjà arrivé) un plantage.
    Depuis, j'ai une confiance limitée.

    Le composant, c'est la TQuery du BDE.
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

  8. #8
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Citation Envoyé par Lung Voir le message
    ...j'ai déjà eu (rarement, mais c'est déjà arrivé) un plantage.
    Depuis, j'ai une confiance limitée.
    Je ne suis jamais tombé sur ce soucis, mais ceci explique surement cela:
    Citation Envoyé par Lung Voir le message
    Le composant, c'est la TQuery du BDE.
    Je n'utilise pas le BDE.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. se positionner sur un enregistrement dans un DBGRID
    Par menoulette dans le forum Débuter
    Réponses: 2
    Dernier message: 23/04/2014, 12h29
  2. Positionnement sur un enregistrement dans un formulaire
    Par bestall666 dans le forum Access
    Réponses: 5
    Dernier message: 04/02/2006, 17h10
  3. [VB]Ajout d'enregistrement dans un DBGrid
    Par nikita34 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 26/01/2006, 08h39
  4. [WD9] Cliquer sur des enregistrements dans une table
    Par oz80 dans le forum WinDev
    Réponses: 2
    Dernier message: 15/12/2005, 20h11
  5. simuler un double click sur une liste dans un dbgrid
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 1
    Dernier message: 01/09/2005, 10h45

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