Since Address in Compound field, you can simply fetch each Address attributes from Account object from the SOQL query and update invoice records like this: trigger udtInvAddress on Account (After Update) { List<Order2__c> invoices; if(Trigger.isAfter && Trigger.isUpdate){ invoices = [SELECT Id, Account__r.BillingStreet, Account__r.BillingCity, Billing_City__c, Billing_State__c, Billing_Street__c, Billing_zip__c, Billing_Country__c FROM Order2__c WHERE Account_Name__c =:Trigger.newMap.keySet()]; for(Order2__c invoice: invoices) { System.debug(invoice.ID); //update all of the fields with the updated information only if the new information is filled in. if(invoice.Account__r.BillingStreet <> null){ invoice.Billing_Street__c = invoice.Account__r.BillingStreet; } //update other fields } update invoices; }