Autor
|
Tema: Como Usar los Combos? (Leído 2,621 veces)
|
TheGhost(Z)
Desconectado
Mensajes: 230
|
Hola, Mas que ayuda pido una sugerancia.
Supongamos que tengo dos tablas: Paises y Ciudades
Tabla Paises
ID_PAIS PAIS PE PERU ES ESPAÑA IT ITALIA
Tabla Ciudades
ID_PAIS ID_CIUDAD CIUDAD PE LIM LIMA ES MAD MADRID ES BCN BARCELONA IT ROM ROM
Bien, en el combo1 cargo el listado paises y en el combo2 cargo el listado ciudades, de modo que al seleccionar un pais, autonmaticamente se carguen en el combo2 las ciudades correspondientes a este.
Mi pregunta es como o donde cargo el Id_Pais de la tabla paises si el combo1 me da solo para cargar un campo. pensaba cargarlo asi mas o menos..
PERU (PE) ESPAÑA (ES) ITALIA (IT)
O
PE - PERU ES - ESPAÑA IT - ITALIA
O
(PE) PERU (ES) ESPAÑA (IT) ITALIA
O
Tambien cargaria en un combo1 solo las ID_PAIS y en otro combo el PAIS de modo que al seleccionar un pais tambien se seleccione el Id_Pais que estaria invisible, realizar la busqueda a partir de este dato.
¿Cual de las tres es la mejor manera de trabajar o con que modo generalmente se trabaja?
Mi otra pregunta es, una vez guardado el ID_Pais en otra tabla y si deseo modificar esta tabla tendria que cargar en el formulario los paises y ciudades, pero como aria para que el combo muestre automaticamente el pais y ciudad que he guardado.
En palabras podriamos decirle que se cargue todos los paises y ciudades posicionate en el pais x y ciudad x.
Saludos,
|
|
|
En línea
|
|
|
|
juancho77
Desconectado
Mensajes: 455
rie con demencia
|
Yo pondria un control data con la columna paises, y que al irse deslizando por los paises del data me muestre en un listbox las ciudades de ese pais. Si necesitas mas ayuda, te paso algun code
|
|
|
En línea
|
|
|
|
TheGhost(Z)
Desconectado
Mensajes: 230
|
No la idea es trabajar con combos. el problema esta como cargar las ID de los paises, para cuando seleccione un pais me filtre las ciudades cuya ID_pais sea la que seleccione..
|
|
|
En línea
|
|
|
|
Chefito
|
Nas.....bueno, supongo que cargar todos los registros en el comba y tal sabes. Yo lo que haría (y hacía ) es hacerlo de alguna de las formas que digiste, por ejemplo la 1º no está mal: PERU (PE) ESPAÑA (ES) ITALIA (IT) Y cogería el ID_pais del seleccionado, por ejemplo de la siguiente forma: cod_pais=mid(combo1.text,len(combo1.text-3),2) y lo utilizaría en una consulta para encontrar las ciudades del pais. Sería crear un recordset y utilizar la consulta select * from tu_tabla where ID_pais=cod_pais. Inmediatamente le sumaría el resultado de esta consulta al otro combo (ciudades) y ya está resuelto. Sería algo así: Do until turecordset.eof combo2.additem turecordset("campo_ciudades") turecordset.movenext loop Esto es una idea general. Se puede hacer de multitud de formas. He supuesto que sabes crear recordset y demás (no se si enlazas a la bbdd por código, por control(ejem. adodc),etc). Si tienes alguna duda dilo y si pegas el código mejor . Ahhh, por cierto, todo esto se debe meter en los eventos que creas necesarios del combo1 (Ejemplo: combo1_click). Respecto a la 2º pregunta, cargar el nuevo pais en el combo1 si modificas la tabla de los paises, se puede hacer de varias formas según la modifiques exteriormente a tu programa o desde tu programa. Si es desde tu programa te recomiendo que al mismo tiempo que modificas la tabla añadiendo (o eliminando) un pais, lo hagas también directamente en el combo....así ahorraras tiempo teniendo que realizar todo el proceso de nuevo de carga del combo. Y si lo haces externamente, pues tendrás que cargar otra vez los combos con los datos de la tabla. En el combo2 de ciudades no hace falta introducir nada, ya que se actualiza siempre que le das en el combo1 a algún pais. Espero que hayas cogido la idea y que te haya ayudado en algo. Ya sabes, si tienes alguna duda postea, que alguien te ayudará. Saludos.
|
|
« Última modificación: 5 Marzo 2008, 14:14 pm por Chefito »
|
En línea
|
Moderador del foro oficial de AutoIt en español: www.AutoIt.es.Todos tenemos inteligencia, lo malo es que algunos no nos acordamos donde la dejamos guardada
|
|
|
TheGhost(Z)
Desconectado
Mensajes: 230
|
Hola, Chefito. Es me has entendido, perfectamente en el caso uno..
Lo hago todo por codigo. La nota de poner:
PERU(PE) ESPAÑA(ES)
Actualmente lo tengo así, pero se ve feo eso de estar poniendo la id al ultiumo ¿no?.
Yo me preguntaba de que otra manera se aría. En realidad no se como trabajan o los haran los otros, porque siembre en un combo he visto solo: PERU, ESPAÑA y las ID´s no se como las esconden. Tambien he intentado poniendo las ID en otro combo en modo invisible. pero es engorroso todo eso.
Si hay alguna idea mejor, le agradecere, sino me quedare con esto nomas.
<------------------------------------->
Con respecto al segundo caso.. es el ejemplo de la sgte manera
PAIS DISPONIBLE PERU SI ESPAÑA SI ITALIA SI etc, etc
Supongamos que cargue esos tres paises en un combo. Selecciono ESPAÑA porque su estado es Disponible = SI.
Despues de un tiempo ESPAÑA y PERU su estado Disponible = NO Entonces si deseo modificar el campo PAIS de mi tabla clientes, tengo que abrir el formulario cargar nuevamente los paises en un combo. españa y peru ya no porque ya no estan disponibles. cargo solo los paises que estan disponibles, pero como le digo en la consula que que cargue el pais ESPAÑA, porque ese es el que he guardado y al ves se muestre por defecto al iniciarse al fomrulario.
|
|
|
En línea
|
|
|
|
Chefito
|
Bueno.....a mi tampoco me desagrada esa forma, pero vale, es cuestión de cada programador . Pues otra forma nada tediosa, y un poco pilla, sería coger las primeras 2 o 3 iniciales de los paises y compararlas con el campo ID_pais . Otra forma más profesional sería, como cada pais tiene solamente un ID único en la bbdd, pues con una consulta sql arrancada desde un recordset ("select * from tabla where pais=" & combo1.text, o con la funcion find del recordset...rst.find("pais=" & combo1.text). Esto te posiciona al registro que quieres, y puedes sacar la ID del pais encontrado. Sería Idbuscada=rst!ID_pais. Y ya teniendo el ID_pais, pues se lo pasas a la consulta del combo de las ciudades y solucionado. Espero que hayas cogido la idea. Con respecto al segundo caso, ya te lo dije, si no quieres problemas, vuelve a cargar el combo desde la bbdd. Por cierto, no hay que cerrar y abrir el formulario para cargar los datos de la bbdd, no es necesario. Saludos.
|
|
|
En línea
|
Moderador del foro oficial de AutoIt en español: www.AutoIt.es.Todos tenemos inteligencia, lo malo es que algunos no nos acordamos donde la dejamos guardada
|
|
|
TheGhost(Z)
Desconectado
Mensajes: 230
|
No es por decir man, pero si lo mas profesional es buscando el propio pais en la tabla. no me parece bien.. creo que las id es para ahorrar tiempo durante la busqueda y toda esa nota... creo que me quedare con PERU (PE), ESPAÑA (ES), aunque se vea feo, pero ni modo. saludos
|
|
|
En línea
|
|
|
|
|
|