You really need to use a combination of AMPScript to contextually show content based on the context of where the message is being viewed - in someones inbox, from the view as web page link etc. Depending on this context, you either read the data used in the email from the sendable DE you're using for the send or you look up a point-in-time copy of the data used for the email at the time is was originally sent.
I'm assuming you have "Send Logging" enabled in your account and you have a send log Data Extension created that contains all the fields you would need to personalise your message with send-time content.
%%[
/* Check message context to determine if we want to retrieve send time values from Send Log or not */
IF _messagecontext == 'VAWP' OR _messagecontext == 'FTAF' OR _messagecontext == 'SOCIAL' THEN
/* Get data from the Send Log data extension. Key is JobID, ListID, BatchID, SubscriberID */
SET @sendLogRows = LookupRows("MySendLogDE","JobID",JobID,"ListID",ListID,"BatchID",_JobSubscriberBatchID,"SubscriberID",subscriberid)
IF ROWCOUNT(@sendLogRows) > 0 THEN
SET @sendLogRow = ROW(@sendLogRows,1)
SET @SomeField = FIELD(@sendLogRow,"SomeField")
SET @AnotherField = FIELD(@sendLogRow,"AnotherField")
ELSE
REDIRECT("http://some/fieldly/error/page")
ENDIF
ELSE
/* Get data from the current list or data extension being sent to */
/* Important that the name of variables matches fields in the Send Log DE for logging at time of send */
SET @SomeField = SomeField
SET @AnotherField = AnotherField
ENDIF
]%%
SomeField: %%=v(@SomeField)=%%<br />
AnotherField: %%=v(@AnotherField)=%%<br />
Given you only have one Send Log DE per Business Unit, I tend to use a slightly more complex piece of AMPScript than that above where I build an XML Document in a variable that contains the values of all the data I need to re-render the email in a View As Web Page link - typically I call the variable holding the XML Document "@Data" and have a text field in my send log data extension called "Data" that has no maximum length to accept this BLOB content at time of send. This allows you to use the Send Log Data Extension for all manner of emails that would require similar send-time rendering for VAWP.