Without knowing the exact error message, it's difficult to say, but the first thing to do is to stop concatenating strings to form an SQL command. It's dangerous, because it leaves you wide open to SQL Injection attacks which can accidentally or deliberately damage or destroy your database. You should always use parameterized queries:
OleDbCommand cmd = new OleDbCommand("SELECT [sub1], [sub2], [sub3], [sub4], [sub5] FROM Marks WHERE [ID] = @ID", connection);
cmd.Parameters.AddWithValue("@ID", textBox1.Text);
dr = cmd.ExecuteReader();
There is a very good chance that that will cure the problem you are having at the moment as well - but if it doesn't, we need to know the exact error message and which line it is occurring on.