Hola Chris! Gracias por contestar!! Bueno ahora pongo el código y explico, hay código que esta fuera de contexto pero igual pongo los procedimientos completos.
1-Busco Cliente, Selecciono cliente en el dbGrig y pongo ver datos.
Código Delphi
[-] procedure TBuscarForm.DatosClienteBitBtnClick(Sender: TObject);
begin
flag:=False;
PrevRecord := Buscarform.ClientesDBGrid.DataSource.DataSet.GetBookmark;
r:=QueryDataModule.ClienteZQuery.FieldByName('ID_Cliente').Value;
with QueryDataModule.ObservacionClienteZQuery do
begin
If active then close;
SQL.Clear;
SQL.Add('Select * from observacion_cliente where observacion_cliente.ID_Cliente='+r+'');
Open;
end;
if QueryDataModule.ObservacionClienteZQuery.FieldByName('ID_Prioridad').IsNull then
begin
if flag=false then
begin
BuscarForm.Visible:=False;
flag:=true;
ListarDatoClienteForm:=TListarDatoClienteForm.Create(Application);
end;
end;
if QueryDataModule.ObservacionClienteZQuery.FieldByName('ID_Prioridad').Value =1 then
begin
if flag=false then
begin
BuscarForm.Visible:=False;
flag:=true;
ListarDatoClienteForm:=TListarDatoClienteForm.Create(Application);
end;
end;
if QueryDataModule.ObservacionClienteZQuery.FieldByName('ID_Prioridad').Value =2 then
begin
if flag=false then
begin
showmessage('Usted deberia leer las observaciones');
BuscarForm.Visible:=False;
flag:=true;
ListarDatoClienteForm:=TListarDatoClienteForm.Create(Application);
end;
end;
if QueryDataModule.ObservacionClienteZQuery.FieldByName('ID_Prioridad').Value =3 then
begin
if flag=false then
begin
BuscarForm.Visible:=False;
flag:=true;
ListarObservacionesForm:=TListarObservacionesForm.Create(Application);
if flag=false then
ListarDatoClienteForm:=TListarDatoClienteForm.Create(Application);
end;
end;
end;
2-En el Form Create asigno los Edit.
Código Delphi
[-]
procedure TListarDatoClienteForm.FormCreate(Sender: TObject);
begin
ActualizarActivadoPngSpeedButton.Visible:=False;
ApellidoEdit.Text:=QueryDataModule.ClienteZQuery.FieldByName('Apellido').AsAnsiString;
NombreEdit.Text:=QueryDataModule.ClienteZQuery.FieldByName('Nombre').AsAnsiString;
DNIEdit.Text:=QueryDataModule.ClienteZQuery.FieldByName('DNI').AsAnsiString;
ListarFechaNacimientoDateTimePicker.Date:=QueryDataModule.ClienteZQuery.FieldByName('Fecha_Nacimient o').AsDateTime;
DireccionEdit.Text:=QueryDataModule.ClienteZQuery.FieldByName('Direccion').AsAnsiString;
TelefonoEdit.Text:=QueryDataModule.ClienteZQuery.FieldByName('Telefono').AsAnsiString;
ConyugeCheckBox.Checked:=QueryDataModule.ClienteZQuery.FieldByName('Conyuge').Value;
ObservacionesCheckBox.Checked:=QueryDataModule.ClienteZQuery.FieldByName('Observaciones_Check').Valu e;
CelularEdit.Text:=QueryDataModule.ClienteZQuery.FieldByName('Celular').AsAnsiString;
E_MailEdit.Text:=QueryDataModule.ClienteZQuery.FieldByName('E_Mail').AsAnsiString;
OcupacionDBLookupComboBox.KeyValue:=QueryDataModule.ClienteZQuery.FieldByName('ID_Ocupacion').Value;
ProveedorMailDBLookupComboBox.KeyValue:=QueryDataModule.ClienteZQuery.FieldByName('ID_Proveedor_Mail ').Value;
IngresoSistemaDiaLabel.Caption := FormatDateTime('dddd yyyy/mm/dd', QueryDataModule.ClienteZQuery.FieldByName('Fecha_Ingreso_Sistema').AsDateTime);
IngresoSistemaHoraLabel.Caption:= FormatDateTime('hh:nn:ss', QueryDataModule.ClienteZQuery.FieldByName('Fecha_Ingreso_Sistema').AsDateTime);
if QueryDataModule.ClienteZQuery.FieldByName('Baja').Value=1 then
begin
showmessage('Atencion Cliente Rescindido');
Self.Font.Color:=clred;
ListarFechaNacimientoDateTimePicker.Font.Color:=clred;
end
else
begin
Self.Caption:='Cliente Activo';
Self.Font.Color:=clgreen;
ListarFechaNacimientoDateTimePicker.Font.Color:=clgreen;
end;
end;
3-Cuando se modifica un TEdit se habilita el boton Actulizar.
Código Delphi
[-]procedure TListarDatoClienteForm.ActualizarActivadoPngSpeedButtonClick(
Sender: TObject);
begin
with QueryDataModule.ClienteZQuery do
begin
If active then close;
SQL.Clear;
SQL.Add('Update cliente set ');
SQL.Add('Apellido='''+ApellidoEdit.Text+''', ');
SQL.Add('Nombre='''+NombreEdit.Text+''', ');
SQL.Add('DNI='''+DNIEdit.Text+''', ');
SQL.Add('Fecha_Nacimiento=:FechaNacimiento,');
ParamByName('FechaNacimiento').Value:=ListarFechaNacimientoDateTimePicker.DateTime;
SQL.Add('ID_Ocupacion=:Ocupacion,');
ParamByName('Ocupacion').Value:=OcupacionDBLookupComboBox.KeyValue;
SQL.Add('ID_Proveedor_Mail=:Proveedor,');
ParamByName('Proveedor').Value:=ProveedorMailDBLookupComboBox.KeyValue;
SQL.Add('Direccion='''+DireccionEdit.Text+''', ');
SQL.Add('Telefono='''+TelefonoEdit.Text+''', ');
SQL.Add('Celular='''+CelularEdit.Text+''', ');
SQL.Add('E_Mail='''+E_MailEdit.Text+''' ');
SQL.Add('Where cliente.ID_Cliente='+r+'');
ExecSQL;
end;
end;
4-Una vez que Actualice hago click en el boton volver, para retornar al DBGrig y en este momento es cuando me da ese error.
Código SQL
[-] procedure TListarDatoClienteForm.AnteriorPngSpeedButtonClick(
Sender: TObject);
begin
BuscarForm.Visible:=True;
//BuscarForm.BuscarPngSpeedButtonClick(Sender);
BuscarForm.ClientesDBGrid.DataSource.DataSet.GotoBookmark(PrevRecord);
release;
end;
Bueno esos son los pasos, espero que sirva ahora. Gracia Chriss y ecfisa!!!!!