There are a couple of ways you could deal with this that I can think of. One way would be to use the existing values from the recordset as the values to update to unless new ones are set.
Another way you could do this would be to have different updates, one that does all of these values, and another that just updates the basic values. You would then update the triggers so that one is executed if there are values available, otherwise the other update occurs.