The maximum number of fields in an Access recordsource is 255, as is the case with any Jet SQL statement. The limitation on the number of controls on a form is 754 over the life of the form (i.e., deleting a control does not gain you an additional control).
The design is clearly not correct, but as is so often the case, we don't get to choose on these things!
In that case, the only solution I can think of is a main form that has one field, the PK, and then a bunch of subforms with subsets of fields, e.g., 100 each. This means you have to be very careful about making sure that your subform saves its edits in its OnExit event (otherwise you'll get write conflicts).
And, no, it's not a good design at all.
But it is, at least, a workaround if you're forced to have 400 fields because you have an outside datasource that you can't properly normalize.