Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Modificar un regitro de un dbgrid en otro formulario (https://www.clubdelphi.com/foros/showthread.php?t=83581)

Vales08 03-07-2013 16:22:04

Modificar un regitro de un dbgrid en otro formulario
 
Buen dia foro..
Bueno les comento lo que necesito.. Tengo un formulario Agenda de Turnos en el cual los campos son fecha, hora, profesional, paciente.. (son turno)El campo paciente esta siempre vacio porque cuando se vaya asignando un turno se le asigna el paciente a alguno de esos turnos.

El problema esta en que para asignarle el paciente a algun registro yo selecciono el registro, presiono el boton agregar y se me muestra un formulario que contiene dblabel que muestra el profesional, la fecha y la hora seleccionada y tengo un dbedit en el que pongo el paciente.. El problema esta en que el dblabel que lo tengo conectado al campo profesional, me debe mostrar el profesional seleccionado, pero no me muestra ese sino que me muestra cualquier otro..

Como puedo hacer para que me muestre especificamente el registro que yo seleccione..??

Espero haberme explicado bien y puedan ayudarme

PD: uso delphi 7

ElDioni 03-07-2013 18:32:18

Algo debe haber mal en la conexión de los campos porque si estuvieran bien no te mostraría otro registro que no fuera el que está seleccionado, ¿no tendrás dos componentes (un adoquery y un clientdataset, por ejemplo) y tengas conectados los objetos DB al DataSet incorrecto?.

Saludos.

gersojn 03-07-2013 18:54:21

Hola Vales08,

Pues debes de capturar el valor del registro seleccionado, no se con cual Base de datos trabajas y que tipo de componente utilizas para conectarte a la misma, pero puedes hacer lo siguiente:
Capturas el registro que necesitas

Código Delphi [-]
procedure TForm1.DBGrid1DblClick(Sender: TObject);
var
campo1,campo2:String;
begin
  campo1:=DBGrid1.DataSource.DataSet.FieldByName('campo1').AsString;
  campo2:=DBGrid1.DataSource.DataSet.FieldByName('campo2').AsString;
 //Seguidamente lanzas un Query con un Query de los componentes que utilizes, 
Query.close;
Query.Sql.Clear();
Query.Sql.Add('SELECT CAMPOX,CAMPOY,CAMPOZ FROM TABLA WHERE CAMPOX=CAMPO1');
Query.Params.ParamByName('date').AsString := '22/02/2012';
Query.Execute;
//Con esto tendrias el registro que necesites
end;
Saludos.

ElDioni 03-07-2013 19:06:55

Hola gersojn,

yo creo que si tiene objetos "Data Controls" es precisamente para no tener que estar asignando los valores a campos por separado ni tener que estar haciendo una consulta cada vez que se quiera ver un registro, es para que estos valores se carguen automáticamente, vamos, creo entender yo.

Saludos.


La franja horaria es GMT +2. Ahora son las 01:54:03.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi