Ver Mensaje Individual
  #21  
Antiguo 28-03-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Reputación: 27
Caral Va por buen camino
Hola
Perdonen Maestros por no contestar antes, pero estuve sin conexion a internet, fallas tipicas del pais.
Primero comentarles que funciono a la perfeccion y agradecer toda vuestra ayuda, asi quedo para que otras personas lo puedan ver.
Código Delphi [-]
// En Este form me ayudaron:
// Roman, Egostar, Lepe, ArdiIIa
// Un agradecimiento especial a ellos.

unit UFManTablas;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DBCtrls, DB, ADODB, Grids, DBGrids, ExtCtrls, ComCtrls;

type
  TFManTablas = class(TForm)
    Panel1: TPanel;
    Label2: TLabel;
    ComboBox1: TComboBox;
    DBGrid1: TDBGrid;
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    DBNavigator1: TDBNavigator;
    Button1: TButton;
    Label3: TLabel;
    Edit1: TEdit;
    Label1: TLabel;
    ComboBox2: TComboBox;
    Label4: TLabel;
    DateTimePicker1: TDateTimePicker;
    procedure ComboBox1Change(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure DateTimePicker1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FManTablas: TFManTablas;

implementation

uses UDM1;

{$R *.dfm}

procedure TFManTablas.ComboBox1Change(Sender: TObject);
begin
    AdoQuery1.Filtered := False;
    Edit1.Text:= '';
    ComboBox2.Clear;
    DateTimePicker1.CleanupInstance;
    ADOQuery1.Close;
    ADOQuery1.SQL.Text:= 'Select * from '+ComboBox1.Text;
    ADOQuery1.Open;
    DBGrid1.Columns.Clear;
    DBGrid1.Columns.State := csCustomized;
    DBGrid1.Columns[0].Width := 64;
    // con esto veo el nombre de los campos de la tabla.
    DataModule1.AC1.GetFieldNames(ComboBox1.Text, ComboBox2.Items);
    
end;

procedure TFManTablas.Button1Click(Sender: TObject);
begin
  Close;
end;

procedure TFManTablas.FormCreate(Sender: TObject);
begin
   // con esto veo el nombre de las tablas
   DataModule1.AC1.GetTableNames(ComboBox1.Items);
   DateTimePicker1.DateTime:= now;
end;

procedure TFManTablas.Edit1Change(Sender: TObject);
var
  FieldName: String;
  Field: TField;
//  Filter: String;
begin
   If (Edit1.Text <> '') then
   begin
  FieldName := ComboBox2.Text; // tomo el nombre del campo
  Field := AdoQuery1.Fields.FieldByName(FieldName); // buscamos el campo por nombre
  AdoQuery1.Close;
  case Field.Datatype of
      ftString, ftWideString:  ADOQuery1.Filter := ComboBox2.Text+ ' Like '''+Edit1.Text+ '*''';
      ftInteger : ADOQuery1.Filter := ComboBox2.Text+ ' = '+Edit1.Text;
     ftFloat : ADOQuery1.Filter := ComboBox2.Text+ ' = '+Edit1.Text;
     end;
     AdoQuery1.Filtered := True;
     AdoQuery1.Open;
  end;
   end;

procedure TFManTablas.DateTimePicker1Change(Sender: TObject);
var
  FieldName: String;
  Field: TField;
 // Filter: String;
begin
  FieldName := ComboBox2.Text; // tomo el nombre del campo
  Field := AdoQuery1.Fields.FieldByName(FieldName); // buscamos el campo por nombre
  AdoQuery1.Close;
  case Field.Datatype of
     ftDateTime : AdoQuery1.Filter := ComboBox2.Text+ ' = '+DateToStr(DateTimePicker1.DateTime);
      end;
     AdoQuery1.Filtered := True;
     AdoQuery1.Open;
end;
end.
Reitero Muchisimas gracias Maestros.
Saludos
Responder Con Cita