Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-07-2007
Avatar de theloren07
theloren07 theloren07 is offline
No confirmado
 
Registrado: jun 2007
Posts: 10
Poder: 0
theloren07 Va por buen camino
Question Consultas Múltiples

Hola a todos, haber si por favor alguien me da una mano con lo siguiente, estoy trabajando en delphi 7 y tengo una tabla con un campo llamado "Estado Civil" en el cual inserto los registros a la tabla(Empleados) correspondiente a ese campo utilizando un ComboBox, el cual contiene en su propiedad "Items.String" lo siguiente (Soltero, Casado, Divorciado, Viudo) y necesito hacer una consulta utilizando otro ComboBox(Soltero,Casado,Divorciado,Viudo), el cual me permite desplegar por pantalla en QuickReport las personas según su estado civil, por ejemplo si seleccionno Casados me despliegue todos los casados, si es Soltero despliegue todos los Solteros y así sucesivamente.

Gracias por adelantado..
Responder Con Cita
  #2  
Antiguo 09-07-2007
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Lo puedes resolver con una simple consulta.
Código Delphi [-]
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('Select * From Empleados ');
Query1.Sql.Add('Where Estado = '+QuotedStr(Combobox1.Text));
Query1.Open;

El Datasource de esta consulta lo conectas con el objeto QuickRep y a funcionar.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 10-07-2007
Avatar de theloren07
theloren07 theloren07 is offline
No confirmado
 
Registrado: jun 2007
Posts: 10
Poder: 0
theloren07 Va por buen camino
Unhappy Consultas Múltiples

Ya probé los codigos que me facilitaste, pero no me funcionaron , ni siquiera dan error, es como si el botón estuviera vacio, por cierto estoy utilizando Access 2003 para menejar las tablas y delphi 7 con ADOconeccion, AdoTable y AdoQuery.
Responder Con Cita
  #4  
Antiguo 10-07-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.562
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por theloren07
Ya probé los codigos que me facilitaste, pero no me funcionaron , ni siquiera dan error, es como si el botón estuviera vacio, por cierto estoy utilizando Access 2003 para menejar las tablas y delphi 7 con ADOconeccion, AdoTable y AdoQuery.
Hola, y ya probaste haciendo un trace en el botón para ver que hace

Si no te da error seguramente el problema está en otra parte, puede ser no haya datos que mostrar con esa consulta, que no está ligado ningún DataSource a la consulta, etc.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #5  
Antiguo 10-07-2007
Avatar de theloren07
theloren07 theloren07 is offline
No confirmado
 
Registrado: jun 2007
Posts: 10
Poder: 0
theloren07 Va por buen camino
Unhappy Consultas Múltiples

Lo verifiqué todo y esta todo conectado incluso tengo la tabla con más de 30 registros, he hecho otros tipos de consultas pero solo utilizando el componente Query, aúnque no del tipo que estoy tratando de hacer, como que no me sale en la forma que deseo hacelo...

Incluso ya probé con otro tipo de consulta, solo que en este caso utilizo un combobox y un edit y funciona, pero utilizando solo el combobox para este tipo de consulta por grupo no dice nada nadita...
Responder Con Cita
  #6  
Antiguo 10-07-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 26
Caral Va por buen camino
Hola
Aqui lo mas sencillo es hacer lo que te menciono marcoszorrilla, solo que yo lo haria con un proceso un poco mas largo, por ejemplo:
En el qreport colocaria un adoquery y en su propiedad string le incluiría la primera parte del codigo del maestro:
Código SQL [-]
Select * From Empleados
Con esto ya puedo trabajar el reporte comodamente, luego en el boton llamaria al filtro y al reporte:
Código Delphi [-]
Qreport1.adoQuery1.Sql.Add('Where Estado = '+QuotedStr(Combobox1.Text));
Qreport1.adoQuery1.Open;
Qreport1.Preview;
Con esto cada vez que quieras hacer una consulta sobre esa tabla, pero de diferente forma, podras hacerla simplemente cambiando el ultimo codigo.
Saludos
Responder Con Cita
  #7  
Antiguo 10-07-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.562
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por theloren07
Lo verifiqué todo y esta todo conectado incluso tengo la tabla con más de 30 registros, he hecho otros tipos de consultas pero solo utilizando el componente Query, aúnque no del tipo que estoy tratando de hacer, como que no me sale en la forma que deseo hacelo...

Incluso ya probé con otro tipo de consulta, solo que en este caso utilizo un combobox y un edit y funciona, pero utilizando solo el combobox para este tipo de consulta por grupo no dice nada nadita...
Bueno, porque no posteas lo que has hecho para no estar divagando en que puede ser, de esa forma podremos darte una mejor respuesta.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #8  
Antiguo 10-07-2007
Avatar de theloren07
theloren07 theloren07 is offline
No confirmado
 
Registrado: jun 2007
Posts: 10
Poder: 0
theloren07 Va por buen camino
Smile Consultas Múltiples

Ciertamente, pero donde estoy no tengo delphi, pero en cuanto llegue a casa si el problema se sigue presentando lo posteo, de todas formas le hare saber sobre la situación...
Responder Con Cita
  #9  
Antiguo 11-07-2007
Avatar de theloren07
theloren07 theloren07 is offline
No confirmado
 
Registrado: jun 2007
Posts: 10
Poder: 0
theloren07 Va por buen camino
Unhappy Consultas Múltiples

Bueno aquí esta la estructura de código que utilizo...

Código Delphi.
--------------------------------------------------------------------------------
Código Delphi [-]
procedure TFrmMConsultas.Button1Click(Sender: TObject);
begin
Dmodulo.ADOQuery1.Close;
Dmodulo.ADOQuery1.SQL.Clear;
Dmodulo.ADOQuery1.Sql.Add('Select * From Empleados ');
Dmodulo.ADOQuery1.Sql.Add('Where estadocivil = '+QuotedStr(Combobox1.Text));
Dmodulo.ADOQuery1.Open;
//QrListado.preview;
if Dmodulo.ADOQuery1.eof then
begin
if application.messagebox('Registros no encontrados','Salir',mb_yesno+mb_iconquestion)=idyes then
CLOSE;
end else
begin
QrListado.preview;
end;
end;
end.
--------------------------------------------------------------------------------

Aún no me funciona...

Última edición por marcoszorrilla fecha: 11-07-2007 a las 16:50:41.
Responder Con Cita
  #10  
Antiguo 11-07-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 26
Caral Va por buen camino
Hola
De momento se me ocurre que el campo estadocivil debe ser texto, entonces no veo la necesidad de la trasformacion, por otro lado yo lo haria en un solo codigo, algo asi:
Código Delphi [-]
procedure TFrmMConsultas.Button1Click(Sender: TObject);
begin
Dmodulo.ADOQuery1.Close;
Dmodulo.ADOQuery1.Sql.Text:= 'Select * From Empleados Where estadocivil = ' +Combobox1.Text;
Dmodulo.ADOQuery1.Open;
Primero, al usar text, se borra lo que hay en el query sin hacer nada.
Segundo, es mas clara la sentencia en un solo paso.
Tercero, como dije, me parece que el campo estadocivil, debe ser un campo tipo texto.
Recuerda, ayuda de novato, no te fies mucho, solo prueba.
Saludos
Responder Con Cita
  #11  
Antiguo 11-07-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.562
Poder: 25
egostar Va camino a la fama
Tienes un pequeño detalle y es lo que te está creando el conflicto mental

No uses la comparación de EoF, siempre será verdad con o sin registros, mejor usa RecordCount.

Código Delphi [-]
procedure TFrmMConsultas.Button1Click(Sender: TObject);
begin
  Dmodulo.ADOQuery1.Close;
  Dmodulo.ADOQuery1.SQL.Clear;
  Dmodulo.ADOQuery1.Sql.Add('Select * From Empleados ');
  Dmodulo.ADOQuery1.Sql.Add('Where estadocivil = '+QuotedStr(Combobox1.Text));
  Dmodulo.ADOQuery1.Open;
  if Dmodulo.ADOQuery1.RecordCount = 0 then begin //Esta es la comparación que debe de ir
     if application.messagebox('Registros no encontrados','Salir',mb_yesno+mb_iconquestion)=idyes then
        Close;
     end 
     else begin
            QrListado.preview;
     end;
  end;
end;

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #12  
Antiguo 12-07-2007
Avatar de theloren07
theloren07 theloren07 is offline
No confirmado
 
Registrado: jun 2007
Posts: 10
Poder: 0
theloren07 Va por buen camino
Talking Consultas Múltiples

Muy cierto caral, el campo que utilizo es tipo texto, ya hace lo quería que hiciera, esta la estructura por si alguien más la llega a necesitar.

********************************************************
Código Delphi [-]
procedure TFrmMConsultas.Button1Click(Sender: TObject);
begin
Dmodulo.ADOQuery1.Close;
Dmodulo.ADOQuery1.SQL.Clear;
Dmodulo.ADOQuery1.Sql.Add('Select * From empleados ');
Dmodulo.ADOQuery1.Sql.Add('Where estadocivil='+#39+Combobox1.Text+#39);
Dmodulo.ADOQuery1.Open;
QrListado.preview;
end;
end.

Les agradezco a marcozorilla, egostar y caral por ayudarme en este problema, muchas gracias nuevamente por su tiempo invertido y dar gracias a DIOS que existen personas como ustedes, que DIOS LE BENDIGA.

Última edición por marcoszorrilla fecha: 12-07-2007 a las 16:33:16. Razón: [Delphi]Faltan etiquetas Delphi[/Delphi]
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Mensajes multiples mjjj Varios 8 09-04-2007 18:30:57
como mostrar consultas multiples en un dbgrid?? yo_coco_py SQL 6 27-01-2007 14:00:31
Consultas SQL V.S. Consultas Clipper AGAG4 SQL 7 20-12-2005 16:59:31
Multiples instancias Phacko Varios 1 07-09-2004 16:40:25
multiples registros azaagh Conexión con bases de datos 8 10-06-2004 03:45:55


La franja horaria es GMT +2. Ahora son las 02:31:24.


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