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 21-09-2007
Avatar de novato03
novato03 novato03 is offline
Miembro
 
Registrado: ago 2007
Posts: 45
Poder: 0
novato03 Va por buen camino
Unhappy Filtros con maskedit

Hola amigos del clubdelphi, mi pregunta es, cómo le hago para filtrar un registro de teléfono en este formato (809)999-9999?, ya que cuando lo intento en ese formato da error. Utilizo delphi-7 y access.

Si alguien me puede dar una ayuda, se lo agradecería, gracias anticipadas...
Responder Con Cita
  #2  
Antiguo 21-09-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Hola, podrias postear algo codigo? para asi poderte ayudar.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #3  
Antiguo 23-09-2007
Avatar de novato03
novato03 novato03 is offline
Miembro
 
Registrado: ago 2007
Posts: 45
Poder: 0
novato03 Va por buen camino
Cool Asunto

Este es el código que utilizo...

Código Delphi [-]
procedure TFrmContactos.MaskEdit1Change(Sender: TObject);
var
   Filtro : String;
begin

   If (MaskEdit1.Text <> '') then
   begin
      Dmodulo.tblContactos.Filtered := False;
      If ComboBox1.Text = 'Teléfono' then Filtro := 'telefono Like '+MaskEdit1.Text
         else If ComboBox1.Text = 'Celular' then Filtro := 'celular Like '''+ MaskEdit1.Text + '*''';
      Dmodulo.tblContactos.Filter := Filtro;
      Dmodulo.tblContactos.Filtered := True
   end
   else Dmodulo.tblContactos.Filtered := False;

end;

Cuando utilizo un Edit me presente al siguiente error al empezar a digitar el número en este formato (809)999-9999.


Cita:
Project Sisconem.exe raised exception class EOleException with message 'No se encontró el elemento en la colección que corresponde con el nombre o el ordinal pedido'. Process stopped. Use or Run to continue.
y cuando utilizo un MaskEdit presenta el siguiente error...

Cita:
Project Sisconem.exe raised exception class EOleException with message 'Argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros'. Process stopped. Use or Run to continue.

Es que acaso no es posible filtrar con formato como este (809)999-9999?
Responder Con Cita
  #4  
Antiguo 23-09-2007
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
Error de Nombre de Campo

No vi mucho el codigo, pero el 1º error que te presenta es porque no existe el nombre del campo por el cual estas filtrando.
Verificá bien en tu tabla si los campos telefono y celular existen realmente, quizas en plural, acentuados o algo por el estilo.
El segundo es porque tenes un lio con los apóstrofes '''.

En lugar de traer una tabla con todos los contactos y despues filtrar, te recomiendo uses un query y lo cargas cuando selecciones en el combo.

Si bien el like en Access funciona con asterisco, cambialo por % que de esta forma te va a funcionar con cualquier BD.

Por qué no usas un poco de lógica ?
al cargar el combo lo cargas asi: TELEFONO y CELULAR (sacando el acento de tel.)
Entonces usas
Filtro := ComboBox1.Text + 'LIKE ' + QuotedStr( MaskEdit1.Text ) + '%';

Así te queda mas legible.
Saludos y espero haberte ayudado

Última edición por waly2k1 fecha: 23-09-2007 a las 05:42:08.
Responder Con Cita
  #5  
Antiguo 23-09-2007
Avatar de novato03
novato03 novato03 is offline
Miembro
 
Registrado: ago 2007
Posts: 45
Poder: 0
novato03 Va por buen camino
Red face Asunto

Gracias por la ayuda, pero me sigue presentando el mismo error, en todo caso el código que escribi arriba me finciona perfectamente con Código con su respectivo acento en el combobox, tambien funciona con empresa, contacto, etc, el problema ocurre al implemntar la busqueda por teléfono en este formato, sin estos simbolos ()- me funciona pero al incluirlos bam error, ya sea con maskedit o edit.
Responder Con Cita
  #6  
Antiguo 23-09-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Hola, Creo que te faltan comillas aqui:

Código Delphi [-]
If ComboBox1.Text = 'Teléfono' then Filtro := 'telefono Like '+MaskEdit1.Text+ '*'''

intentalo, luego nos comentas.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
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
MaskEdit NuncaMas Varios 11 07-01-2010 13:11:08
Filtros sobre Filtros en Paradox Fabricio Tablas planas 9 03-04-2007 18:40:36
Problema con maskedit Chompiras Varios 3 07-02-2006 01:25:30
MaskEdit!! JCarlos OOP 3 19-01-2005 20:45:32
MaskEdit scooterjgm OOP 5 20-09-2004 07:13:12


La franja horaria es GMT +2. Ahora son las 23:40:34.


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