I am traveling to France from England for a duration of 5 days, however, three weeks later I travel to Budapest and other countries as part of a tour and require a valid Schengen visa as I hold a South African passport. What should I do? I have not yet used the Schengen visa valid for only 15 days, therefore should I cancel it and reapply? I cannot wait until the visa expires as it expires on the day I intend on traveling to Budapest.
You cannot cancel a visa, only the issuing authority can cancel it. You can revoke your application, but it seems like the visa has already been issued.
Please do not do something like tear the visa page or otherwise vandalize it, this will cause you more problems than you can imagine.
You can apply for another visa while one is already valid in your passport though. If you explain to the officer why you are applying again, perhaps they can expedite your application (by EU law they are supposed to respond within 15 calendar days).