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 11-02-2005
Phacko Phacko is offline
Miembro
 
Registrado: jul 2004
Posts: 157
Poder: 20
Phacko Va por buen camino
Rellenar un ComboBox en forma Dinamica desde una Tabla

Si alguien pudiera hecharme una mano con lo siguiente, se lo agradecería mucho.

Necesito mostrar el contenido del campo de una tabla en una lista para que se pueda seleccionar, escribir parte del texto que pudiera encontrarse en la tabla, o bien, si no se encuentra en la tabla poder agregar el dato a un nuevo registro.
en concreto, es para movimientos de ventas, registrar un movimiento para algun cliente existente en nuestra base de datos y si no existiera, agregarlo con su respectivo movimiento.

No se cual sea la mejor opción, un DBLookUpComboBox o un DBComboBox, ya he intentado realizarlo con los 2 pero no he atinado a cargar la lista en ninguno de los dos casos.

Gracias.

Última edición por Phacko fecha: 13-02-2005 a las 19:33:29. Razón: Hacer un poco mas clara la pregunta
Responder Con Cita
  #2  
Antiguo 13-02-2005
Phacko Phacko is offline
Miembro
 
Registrado: jul 2004
Posts: 157
Poder: 20
Phacko Va por buen camino
DBComboBox Listo......en parte

Ya he logrado cargar la lista del DBComboBox con el contenido de los registros del campo de una tabla, el inconveniente es que al abrir el formulario el DBComboBox muestra el contenido del ultimo registro del campo, estuve buscando en las propiedades y no encontre alguna que cancelara esto, ¿Alguien sabe como evitarlo?, les agradeceria mucho su ayuda.

Sera el DBComboBox la mejor opción??????

Gracias.
Responder Con Cita
  #3  
Antiguo 14-02-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Tu pregunta es la del millon. Todos andamos con ese mismo problema.

El DBLookupcombo, te muestra todos los registros que existen, pero no te deja escribir en la caja de texto, las letras que pulsas si las completa, pero no es nada intuitivo para un usuario final. Por otra parte no te deja añadir un dato que no existe.

Un DBCombobox, te deja escribir, y autocompletar lo que pongas, pero puedes modificar a voluntad un dato que ya existe, así que tienes que hacer 2 pasos:

1.- Al cargar el form, tienes que recorrer todos los registros para añadir el valor que desees a la lista desplegable.

2.- En el OnkeyPress y/o ONExit, tienes que controlar que el valor que haya puesto realmente existe, o ver si es uno nuevo para añadirlo a la lista.

Tambien existe una tercera solución que es la intermedia. Usas una tabla con 2 campos, Codigo y Valor, tal que quede así:
Código:
  codigo                     valor 
  -----------------------------
  cboFrmFacturas        opcion 1
  cboFrmFacturas        opcion 2
  cboFrmFacturas        opcion 3
  cboClientesPoblacion  Lepe
  cboClientesPoblacion  Alava
Esto significa que realmente en la base de datos puedes tener más poblaciones, pero en la lista desplegable, solo pones los mas relevantes. Simplemente al cargar la ventana correspondiente, cargas los valores segun el codigo.

Una Cuarta Opcion, es poner un simple TDBEdit y hacer una funcion como el Autocompleta de Excel, que segun escribes, va completando las opciones que ya existe en la hoja, pero te da opción para poner una nueva. Esta opción es la más facil de implentar, pero la mas costosa para el sistema, sobre todo cuando tienes muchos registros.

Saludos
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 23:47:48.


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