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")
Private oDataAdapter As OleDbDataAdapter
Private oCommandBuilder As OleDbCommandBuilder
Private oDataSet As DataSet
Private SQL As String
Private oDataAdapter As OleDbDataAdapter
Private oCommandBuilder As OleDbCommandBuilder
Private oDataSet As DataSet
Private SQL As String
Código:
Private Sub ConsultaBasePrestamos()
Me.SQL = "select * from Libros, Prestamos"
Me.oDataAdapter = New OleDbDataAdapter(Me.SQL, Me.oConexion)
Me.oCommandBuilder = New OleDbCommandBuilder(Me.oDataAdapter)
Me.oDataSet = New DataSet
Me.oConexion.Open()
Me.oDataAdapter.Fill(Me.oDataSet, "Prestamos")
Me.oDataAdapter.Fill(Me.oDataSet, "Libros")
Me.oConexion.Close()
Dim oDataRow0 As DataRow ' Variable para trabajar con las filas de Prestamos
Dim oDataRow1 As DataRow 'Variable apra trabajar con las filas de Libros
Dim oDataTable As DataTable ? 'Tabla para almacenar la consulta
' 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
End Sub
Me.SQL = "select * from Libros, Prestamos"
Me.oDataAdapter = New OleDbDataAdapter(Me.SQL, Me.oConexion)
Me.oCommandBuilder = New OleDbCommandBuilder(Me.oDataAdapter)
Me.oDataSet = New DataSet
Me.oConexion.Open()
Me.oDataAdapter.Fill(Me.oDataSet, "Prestamos")
Me.oDataAdapter.Fill(Me.oDataSet, "Libros")
Me.oConexion.Close()
Dim oDataRow0 As DataRow ' Variable para trabajar con las filas de Prestamos
Dim oDataRow1 As DataRow 'Variable apra trabajar con las filas de Libros
Dim oDataTable As DataTable ? 'Tabla para almacenar la consulta
' 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
End Sub
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