Is datasheet_Manpower_Act a subform ?
Then your coding should be correct.
But then this contradicts your statment...
Me.RecordSource = "tbl_employees"
...unless the one is for the main form and the other for a subform.
Does the query "qry_weekly_employees" retrieve values for all fields in the subform? Do they use the same name?
The code does work. See recent post on issue...
...Moving on to the performance issue
Do you know where the bottle neck is that causes the performance problem?
Try working through the form, piece by piece to see the specific problem. Cut sections - subforms and code out. For example, the ON CURRENT event can fire of several times depening on the situation. Numerous combo boxes can also cause problems.
When Access loads a form, it retrieves the entire record set. One suggestion I have seen rather retrieving all fields in the table, just retrieve the bear minimum. Then as the end user scrolls through the records, the specific record is retrieved for the current pointer. For example, instead of retrieving the entire employee table, retrieve the employee number. Then use the employee number to retrieve the current employee record as you scroll through the records. This solution does require more work, and you may have to "play" to figure out if other fields such as the employee name are required.