The odd thing (from an Access point of view) is that the row, to me, is identified by the condition.
Essentially what I was doing was used some VBA on Access to run this SQL on one of the tables:
"DELETE from tblScores WHERE VolunteerID='A1' AND NoWeek=3"
on a table tblScores having a structure like this:
VolunteerID | NoWeek | Score
A1 1 3
A1 2 5
A1 3 0
A2 1 11
........... etc
so the condition "WHERE VolunteerID='A1' AND NoWeek=3" only identifies one record in Access (but, oddly enough, SSIS rejects this). That's odd to me, but after adding the ID column it worked perfectly.