Ok, 4 tables... got it.
This is how I would start off with the table structure:
Code:
tClients
-----------
ClientID_PK Autonumber
LName Text
FName Text
Address Text
City Text
State Text
Zip Text
tPrograms
---------
ProgID_PK Autonumber
ProgName Text
ProgDesc Text
tClientsProgs (junction table)
-----------
ClientProgID_PK Autonumber
ClientID_FK Long Foreign key to Clients table
ProgramID_FK Long Foreign key to Programs table
CaseNumber Text
StartDate ?? Date
Other fields
tProgram_A
-----------
Prog_A_PK Autonumber
ClientProgID_FK Long Foreign key to ClientProgs table
other fields for Program_A
tProgram_B
-----------
Prog_B_PK Autonumber
ClientProgID_FK Long Foreign key to ClientProgs table
other fields for Program_B
tProgram_C
-----------
Prog_C_PK Autonumber
ClientProgID_FK Long Foreign key to ClientProgs table
other fields Program_C
tProgram_D
-----------
Prog_D_PK Autonumber
ClientProgID_FK Long Foreign key to ClientProgs table
other fields Program_D
Client info entered once. Client can be in multiple "programs" with different case numbers.
As to forms, obviously I don't know anything about the process, but I wold think the data would be in batches by Program.
One way would be to select the program (combo box?), select the client and open a form to enter the data. You would need some way to open the correct form for the correct program table.
--------------
Only use letters, numbers and underscore in names. No punctuation or special characters.
Use a query for the form record source. It is easier to sort and filter than if the record source is a table.