Bonjour à tous,
Pour chercher un enreg. dans une table, je fais :
Valeur := 'AZERTY'
Table1.Locate ('Champs', Valeur, []);
Ma question est comment je pourrais trouver les enreg. différents à Valeur ( différents à 'AZERTY') ?
Merci
Bonjour à tous,
Pour chercher un enreg. dans une table, je fais :
Valeur := 'AZERTY'
Table1.Locate ('Champs', Valeur, []);
Ma question est comment je pourrais trouver les enreg. différents à Valeur ( différents à 'AZERTY') ?
Merci
En faisant une requête SQL :
SELECT col FROM MaTable WHERE champ <> 'AZERTY';
Bonjour,Précisez la base de données et le jeu de composants (même si j'en ai déduit qu'il s'agit du BDE ), la réponse n'en sera que plus pertinente...
En gardant ce même composant de type TTable (très certainement associé à une grille), on pourrait utiliser un filtre :
Cela dit, ce n'est peut-être pas la manière la plus performante de procéder, un composant TQuery et une requête SQL (cf. message de free07) serait plus adaptée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Table1.Filter := 'Champs <> ''AZERTY'''; Table1.Filtered := True;
Ne connaissant pas ta BD j'ai testé sur ADOTable et AdoQuery pour le SQL.
Il faut modifier le code pour l'adapter à tes besoins.
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 unit Unit3; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, Vcl.DBGrids, Data.DB, Data.Win.ADODB, Vcl.StdCtrls; type TForm3 = class(TForm) BtnLocate: TButton; DataSource1: TDataSource; ADOTable1: TADOTable; DBGrid1: TDBGrid; Edit1: TEdit; Label1: TLabel; BtnSQL1: TButton; ADOQuery1: TADOQuery; DataSource2: TDataSource; BtnSQL2: TButton; Label2: TLabel; procedure BtnLocateClick(Sender: TObject); procedure BtnSQL1Click(Sender: TObject); procedure BtnSQL2Click(Sender: TObject); private { Déclarations privées } public { Déclarations publiques } end; var Form3: TForm3; implementation {$R *.dfm} procedure TForm3.BtnLocateClick(Sender: TObject); begin if Edit1.text <> '' then Begin If (AdoTable1.Locate('Champ1;Champ2',VararrayOf([Edit1.text,Null]),[])=true)then ShowMessage('Chaine trouvée') else ShowMessage('Chaine non trouvée'); End; end; procedure TForm3.BtnSQL1Click(Sender: TObject); begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('Select * from TableTest where Champ1 <> ''AZERTY '''); try ADOQuery1.Open; finally end; end; procedure TForm3.BtnSQL2Click(Sender: TObject); begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('Select * from TableTest where Champ1 = ''AZERTY '''); try ADOQuery1.Open; finally end; end;
On peut aussi utiliser l’événement OnFilterRecord mais c'est franchement "dégueu".
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager