Título: Consultar 2 tablas en 1 DataSet [SOLUCIONADO] Publicado por: novalida en 25 Marzo 2010, 21:36 pm Hola!!!
Llevo un par de días dando vueltas a este problema y no doy con la solución. A ver si alguien me puede orientar un poquito :) Desde un formulario quiero realizar una consulta de los libros prestados de una biblioteca. Las tablas Libros y Prestamos están en un archivo Access y sus columnas son: Libros Id_libro / Título / Autor Prestamos Nif_socio (de la tabla Socios) / Id_libro Parte de mi código para la definición de conexión y consulta: Código: Private oConexion As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data source=C:\Biblioteca.mdb") Código: Private Sub ConsultaBasePrestamos() Al ejecutar me da el siguiente error: "La columna 'Id_libro' no pertenece a la tabla Prestamos." La columna existe en la tabla, pero no sé por qué me da este error. Alguien me puede ayudar? Gracias :) Título: Re: Consultar 2 tablas en 1 DataSet Publicado por: CeLaYa en 26 Marzo 2010, 18:12 pm que tal buenos días
tu problema esta en la consulta sql "select * from Libros, Prestamos" lo que pasa es que debes poner que campos tomara de cada tabla, ponla así: SELECT L.Id_libro, L.Título, L.Autor, P.Nif_socio FROM Libros L, Prestamos P WHERE L.id_libro = P.id_Libro con esto tendras una lista de los libros prestados y ya no es necesario los for anidados -------------------------------------------------------------------- ' Procedimiento para obtener los libros prestados For i As Integer = 0 To Me.oDataSet.Tables(0).Rows.Count - 1 oDataRow0 = Me.oDataSet.Tables(0).Rows(i) For j As Integer = 0 To Me.oDataSet.Tables(1).Rows.Count - 1 oDataRow1 = Me.oDataSet.Tables(1).Rows(j) If oDataRow0("Id_libro") = oDataRow1("Id_libro") Then oDataTable = (oDataRow1.Table) End If Next Next ------------------------------------------------------------------------------------------- Título: Re: Consultar 2 tablas en 1 DataSet Publicado por: novalida en 28 Marzo 2010, 13:12 pm Hola!!!
Gracias por tu respuesta. Al final el código quedó de esta manera y funciona como yo quería :) Código: Me.oDataAdapter = New OleDbDataAdapter("select Libros.Id_libro, Titulo, Autor from libros, prestamos where Libros.Id_libro = Prestamos.Id_libro", Me.oConexion) Muchas gracias |