Imports System.Data.OleDb

Class MainWindow
  Private ConexionConBD As OleDbConnection = Nothing
  Private OrdenSql As OleDbCommand
  Private Lector As OleDbDataReader

  Private Sub Window_Loaded(sender As System.Object, e As System.Windows.RoutedEventArgs)
    ' Crear la conexión
    Dim strConexion As String = "Provider=Microsoft.ACE.OLEDB.12.0;" &
        "Data Source=C:./../../bd_telefonos.accdb;"
    ConexionConBD = New OleDbConnection(strConexion)
  End Sub

  Private Sub btMostrarDatos_Click(sender As System.Object, e As System.Windows.RoutedEventArgs)
    Using ConexionConBD
      ' Crear una consulta
      Dim Consulta As String = "SELECT nombre, telefono FROM telefonos"
      OrdenSql = New OleDbCommand(Consulta, ConexionConBD)

      ' Abrir la conexión con la base de datos
      ConexionConBD.Open()
      ' ExecuteReader hace la consulta y devuelve un SqlDataReader
      Lector = OrdenSql.ExecuteReader()
      ' Llamar siempre a Read antes de acceder a los datos
      While Lector.Read()
        ' siguiente registro
        lsTfnos.Items.Add(Lector("nombre") + " " + Lector("telefono"))
      End While
      ' Llamar siempre a Close una vez finalizada la lectura
      Lector.Close()
    End Using
    btMostrarDatos.IsEnabled = False
  End Sub
End Class
