If don't really understand correctly what you are asking, but the problem with the code is that you cannot bind directly to a DataReader, you would need to create a DataTable with the reader and then bind the grid to the DataTable, something like this
Dim myreader As OleDb.OleDbDataReader = cmd1.ExecuteReader
If myreader.HasRows = True Then
MsgBox("bien")
While (myreader.HasRows)
Dim dt As DataTable = New DataTable()
dt.Load(myreader)
DataGridView1.DataSource = dt.DefaultView
End While
Else
MsgBox("nooooooooooooooon")
End If
Hope this helps.