I'm trying nothing more than to update a lookup field when I create a new record.  The field it should pull the value from is a lookup. 

I have this code: 

    List <Job__c> opListInsert = new List<Job__c>();
      List <Job__c> opListUpdate = new List<Job__c>();
       if(trigger.isInsert){
        for(Job__c op:trigger.New){
        if(op.Acct__c != Null){
            op.Account__c = op.Acct__c;
            opListInsert.add(op); }
         }
        }  
      else if(trigger.isUpdate){
        for(Job__c op:trigger.New){
         if(op.Acct__c != Null && op.Acct__c !=trigger.oldMap.get(op.id).Acct__c){
             op.Account__c = op.Acct__c;
              opListUpdate.add(op);
        }    
     }
   }


But it's throwing the following error: 

Error:Apex trigger UpdateAccounts caused an unexpected exception, contact your administrator: UpdateAccounts: execution of BeforeUpdate caused by: System.StringException: Invalid id: accountname : Trigger.UpdateAccounts: line 20, column 1

Anyone know how I can convert the account to string or vice versa? 

*  Update *

Thanks for the help, don't know why I figured it would add the string not the ID. 

Here is my updated trigger that works (might not be the cleanest option): 

    trigger UpdateAcct on Job__c (before insert, before update) {

    List<String> Accounts = new List<String>(); 
      for (Job__c obj: trigger.new){
         Accounts.add(obj.Acct__c);
      }
     list<Account> acctlist = [select Name from account where Name in :Accounts];
       if (acctlist.size() > 0 ){
         for (Integer i = 0; i < Trigger.new.size(); i++)
     {

        if (Trigger.new[i].Acct__c != null)  
     {
        Trigger.new[i].Account__c = acctlist[i].ID; 
        }   
        else
            {
            Trigger.new[i].Account__c = null;
            }
    }
  }
}