There are two paths involved here:
Dim con As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\Database1.accdb")
And
cryRpt8.Load("E:\Final Book purchasing System\Final Book purchasing System\CrystalReport63.rpt")
Most likely it's the second of these, but you should use the debugger to find out which, and then check the drive / path combo to make sure it all exists.
In addition, it's a poor idea to keep your DB in the root folder of any drive as it's likely that write access to the root will be further restricted in future OS releases for security reasons (it already requires admin permission for your boot drive, normally C:)
Generally speaking, you should keep data (including databases and reports) under the User account:
Where Should I Store My Data?[
^] suggests some better places.
And you should never hard code paths: always use a configuration file, so that the path can be changed (or set by your installation utility) without the need to recompile the whole app. Because I have many apps which use databases, I use this:
Instance Storage - A Simple Way to Share Configuration Data among Applications[
^] but it may be a little overkill for your needs.