Actually, I think the problem is that you have multiple records, not just one single record. So Greg's answer doesn't really address your issue.
In the BeforeUpdate event of your check box, you need to see if there is another Organization that is already selected as the main for the current contact. You can do that with DLookup fairly quickly. It will be something like this...
dim varCheck as variant
varCheck = DLookup("MaingOrganisationFlag","Contact_Organisat ion_Links","(ContactID = " & me.ContactID & ") AND (MainOrganisationFlag = True)")
if isnull(varCheck) then
' no main org checked yet
' main org already checked
Cancel = True ' don't allow this change
You could be a nice guy about it and go update the record where the other flag was set so the update on the current org can proceed. But that's more involved.
Randall J Weers
Membership Vice President
Pacific NorthWest Access Developers Group