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

Delphi Discussion :

Recherche incrémentable dans un DBGRID


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Inscrit en
    Février 2005
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 356
    Par défaut Recherche incrémentable dans un DBGRID
    Bonjour tout le monde !

    Voilà je suis sous Borland Delphi 6 et j'ai créé un DBGrid (via un datasource et un query).

    J'ai également un champ où j'aimerais faire de la recherche incrémentable.

    Je m'explique :
    J'aimerais que le DBGrid se positionne à la ligne X si il trouve la correspondance avec mon champ.

    Exemple
    ligne 0, Analyse
    ligne ..., ...
    ligne 4, Compilation
    ligne 5, Developpement
    ligne 12, Programmation
    ligne ..., ....

    J'aimerais que le DBGRID se mette à la ligne 4 lorsque je tape la lettre C dans ma zone de texte.
    ATTENTION : Je ne veux pas un filtre car il m'empecherait de voir les mots commençant par la lettre P (par exemple)

    Comment puis-je faire ceci ? MERCI BCP

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Février 2006
    Messages
    624
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 624
    Par défaut
    Bonsoir

    Essayes comme cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, Db, DBTables, Grids, DBGrids;
    
    type
      TForm1 = class(TForm)
        DBGrid1: TDBGrid;
        DataSource1: TDataSource;
        Table1: TTable;
        Edit1: TEdit;
        procedure Edit1Change(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.DFM}
    
    procedure TForm1.Edit1Change(Sender: TObject);
    begin
      Table1.SetRangeStart;  // fonctionne sur les champs indexés
      Table1.FieldByName('Company').AsString := Edit1.Text;
      Table1.ApplyRange;
    end;
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Table1.DatabaseName := 'DBDEMOS';
      Table1.TableName := 'customer.db';
      Table1.IndexFieldNames := 'Company';
      Table1.Active := True;
    end;
    
    end.

  3. #3
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Par défaut

    essaye aussi ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, DB, Grids, DBGrids, DBTables;
     
    type
      TForm1 = class(TForm)
        Table1: TTable;
        DBGrid1: TDBGrid;
        DataSource1: TDataSource;
        Edit1: TEdit;
        procedure Edit1Change(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.Edit1Change(Sender: TObject);
    begin
      Table1.Locate('Company',Edit1.Text,[loPartialKey,loCaseInsensitive]);
    end;
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Table1.DatabaseName := 'DBDEMOS';
      Table1.TableName := 'customer.db';
      Table1.IndexFieldNames := 'Company';
      Table1.Active := True;
    end;
     
    end.

  4. #4
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    c'est ta query que tu dois "piloter" pour te placer sur le bon enregistrement, pas la DBGrid. En te plaçont sur le bon enregistrement (avec locate/find, etc...), ta dbgrid suivra...

  5. #5
    Membre éclairé

    Inscrit en
    Février 2005
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 356
    Par défaut
    Effectivement, c'est le query.

    Et j'ai utiliser la fonction locate.

    Merci pour vos réponses

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

Discussions similaires

  1. Tri des valeurs dans un DBGrid
    Par soviet dans le forum C++Builder
    Réponses: 3
    Dernier message: 11/06/2015, 14h18
  2. [AJAX] Input recherche dans une dbgrid
    Par thetrollman dans le forum AJAX
    Réponses: 1
    Dernier message: 30/04/2014, 16h43
  3. recherche dans un dbgrid
    Par kroma23 dans le forum Bases de données
    Réponses: 4
    Dernier message: 11/05/2009, 18h03
  4. Recherche d'un critère dans un DBGRID
    Par sasaas dans le forum Bases de données
    Réponses: 12
    Dernier message: 05/11/2006, 11h34
  5. lenteur d'affichage de requete dans un DBGrid
    Par nico27 dans le forum InterBase
    Réponses: 9
    Dernier message: 23/06/2003, 13h54

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