Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

sql y vb6

Estas en el tema de sql y vb6 en el foro de Visual Basic clásico en Foros del Web. Hola, Tengo Una Pregunta Tengo 2 Tablas Relacionadas En Access Y En Vb Tengo 2 Datacombo Uno Enlazado A Un Adodc El Cual Esta Ligado ...
  #1 (permalink)  
Antiguo 05/05/2005, 11:48
 
Fecha de Ingreso: abril-2005
Mensajes: 65
Antigüedad: 19 años
Puntos: 0
sql y vb6

Hola, Tengo Una Pregunta

Tengo 2 Tablas Relacionadas En Access Y En Vb Tengo 2 Datacombo
Uno Enlazado A Un Adodc El Cual Esta Ligado A La Tabla Paises
Y Otro Adodc Enlazado A La Tabla Estados. Mi Pregunta Es La Siguiente : Al Momento De Seleccionar Un Pais Del Datacombo1 Quiero Que Me Muestre El Datacombo2 La Lista De Estados De Ese Pais.
He Puesto El Siguiente Codigo En El Evento Click Del Datacombo1

Datacombo2.recordsource= Sql="select * From Estados Where Pais= "&datacombo1.text

Pero Cuando Selecciono Un Pais Me Despliega El Datacombo2 Todos Los Estados De Todos Los Paises No Del Que He Seleccionado.

Alguna Idea O Solucion??

Gracias Por Todo De Antemano
  #2 (permalink)  
Antiguo 05/05/2005, 13:07
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Puedes explicarme detalladamente tus dos tablas, los campos y las claves primarias? Por favor
  #3 (permalink)  
Antiguo 05/05/2005, 15:15
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Cita:
Iniciado por Developer9
Puedes explicarme detalladamente tus dos tablas, los campos y las claves primarias? Por favor
Lo que ocurre es que intentamos programar cosas demasiado complicadas cuando no hemos ni entendido el concepto de lista, clase, vector, objeto de las que se basan la mayoría de las bases de datos.
  #4 (permalink)  
Antiguo 05/05/2005, 15:50
 
Fecha de Ingreso: abril-2005
Mensajes: 65
Antigüedad: 19 años
Puntos: 0
Sql Y Vb6

Claro !! A Ver Si Puedo Ser Claro

Base De Datos Paises_estados
Tabla= Paises
Campos= Nombre Clave Clave1
Registros Mexico 0 1
Usa 1 3
Espana 3 4

Tabla= Estados
Campos= Nombre Estado Clave Clave1 Clave2
Registros Mexico Toluca 0 0 1
Mexico Hidalgo 0 0 3
Mexico Pachuca 1 0 2
Mexico Colima 2 3 2
Usa Florida 3 2 1
Usa Nyc 4 1 2
Usa Los Angeles 3 4 1
Espana Madrid 2 1 0
Espana Cadiz 1 0 1
Espana Galicia 3 2 0

Estas Dos Tablas Estan Relacionadas Por El Campo Nombre Es Decir En La Tabla Paises Antes Del Campo Nombre Sale Un Signo De (+) Cuando Le Doy Click A Este Cuadrito Salen Todos Los Estados De Ese Pais(quiero Pensar Que Hice Bien La Relacion).


Ahora Tengo En Un Form El Datacombo1 Enlazado A La Tabla Paises
Y El Datacombo2 Enlazado A La Tabla Estados.
El Problema Es Que Codigo Usar Para Que
Cuando Selecciono Un Pais Del Datacombo1 El Datacombo2 Me Muestre Solo Los Estados De Ese Pais.


Gracias Por Tu Valiosa Ayuda
  #5 (permalink)  
Antiguo 06/05/2005, 13:28
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Bueno primeramente te aconsejo que esa no es la manera correcta de establecer relaciones en la base de datos.

La forma correcta de hacerlo es asi:

Tabla -----> Paises
Campos ---> codigo_pais Nombre Clave Clave1

Registros
01 Mexico 0 1
02 Usa 1 3
03 Espana 3 4

Tabla------> Estados
Campos----> codigo_pais Estado Clave Clave1 Clave2
Registros

01 Toluca 0 0 1
01 Hidalgo 0 0 3
02 Florida 3 2 1
03 Madrid 2 1 0


Relacionandolos por el codigo de pais, es decir que en la tabla Estados, las rows que tienen codigo 01 perteneceran a el pais que tiene el codigo 01, es decir Mexico... y asi sucesivamente.

Primeramente en el datacombo de paises ponle estilo dropdown list para que solamente puedas seleccionar sus items y no puedas escribir nada. Al momento de llenar el datacombo paises, ponle a cada item como indice el codigo de pais, de esa manera en el evento clic haces un select de la tabla Estado filtrando por el codigo de pais seleccionado.

Cualquier cosa avisas
  #6 (permalink)  
Antiguo 06/05/2005, 13:32
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Sonrisa

Bueno la clave primaria de la tabla paises es solo el codigo de pais, y la clave primaria de la tabla estado tiene que ser compuesta, tiene que ser el codigo del pais y el nombre del estado, aunque eso no es lo mas optimo pero se ajusta a lo que necesitas en este caso
  #7 (permalink)  
Antiguo 06/05/2005, 13:59
 
Fecha de Ingreso: abril-2005
Mensajes: 65
Antigüedad: 19 años
Puntos: 0
sql y vb6

Gracias Developer, pero las tanto las claves de los paises como de los estados no las pongo yo, son claves establecidas por el gobierno de mexico
entonces has de cuenta mexico tiene la clave 09 y todos los estados de mexico no empiezan con la clave 09 varia la clave de baja california es 116
la de morelos es 014 , es por eso que decidi no establecer la relacion con el numero de clave sino por pais ya que si son 20 estados tiene 20 veces repetido el nombre del pais.
Ahora la tabla de pais ya relacionada con la tabla estados tiene antes del campo pais un [+] y al darle click ahi me despliega todos los estados de ese pais (quiero pensar que hice bien la relacion)

No se si me explique bien,Te agradezco mucho tu paciencia y tu ayuda

Espero tus comentarios.
Gracias
  #8 (permalink)  
Antiguo 06/05/2005, 14:10
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
No me referia a tus campos clave, clave1 etc... me referia a la clave primaria de la tabla, te corregi en algo tu tabla agregandole el campo codigo_pais ya que esa deberia ser la clave primaria en la tabla pais y ese mismo campo tomarlo como foreign key en la tabla estado. Cualquier cosa avisas compañero
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:32.