Consulta de una tabla1 para agregar en otra tabla2
Caral observa paso por paso
El form1.
Contiene :
un Edit1.text para realizar la consulta
Un boton para la consulta con el siguiente codigo
un DBGRID conectodo correctamente, pues se ven todos los registros, luego de la primera consulta los registros no vuelven aparecer.
Este el codigo para el boton de consulta.
procedure TForm1.Button1Click(Sender: TObject);
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('Select carnet,nombres,apellido1,apellido2');
adoquery1.SQL.Add('from semma' );
adoquery1.SQL.Add('Where carnet =' + edit1.Text );
adoquery1.Open;
end;
( Funciona)
Otro boton para agregar la consulta a un adotable1 que esta en el form2
con el siguiente codigo ( que es el que creo no esta correcto, pero me funciona a media, o sea envia la consulta, pero no la veo en el momento hasta que no salga de la aplicacion y vuelva a entrar) Tiene el siguiente codigo>
procedure TForm1.Button2Click(Sender: TObject);
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('insert into duplica(carnet,nombres,apellido1,apellido2)');
adoquery1.SQL.Add('select carnet, nombres,apellido1,apellido2 from semma');
adoquery1.SQL.Add('Where carnet =' + edit1.Text );
adoquery1.ExecSQL;
end;
El form2 tiene un dbgrid un un bonto para limpiar o borrar los registros de la tabla auxiliar *es una adotable1*
Este es el codigo del boton que borra los registros de la tabla auxiliar.
While not form1.Adotable1. Eof do
Begin
form1.adotable1.active := true;
form1.adotable1.delete;
end;
Ahora le presento las dos unidades que he hecho:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,ComObj, StdCtrls, DB, Grids, DBGrids, ADODB, Buttons, ExtCtrls, DBCtrls,
OleServer, Word2000;
type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
DataSource2: TDataSource;
DBGrid1: TDBGrid;
ADOTable1CARNET: TIntegerField;
ADOTable1NOMBRES: TWideStringField;
ADOTable1APELLIDO1: TWideStringField;
ADOTable1APELLIDO2: TWideStringField;
Edit1: TEdit;
Button1: TButton;
ADOQuery1CARNET: TIntegerField;
ADOQuery1NOMBRES: TWideStringField;
ADOQuery1APELLIDO1: TWideStringField;
ADOQuery1APELLIDO2: TWideStringField;
BitBtn1: TBitBtn;
Button3: TButton;
BitBtn2: TBitBtn;
Label1: TLabel;
SpeedButton1: TSpeedButton;
Label2: TLabel;
Image1: TImage;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
private
{
procedure Button2Click(Sender: TObject);Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('Select carnet,nombres,apellido1,apellido2');
adoquery1.SQL.Add('from semma' );
adoquery1.SQL.Add('Where carnet =' + edit1.Text );
adoquery1.Open;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('insert into duplica(carnet,nombres,apellido1,apellido2)');
adoquery1.SQL.Add('select carnet, nombres,apellido1,apellido2 from semma');
adoquery1.SQL.Add('Where carnet =' + edit1.Text );
adoquery1.ExecSQL;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
form2.showmodal;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
edit1.Clear;
edit1.SetFocus;
adoquery1.Sort;
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
Word:variant;
Documento:Variant;
Begin
(*Creas un objeto Word*)
Word:=CreateOleObject('word.application');
(*Abrir documento Word*)
Documento := Word.Documents.OPEN('C:\SEMMA486\listado.dot');
Documento.fields.Update;
documento.fields.toggleShowCodes;
Word.visible := true;
end;
end.
nit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComObj,StdCtrls, Buttons, ExtCtrls, DBCtrls, Grids, DBGrids;
type
TForm2 = class(TForm)
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
BitBtn1: TBitBtn;
Button1: TButton;
SpeedButton1: TSpeedButton;
procedure Button1Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
While not form1.ADOTable1.Eof do
begin
form1.ADOTable1.Active := true;
form1.ADOTable1.Delete;
end;
end;
procedure TForm2.SpeedButton1Click(Sender: TObject);
var
Word:variant;
Documento:Variant;
Begin
(*Creas un objeto Word*)
Word:=CreateOleObject('word.application');
(*Abrir documento Word*)
Documento := Word.Documents.OPEN('C:\semma486\listado.doc');
Documento.fields.Update;
documento.fields.toggleShowCodes;
Word.visible := true;
end;
end.
|