SELECCIONAR DEL COMBOBOX EL CAMPO CLAVE INSERTADO DE UNA BASE DE DATOS


Objetivo: SELECCIONAR DEL COMBOBOX EL CAMPO CLAVE INSERTADO DE UNA BASE DE DATOS
HOLA, BUENAS NOCHES. SOY NUEVA PROGRAMANDO CON gambas, Y NECESITO QUE POR FAVOR ALGUIEN ME AYUDE CON LO SIGUIENTE:
REALICE UN SELECT CON LA FINALIDAD DE TRAER LOS DATOS DE DOS CAMPOS DE UNA BASE DE DATOS, EL CAMPO CLAVE Y LA DESCRIPCION; LA INFORMACION DE ESE SELECT LA INSERTE EN UN COMBOBOX DE LA SIGUIENTE MANERA:

consulta = modulofunciones.conexion.Exec("select tipos_persona.tipo_pers,tipos_persona.descrip from tipos_persona where tipos_persona.descrip='V-' OR tipos_persona.descrip='E-'")
IF consulta.Count > 0
FOR i = 0 TO consulta.Count - 1
ME.ComboBox1.Add(consulta["tipos_persona.descrip"], consulta["tipos_persona.tipo_pers"])
consulta.MoveNext
NEXT

EL PRIMER CAMPO INSERTADO ES LA DESCRIPCION DEL TIPO DE PERSONA Y EL SEGUNDO ES LA CLAVE DEL TIPO DE PERSONA QUE ME TRAJE DE LA BD.

EL PROBLEMA QUE TENGO ES QUE AL SELECCIONAR UN ELEMENTO DEL COMBOBOX QUIERO TOMAR LA CLAVE QUE INSERTE DE LA BD OSEA (consulta["tipos_persona.tipo_pers"]). NO CONSIGO LA PROPIEDAD QUE ME PERMITA LOGRAR ESTO.

INTENTE CON EL CAMPO INDEX, SEGUN LA DECRIPCION QUE DA gambas ES UNO DE LOS PARAMETROS DEL COMBO EN EL QUE YO INSERTE LA CLAVE DE LA BD.PERO ESA PROPIEDAD ME DA EL INDEX DEL COMBO COMO TAL MAS NO LA CLAVE QUE YO INSERTE.

LES AGRADECERIA SI ALGUIEN ME PUEDE AYUDAR CON ELLO. GRACIAS

Perfil MP  
Objetivo: Re: SELECCIONAR DEL COMBOBOX EL CAMPO CLAVE INSERTADO DE UNA BASE DE DATOS
Utiliza la propiedad Tag del comboBox. Es una propiedad que no hace nada, pero que te permite almacenar información dentro del propio objeto.
Te pongo un ejemplo:

DIM res AS Result
dim arList as String[] 'utilizo un array local para luego meterlo en el .list del combo
micombo.Tag = NEW Variant[] 'aquí inicializas el valor de Tag

consulta = miconexion.Exec("select tipo_pers, descrip from tipos_persona where descrip='V-' OR descrip='E-' order by descrip") 'Importante que la consulta ya devuelva los valores ordenados
WHILE consulta.available
arList.Add(consulta!descrip) 'aquí almacenas el contenido de la lista en el combo
micombo.Tag.Add(consulta!tipo_pers) 'aquí almacenas las claves únicas en el tag
res.MoveNext
WEND
micombo.list=arList 'añades al combo la lista para mostrar


Luego para localizar el tipo_pers que seleccione el usuario:

mi_tipoPer=micombo.tag[micombo.index]


Suerte

última edición por shordi el Lunes, 14 Febrero 2011, 07:06; editado 1 vez
Perfil MP  
Objetivo: Re: SELECCIONAR DEL COMBOBOX EL CAMPO CLAVE INSERTADO DE UNA BASE DE DATOS
Está bien shordi pero ¿para que necesitas ArList?

Con tu propio código
DIM res AS Result
micombo.Tag = NEW Variant[] 'aquí inicializas el valor de Tag

consulta = miconexion.Exec("select tipo_pers, descrip from tipos_persona where descrip='V-' OR descrip='E-' order by descrip") 'Importante que la consulta ya devuelva los valores ordenados
WHILE consulta.available
micombo.Add(consulta!descrip) 'aquí almacenas el contenido de la lista en el combo
micombo.Tag.Add(consulta!tipo_pers) 'aquí almacenas las claves únicas en el tag
res.MoveNext
WEND


Yo hago eso mismo pero no había caído en la cuenta de que los códigos podían ir en el TAG. A partir de ahora lo haré así porque es mas limpio.


Perfil MP  
Objetivo: Re: SELECCIONAR DEL COMBOBOX EL CAMPO CLAVE INSERTADO DE UNA BASE DE DATOS
PERFECTO, UN MILLON DE GRACIAS PORQUE ESTO PARA UN TRABAJO DE LA UNIVERSIDAD Y ES PARA ESTE FIN DE SEMANA Y NECESITAVA SABER RAPIDAMENTE COMO HACERLO POR EL POCO TIEMPO QUE TENEMOS PARA ENTREGAR. LES CUENTO QUE HICE ESTO USANDO LA PROPIEDAD tag QUE USTEDES ME FACILITARON Y TAMBIEN FUNCIONA.

consulta = modulofunciones.conexion.Exec("select tipos_persona.tipo_pers,tipos_persona.descrip from tipos_persona where tipos_persona.descrip='V-' OR tipos_persona.descrip='E-' order by tipos_persona.descrip")
IF consulta.Count > 0
FOR i = 0 TO consulta.Count - 1
ME.ComboBox1.Add(consulta["tipos_persona.descrip"])
ME.ComboBox1.Tag = consulta["tipos_persona.tipo_pers"]
consulta.MoveNext
NEXT


DE TODAS FORMAS VOY A PROBAR BIEN A VER SI NO ARROJA NINGUN TIPO DE ERROR, PORQUE SI ES ASI YA TENGO A LA MANO LA OPCION QUE USTEDES ME FACILTARON. GRACIAS.

Perfil MP  
Objetivo: Re: SELECCIONAR DEL COMBOBOX EL CAMPO CLAVE INSERTADO DE UNA BASE DE DATOS
Hola Victoria, bienvenida a los foros de Gambas-es

En adelante, si es posible, no escribas todo el texto en mayúsculas. Aparte de estar en las Normas del Foro (7º párrafo), no está bien visto en general en Internet ni en ningún otro foro ni comunidad.

Gracias y que disfrutes del foro.

Perfil MP  
Objetivo: Re: SELECCIONAR DEL COMBOBOX EL CAMPO CLAVE INSERTADO DE UNA BASE DE DATOS
bien, la verdad ni me dio chance de leer las normas, es que ando de apuros ingresando datos de prueba en una base de datos en mayuscula y se me olvido quitarla pero gracias por la observacion, la tomare en cuenta y voy a leer las normas.

Perfil MP  
Objetivo: Re: SELECCIONAR DEL COMBOBOX EL CAMPO CLAVE INSERTADO DE UNA BASE DE DATOS
Soplo, si actualizas directamente el .list del combo, no se refresca y no se ve la lista. A veces me he encontrado que ni siquiera con una orden refresh lo hacía (no recuerdo en qué versión de gambas). También recuerdo que si metías un WAIT 0.1 después de actualizar el list se veía... pero utilizando un Array local y metiéndolo de golpe en el list sí que se ve de una y sin problemas... Al final son "vicios" o soluciones, no sé, que uno adopta y funcionan...

Suerte.

Edito: No había visto con detalle tu código. Yo nunca había intentado eso de mycombo.Add("valor"). Lo que ho había intentado es micombo.list.Add("valor")... Supongo que el evento Add del combo incluye el refresco... Simplificaré así, que queda mejor.

última edición por shordi el Martes, 15 Febrero 2011, 10:15; editado 1 vez
Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.4384s (PHP: -78% SQL: 178%)
Consultas SQL: 47 - Debug off - GZIP Activado