So - I didn't go with the phases, instead a created another table to put the preferences into and updated that based an indexnum and the date last assigned. What it does is take the first employee and looks for the task that matches the 1st preference type - if it doesn't find it then it takes the preference query - finds the next order preference and add that to the table and delete the 1st preference (since we don't have any tasks of that type). If it does find a match then it updates the table with date and time and moves on to the next. Each time it requeries so the employee who never received work or had work before today would be on top - while still getting order preference 1 out first (due to the index number) if there was no date. It also remove the employeeID from the table if they didn't have any preferences that matched the tasks on hand.

It works exactly as I want it to -I just had to change the date last assigned to include the time and add a 1 second delete every time it updated the table - hopefully that won't be so bad in the long run.

I could have never done this without your help - thank you much!