Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-11-2005
Ivan_25 Ivan_25 is offline
Miembro
 
Registrado: oct 2005
Posts: 87
Poder: 19
Ivan_25 Va por buen camino
Consulta con un campo de un dbgrid

Hola a tod@s!!!. Mi pregunta es la siguiente. Tengo un DBGrid en un formulario, que me muestra datos de una consulta a una bd access (conexion ADO). Estos datos son Id y Descripcion de proceso. Lo que quiero es que al pinchar en uno de los procesos, me muestre un formulario con todos los candidatos que hay en ese proceso. ¿Como capturo el Id para pasarlo al formulario nuevo para hacer la consulta?. Gracias.
__________________
Un saludo.

Iván.
Responder Con Cita
  #2  
Antiguo 17-11-2005
Avatar de alt126
alt126 alt126 is offline
Miembro
 
Registrado: dic 2004
Posts: 171
Poder: 20
alt126 Va por buen camino
en mi humilde opinion, lo mas sencillo que puedes hacer es:

1º en el dbgrid activar la opcion RowSelect a true, con esto solo puedes seleccionar una linea a la vez.

2º cada vez que pinches una linea de esas, te estas posicionando en un registro concreto de la consulta que muestras en el dbgrid, con lo que imagina esto:

Cita:
ID descripcion

1 aaaa
2 bbbb
c cccc
si pinchas en la fila 2, puedes capturar el evento y si pones esto:

Cita:
Consulta->FieldByName("ID")->AsString -> tiene que contener un 2
Consulta->FieldByName("descripcion")->AsString -> tiene que contener "bbbb"
__________________
Un saludo

Antonio
Responder Con Cita
  #3  
Antiguo 17-11-2005
Ivan_25 Ivan_25 is offline
Miembro
 
Registrado: oct 2005
Posts: 87
Poder: 19
Ivan_25 Va por buen camino
A ver, es que yo creo que no me has entendido bien.
Lo que tu dices es correcto, el problema es que yo no quiero capturar el id del formulario donde muestro los candidatos en el proceso, sino que quiero el id del proceso del formulario padre, y si lo capturo asi como tu dices, ¿como se lo paso luego al formulario hijo para hacer la consulta sql?. Me entiendes o no?
Venga nen, nos vemos, a ver si nos invitas ya a Sandra y a mi a algo, macho, jejejeje.
__________________
Un saludo.

Iván.
Responder Con Cita
  #4  
Antiguo 17-11-2005
Ivan_25 Ivan_25 is offline
Miembro
 
Registrado: oct 2005
Posts: 87
Poder: 19
Ivan_25 Va por buen camino
Vale, vale, ya funciona, jejejejeje, ya lo he pillado:

String cadena;
String cod;
this->ADOQCandidatosenproceso->SQL->Clear();
cadena = "SELECT candidatos.Id, Nombre FROM procesos_candidatos, candidatos, descripcionprocesos WHERE descripcionprocesos.id = ";
cod = FProcesos->ADOQVerprocesos->FieldByName("id")->AsString;
cadena = cadena + cod;
cadena = cadena + " AND procesos_candidatos.IdProceso = descripcionprocesos.id AND candidatos.Id = procesos_candidatos.candidato";
ADOQCandidatosenproceso->SQL->Add(cadena);
ADOQCandidatosenproceso->ExecSQL();
ADOQCandidatosenproceso->Active = true;
this->DSCandidatosenproceso->DataSet = ADOQCandidatosenproceso;
__________________
Un saludo.

Iván.
Responder Con Cita
  #5  
Antiguo 17-11-2005
Avatar de alt126
alt126 alt126 is offline
Miembro
 
Registrado: dic 2004
Posts: 171
Poder: 20
alt126 Va por buen camino
pos lo que yo te decia...joe...

segun habia entendido, tenias un dbgrid donde mostrabas el resultado de una consulta. y querias que al pinchar en el dbgrid te salieran unos datos, en funcion de lo que habias pinchado no?

pos con lo que yo te habia dicho, tenias los datos de lo que habias pinchado, asi que solo tenias que hacer una nueva consulta a partir de los datos que ya tenias.
__________________
Un saludo

Antonio
Responder Con Cita
  #6  
Antiguo 17-11-2005
Ivan_25 Ivan_25 is offline
Miembro
 
Registrado: oct 2005
Posts: 87
Poder: 19
Ivan_25 Va por buen camino
Y otra cosa mas

A ver, he hecho una consulta para obtener datos, y algunos de los datos que obtengo son Si/No, de una base de datos access. Tambien tengo unos campos CheckBox, y quiero que si los datos que obtengo de la consulta estan marcados, me los marque en el checkbox, y si no, pues que no los marque. Yo lo hago asi:

CBActivo->Checked = ADOQDatos->FieldByName("Activo");

El problema es que siempre me lo marca como activo. ¿Como lo soluciono?
Enga neeeeeeeeeeeeeeeeeeeeeeeeeeeeen.
__________________
Un saludo.

Iván.
Responder Con Cita
  #7  
Antiguo 18-11-2005
Avatar de alt126
alt126 alt126 is offline
Miembro
 
Registrado: dic 2004
Posts: 171
Poder: 20
alt126 Va por buen camino
el problema a mi entender es que te falta el tipo de dato...lo raro es que no te de error , deberia ser asi:

Cita:
CBActivo->Checked = ADOQDatos->FieldByName("Activo")->AsBoolean;
Eso suponiendo que el campo en la tabla sea tipo bool.

Si no te funciona, puedes probar esto:

Cita:
if(ADOQDatos->FieldByName("Activo")->AsBoolean == true)
CBActivo->Checked = true;
else
CBActivo->Checked = false;
y asi te podria valer para un campo bool en la tabla, o integer, o texto...
__________________
Un saludo

Antonio
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


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


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
Copyright 1996-2007 Club Delphi