FILESOFT ACADEMY / COURSE 4 / LESSON 2
Link tasks
to the right project.
Print this checklist or save as PDF. Blank areas are writing space, not online form fields.
Back to the lesson ↗Build and compare
- Back up your closed Lesson 1 file.
- Add FollowUps::ProjectID as optional, non-global Text with no auto-enter or unique-value validation.
- Add ProjectsForTask as another occurrence of existing Projects.
- Match ProjectID to PrimaryKey AND ContactID to ContactID.
- Creation/deletion off on both sides of the new relationship; preserve earlier relationships.
- Duplicate Follow-up Overview as Task Project Links, still based on FollowUps.
- Remove copied buttons and Overdue cue; add related ProjectsForTask::ProjectName. Make all displayed fields View Only in Browse and Find.
Try it yourself
- Open Contact Projects and confirm Rivera still has Website refresh and Autumn workshop, and Morgan has a separate Website refresh. If you used different practice data, compare with your own Lesson 1 file.
- Open Task Project Links from the Layout menu. Use Browse mode, List View and Show All. The supplied file should contain the same four tasks as the starting file. The toolbar and summary count tasks on this layout.
- Confirm every task still has its original contact, due date and status. Project names should be blank: no existing task was assigned automatically. Try clicking a displayed field; this review layout should not allow editing.
- Open Manage Database → Relationships. Open the FollowUps–ProjectsForTask relationship. Confirm both field pairs use = and both creation/deletion options are off. Cancel out after inspecting.
- Explain the three cases below without editing live keys. Do not type project names or guessed IDs into ProjectID.
- Use the Layout menu to return to Contact Task Views and Contact Projects. Check that your previous task controls and project lists still work. Save, close and reopen; confirm your data and the new Task Project Links layout remain.
| Task link | Expected related project |
|---|---|
| Blank ProjectID | No match; the task remains unassigned. |
| Rivera task, Rivera project’s key, matching ContactID | The selected Rivera project’s name. |
| Rivera task, Morgan project’s key | No match because the contact IDs differ, even if both projects are called Website refresh. |
Explain what you learned
Why keep ProjectID optional and separate from ContactID?
Why does ProjectsForTask not duplicate the Projects records?
Why does a relationship with two matching conditions still need assignment checks?