Visual Basic - relacionar dos tablas y mostrar en un grid

Life is soft - evento anual de software empresarial
 
Vista:

relacionar dos tablas y mostrar en un grid

Publicado por Carmen  (2 intervenciones) el 28/10/2008 19:17:33
hola soy nueva queria hacer una consulta sobre dataenvironment y dos tablas relacionadas.. empleados que consta de (id_empleado, nombre, apellido, sueldo) y la otra hijos (id_hijo, nombre, apellido, id_empleado), bueno las dos tablas estan relacionadas por el campo id_empleado, necesito que al seleccionar un empleado de un combo box me muestre en un grid la informacion de los hijos

yo hice un dataenvironment y a continuacion coloco el codigo para q vean y por favor me puedan ayudar

al parecer no esta ejecutando el sql, si en esa opcion DeHijos.rsCmHijos.Open sql le quito el sql muestra q todos los empleados tienen hijos y si le coloco de vuelta ningun empleado tiene hijos.. help!!!

Private Sub CmdMostrarHijos_Click()
configurar_grilla
Dim sql As String

If CboEmpleados.ListIndex <> -1 Then
sql = "select * from hijos where id_empleado=" & CboEmpleados.ItemData(CboEmpleados.ListIndex)
DeHijos.rsCmHijos.Open sql

If DeHijos.rsCmHijos.EOF Then
MsgBox "El empleado no tiene hijos"
DeHijos.rsCmHijos.Close
Else
DeHijos.rsCmHijos.MoveFirst
While Not DeHijos.rsCmHijos.EOF
Grid1.AddItem DeHijos.rsCmHijos.Fields("apellido") & vbTab & DeHijos.rsCmHijos.Fields("nombre") & vbTab & DeHijos.rsCmHijos.Fields("edad")
DeHijos.rsCmHijos.MoveNext
Wend
DeHijos.rsCmHijos.Close

End If
End If
configurar_grilla
End Sub

desde ya miles de gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:relacionar dos tablas y mostrar en un grid

Publicado por igor (633 intervenciones) el 28/10/2008 21:28:36
Entiendo que el código no es propio, porque parece que no entiendes muy bien que es lo que hace.

En realidad este SQL es correcto, aunque no está relacionando tablas y seguro que el problema está en el valor proporcionado por CboEmpleados.ItemData(CboEmpleados.ListIndex):

SELECT * FROM hijos WHERE id_empleado=" & CboEmpleados.ItemData(CboEmpleados.ListIndex)

Y es que deberíamos tener un sql="SELECT * FROM hijos WHERE id_empleado=1" por ejemplo. Revisa si el valor es correcto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:relacionar dos tablas y mostrar en un grid

Publicado por carmen (2 intervenciones) el 28/10/2008 23:34:19
hola igor desde ya muchas gracias por haberme contestado.. probe como me dijiste, pero no me arrojo ningun resultado, y si me exprese mal en el titulo de la consulta.. en realidad lo q quiero es q el sql me muestre en un grid la cantidad de hijos q tiene un empleado x (q lo selecciono a traves del cboempleados), pero como te digo en bd tengo 4 empleados de los cuales solo 1 tienen hijos , al colocar DeHijos.rsCmHijos.Open sql me dice q ninguno tiene hijos, no se si estoy haciendo bien en esa parte me pierdo un poco.. como te dije soy nueva y hay algunas cosas q no me quedan muy claras todavia.. me gustaria q al seleccionar el empleado del combobox pueda ir a buscar los hijos q tiene y me muestra en la grilla.. como dije anteriormente la tabla empleado consta de (id_ empleado, nombre, apellido sueldo) y la tabla hijos de (id_hijos, nombre apellido y edad) las mismas estan relacionadas por el campo Id_empleado

Gracias de vuelta :) y saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:relacionar dos tablas y mostrar en un grid

Publicado por igor (633 intervenciones) el 29/10/2008 19:39:01
El problema sigue siendo el mismo, estás metiendo el NOMBRE del empleado en vez del ID_EMPLEADO que es el código que existe en ambas tablas. Este valor lo proporciona el combobox. Si no entiendes alguna de estas cosas es mejor que le coloques el trabajo a alguno de tus empleados.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar