Hola Maestros
No hay manera, me genera errores, lo tengo asi:
Os muestro el codigo completo para que lo veais mejor:
El combobox1, muestra las tablas.(bien)
El combobox2, muestra los campos.(bien)
El edit1 (en el evento onchange) hace el filtro.(Mal).
Código Delphi
[-]
unit UFManTablas;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DBCtrls, DB, ADODB, Grids, DBGrids, ExtCtrls;
type
TFManTablas = class(TForm)
Panel1: TPanel;
Label2: TLabel;
ComboBox1: TComboBox;
DBGrid1: TDBGrid;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
DBNavigator1: TDBNavigator;
Button1: TButton;
ComboBox2: TComboBox;
Label1: TLabel;
Label3: TLabel;
Edit1: TEdit;
Button2: TButton;
Button3: TButton;
procedure ComboBox1Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
public
end;
var
FManTablas: TFManTablas;
implementation
uses UDM1;
{$R *.dfm}
procedure TFManTablas.ComboBox1Change(Sender: TObject);
begin
ComboBox2.Clear;
ADOQuery1.Close;
ADOQuery1.SQL.Text:= 'Select * from '+ComboBox1.Text;
ADOQuery1.Open;
DBGrid1.Columns.Clear;
DBGrid1.Columns.State := csCustomized;
DBGrid1.Columns[0].Width := 64;
DataModule1.AC1.GetFieldNames(ComboBox1.Text, ComboBox2.Items);
end;
procedure TFManTablas.Button1Click(Sender: TObject);
begin
Close;
end;
procedure TFManTablas.FormCreate(Sender: TObject);
begin
DataModule1.AC1.GetTableNames(ComboBox1.Items);
end;
procedure TFManTablas.Edit1Change(Sender: TObject);
var
idx :integer;
begin
/ idx := ComboBox2.ItemIndex;
AdoQuery1.Close;
case AdoQuery1.Fields[idx].Datatype of
ftString : AdoQuery1.Filter := ComboBox2.Text+ ' = '''+Edit1.Text+ '*''';
ftInteger : AdoQuery1.Filter := ComboBox2.Text+ ' = '+Edit1.Text;
ftFloat,
ftCurrency : AdoQuery1.Filter := ComboBox2.Text+ ' >= '+Edit1.Text;
ftDate,
ftTime : AdoQuery1.Filter := ComboBox2.Text+ ' = '''+Edit1.Text+ '''';
end;
AdoQuery1.Filtered := True;
AdoQuery1.Open;
end;
procedure TFManTablas.Button2Click(Sender: TObject);
begin
Edit1.Text:= '';
end;
end.
A ver si se os ocurre algo.
Gracias
Saludos