amadeus1986 Posted February 2, 2012 Report Share Posted February 2, 2012 Estimados tengo un problema quisiera llenar un combobox con una consulta anidada, este es el código que tengo pero me lanza error, agradecería su ayuda Private Sub LLenarBodega() Dim da As New OleDbDataAdapter("select b.nombre as Bodega from Articulos a, Bodega b, ArtBo ab where a.Id_Art = ab.Id_Art and b.Id_Bod = ab.Id_Bod ", Cn) Dim dt As DataTable = New DataTable("Bodega") da.Fill(dt) With ComboBox1 .DataSource = dt .DisplayMember = "Nombre" .ValueMember = "Id_Bod" End With End Sub Link to comment Share on other sites More sharing options...
Variator Posted February 3, 2012 Report Share Posted February 3, 2012 (edited) holas, pucha yo no uso oldb o como se llame xD uso el sqlclient, con sus sqlcomand y demás, pero te dejo mi código por si es que sirve... la función que carga el combobox es la siguiente: Public Shared Sub cargaraUsuarios(ByVal cboUsuario As ComboBox) Try conexion.conectar() 'abro conexion' Dim sql As String = "Select distinct Nombre from Usuario order by nombre asc" 'consulta' Dim comando As SqlCommand comando = New SqlCommand(sql, conexion.conexion) 'juntas el string consulta con la conexion' Dim registros As SqlDataReader registros = comando.ExecuteReader 'execute reader ejecuta la consulta y obtiene la informacion de las tablas' cboUsuario.Items.Clear() ' limpiar nuestra variable combobox' While registros.Read 'preguntamos si hay info para leer' cboUsuario.Items.Add(registros.GetString(0)) 'guardar la info del executeReader en el combobox' End While registros.Close() 'cerramos lectura' conexion.Desconectar() 'cerramos conexion' Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub y la llamo de este modo nombredelaClase.cargaraUsuarios(nombreComboBox) si vez lo que envió es el combobox, la funcion la recibe por valor y sobrescribe sobre ella... por lo de las consultas anidadas te doy un ejemplo. tenemos 2 tablas, una llamada usuario con datos (id [pk], nombre, apellido) la otra se llama registro con datos (id[pk], tipo_datos, fecha, informacion, id_usuario[fk]) si ves registro esta unida a usuario por la foreign key id (usuario [id] -----[id_usuario] registro) entonces queremos mostrar toda la informacion de los registros que ha ingresado x usuario, la consulta seria la siguiente: SELECT r.tipo_dato, r.fecha, r.informacion, u.nombre, u.apellido FROM usuario u, registro r WHERE u.id = r.id_usuario and u.id = 1 si ves la consulta, le asignamos una variable de referencia a la tabla en el from (usuario u) con esto podemos acceder facilmente a los datos de las tablas, para mostrar siempre tienes que anteponer esta referencia (u.nombre, r.informacion, etc) el dato esta para consultas anidadas es que siempre tienes que igualar la PK con la FK de las tablas, como en la consulta igualamos (u.id = r.id_usuario) igualamos la PK id de usuario con la FK de registro y despues de igualarlas empiezas filtrar por lo que buscas. bueno espero que te sirva.. cualquier cosa preguntas nomas Edited February 3, 2012 by Variator Link to comment Share on other sites More sharing options...
amadeus1986 Posted February 3, 2012 Author Report Share Posted February 3, 2012 Gracias por la ayuda, me ayudo enfocarme en el problema y ya lo solucione Link to comment Share on other sites More sharing options...
AshWilliams Posted February 3, 2012 Report Share Posted February 3, 2012 Solucionado.....se cierra. Saludos :krider: Link to comment Share on other sites More sharing options...
Recommended Posts