This insert query is probably not doing what you think it's doing, and it is probably not working correctly.
Code:
INSERT INTO Fees
(
[GR No],
Class,
Tuition,
FMonth,
TMonth,
[Year],
Transport,
Arrears )
SELECT
[Fee Student].[GR No],
[Fee Student].Class,
[Fee Student].Tuition AS Tuition,
[fee insert].FMonth,
[fee insert].TMonth,
[fee insert].Year,
[Fee Student].Transport,
Baal.[bala]
FROM
[fee insert],
[Fee Student],
Baal
WHERE
((([baal].[gr no])=[fee student].[gr no]))
If you have three [fee student ] records that each have a [baal] record, and five [fee insert] records, then this INSERT statement will insert fifteen records into the [Fees] table. Is that what you were trying to do?
Or will there always be only one [fee insert] record? And will there only be [baal] records for the accounts you are trying to enter?
You definitely must have a [Fee Student] record and a [baal] record for each student before that code will add anything to the Fees table.
By the way, if you use the word CODE in square brackets [] in your post before you put code, then /CODE in square brackets afterward, then the forum software will leave your code alone so it's readable instead of squished together.