Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-09-2008
lKinGl lKinGl is offline
Miembro
 
Registrado: ago 2007
Posts: 333
Poder: 19
lKinGl Va por buen camino
Exclamation Combobox, Tablas, Códigos duplicados

salu2 amigos foristas.-

tengo un formulario el cual se llena mediante un combobox que carga los código (campo de tabla paradox 7), y cuando selecciono 1 se carga la informacion correspondiente, bien el problema surge cuando tengo 2 códigos iguales en la tabla pero de diferente hora.... facilito el código para mayor entendimiento de mi caso.

Código Delphi [-]
procedure TForm17.ComboBox1Change(Sender: TObject);
begin
if form1.Table7.Locate('cod_prov',ComboBox1.Text,[])  and form1.Table7.Locate('hor_pla',ComboBox1.,[]) then
  begin
    edit1.Text:=form1.Table7.FieldValues['nom_prov'];
    edit2.Text:=form1.Table7.FieldValues['observacion'];
    edit4.Text:=form1.Table7.FieldValues['hor_pla'];
    edit3.Text:=form1.Table7.FieldValues['gro_pla'];
    SpinEdit1.MaxValue:=form1.Table7.FieldValues['can1'];
    edit5.Text:=form1.Table7.FieldValues['can2'];
    BitBtn1.Enabled:=true;
    BitBtn7.Enabled:=true;
    BitBtn8.Enabled:=true;
  end
  else
  begin
    Application.MessageBox('Erro Grave','');
    exit;
  end;
end;

ok como vemos al elegir un item del combobox se carga correctamente la ifnormacion de x registro, pero cuando hay 2 o mas registros con el mismo código y selecciono el item(duplicado) del combobox me muestra la informacion del primero que encuentre en el escaneo de la tabla

la pregunta es:

si tengo 2 códigos duplicados(Necesario) de diferentes datos (Hora) ¿que debo hacer para que cargue el que es y no el que primero consiga?


gracias adelantadas...
Responder Con Cita
  #2  
Antiguo 10-09-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 24
Caro Va por buen camino
Hola lking, prueba de ponerle la opción loCaseInsensitive a tus Locate.

Código Delphi [-]
if Table7.Locate('cod_prov',ComboBox1.Text,[loCaseInsensitive]) and Table7.Locate('hor_pla',ComboBox2.,[loCaseInsensitive]) then
................

También lo puedes hacerlo con un solo Locate.

Código Delphi [-]
if Table7.Locate('cod_prov;hor_pla', VarArrayOf([ComboBox1.Text, ComboBox2.Text]), [loCaseInsensitive]) then

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 10-09-2008
lKinGl lKinGl is offline
Miembro
 
Registrado: ago 2007
Posts: 333
Poder: 19
lKinGl Va por buen camino
hola caro, me puedes decir si hay que agregar algo a las uses o declarar una variable?
Responder Con Cita
  #4  
Antiguo 11-09-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 24
Caro Va por buen camino
Hola de nuevo, no necesitas añadir nada en el uses, tampoco ninguna variable, son necesarios las unidades que te lo añade por defecto DB, ADODB para el AdoQuery y el Locate y Variant para VarArrayOf.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #5  
Antiguo 11-09-2008
lKinGl lKinGl is offline
Miembro
 
Registrado: ago 2007
Posts: 333
Poder: 19
lKinGl Va por buen camino
disculpa caro pero no te entiendo nada jeje disculpa mi ignorancia pero cuando coloco el locaseinsensitive no me corre el programa

este es el codigo que tengo en mi aplicacion

Código Delphi [-]
procedure TForm17.ComboBox1Change(Sender: TObject);
begin
if form1.Table7.Locate('cod_prov',ComboBox1.Text,[locaseinsensitive]) then
  begin
    edit1.Text:=form1.Table7.FieldValues['nom_prov'];
    edit2.Text:=form1.Table7.FieldValues['observacion'];
    edit4.Text:=form1.Table7.FieldValues['hor_pla'];
    edit3.Text:=form1.Table7.FieldValues['gro_pla'];
    SpinEdit1.MaxValue:=form1.Table7.FieldValues['can1'];
    edit5.Text:=form1.Table7.FieldValues['can2'];
    BitBtn1.Enabled:=true;
    BitBtn7.Enabled:=true;
    BitBtn8.Enabled:=true;
  end
  else
  begin
    Application.MessageBox('Erro Grave','');
    exit;
  end;
end;

gracias adelantadas

Última edición por lKinGl fecha: 11-09-2008 a las 02:47:46.
Responder Con Cita
  #6  
Antiguo 11-09-2008
lKinGl lKinGl is offline
Miembro
 
Registrado: ago 2007
Posts: 333
Poder: 19
lKinGl Va por buen camino
será que el locaseinsensitive no es compatible con combobox?

porque tengo un ejemplo de un profesor de programacion y el usa ese locaseinsensitive pero con un dbgrid
Responder Con Cita
  #7  
Antiguo 11-09-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 24
Caro Va por buen camino
Hola de nuevo, lo que le estas pasando de tu comboBox es una cadena, no influye en las opciones, el tercer parametro del Locate es un conjunto que tiene las opciones:

loCaseInsensitive -> te hace una busqueda exacta, sin tomar en cuenta si es mayusculas o minusculas, osea si lo que le pasas en tu combo es "MaRiA" en tu tabla tienes MARIA igual te lo encontrara
loPartialKey -> te hace una busqueda aproximada, si ponemos MA, nos va encontrar el primer registro que comience con MA y supongo que es lo que esta pasando en tu caso, por eso te decía que hagas una busqueda exacta y con el and o de la otra forma debería funcionarte, pero si dices que no te corre, supongo que no te encuentra nada, entonces seguramente lo que tienes en tu comboBox no es igual a lo que tienes en tu tabla, si te sale algún error al ejecutar tu programa, puedes copiarlo y ponerlo aquí.

Si utilizas el Locate, haslo de la segunda forma que te dije, ya que también te hace el and entre los campos que pongas, ve tu si necesitas que sea IoCaseInsensitive o IoPartialKey.

Ahora también puedes hacerlo con consultas.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
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
tablas y combobox veloki Conexión con bases de datos 2 17-04-2007 12:51:54
Tablas tipo combobox leodelca23 Tablas planas 7 27-09-2006 19:21:06
colocar tablas bd en un combobox vivamotos C++ Builder 3 07-09-2006 14:35:17
Relaciones entre tablas mediante combobox efs Firebird e Interbase 2 17-06-2005 15:03:58
combobox y tablas galmacland Conexión con bases de datos 3 07-04-2005 18:19:57


La franja horaria es GMT +2. Ahora son las 18:51:26.


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