5 answers
if you are using custom controller you can save the inital lookup value to a variable on page load and compare it to with the record value on save for (your_Object__c urobject :Trigger.new) { if(Trigger.oldMap.get(urobject.Id).Lookupvalue__c != urobject.Lookupvalue__c) { urobject.OldLookupvalue__c = Trigger.oldMap.get(urobject.Id).Lookupvalue__c } }replace your_object__c, Lookupvalue__c , OldLookupvalue__c with respecitve api Names you can enable the history tracking for that field and use field history records to determine the old value or you can maintain a another lookup field and write the old value to that field on lookup field value change. you can use Trigger.OldMap to find the old value in a trigger