Ваша проблема, вероятно, в том, что вы не закрываете / не удаляете OleDbDataReader.Вызов Response.Redirect
переносит вас на другую страницу, не закрывая открытое средство чтения данных.
Попробуйте изменить последний фрагмент кода следующим образом:
If DR.Read = True Then
S = DR.GetInt32(0)
DR.Close()
DR.Dispose()
Response.Redirect("Chapitre.aspx?id=" & S)
Else
// End of records (stop reading)
End If
Обновление: Очевидно, было бы полезно, если бы вы предоставили больше информации, например, может быть, именно какая строка кода в этом примере выдает исключение.