I have both bound and unbound forms. Each have their uses.
Our problem: We have over 1000 servers (it's a hosting center) and we get 20-30 security bulletins per month. But not all of them apply equally to all of the servers. We have automated a bunch of the decisions, but we still have to give the administrators a way to record the work they do and the result of their research.
Using unbound forms, I let them do complex bulk updates in a two-dimensional matrix. For instance, the admins might be selecting all of the UNIX-based database servers and noting that none of them run Websphere or Wireshark. So with two multi-select combo boxes, the admins select a bunch of servers and a bunch of security notices, then select status "Server does not run this software." Then [COMMIT] and our reporting is done for literally a few thousand responses spread over 60 projects - wholesale updates. Or perhaps they selected the status "Waiting for scheduled downtime" and will later update servers after each one is patched, with different selection methods but the same concept. There, an unbound form was the only way to go.
For the bound forms, we are either adding new users, new servers, new security bulletins, or new projects piecemeal. There, the one-to-one form display of an underlying single entity is unmatched for ease of use and direct applicability to our situation.
The points that make the above relevant to this discussion?
1. Both form types make sense in a real-world application. Each is a valuable tool in your toolkit. Don't leave behind a wrench and only take the hammer. Otherwise, you had better hope that all you see is nails and not nuts and bolts.
2. It is possible to make things not quite bullet-proof but pretty darned so, using SQL-based queries (DoCmd.RunSQL things) on a shared Access backend - as long as you are careful. Or use DAO where it makes sense.
The concern is making something robust. What I did to make our apps work was to first build a prototype form with lots of common features and all of the event code already partly instantiated. The OnOpen, OnLoad, OnCurrent, OnActivate, etc. - DEFINITELY including the BeforeUpdate event and OnClose events. Also included pre-built command buttons like COMMIT, CANCEL, HELP, File Trouble Report, CREATE, REMOVE, etc.
We trap attempts to close the form without saving. We trap attempts to save a record that is incomplete. We trap attempts to save data in an impossible format. All of the hooks for that are pre-built into the prototype forms for bound or unbound application elements.
The point there is to do the work up front to build the infrastructure so that instead of having to do this over and over again for every form for every business entity you will ever touch, you CLONE the form and fill in the blank spaces with the specifics. If 60% of your tedium in getting a complex set of forms built up is because of the repetitious event code it takes to armor-plate your application, do the really nasty work up-front in the abstracted prototypes. Then go back and customize. Saving 60% of your work for every new form adds up - and yet you can get a good product. Oh, by the way, it doesn't hurt that using cloned forms gives your product a consistent appearance, look-and-feel, or however you want to say that.
As to the autonumber discussion:
I've always been in favor of autonumbering things, but not blindly so. You don't ALWAYS need a PK in table A unless a child is going to claim a record in table A as its parent. There, autonumbers make sense unless there is a natural PK somewhere to be found. Natural keys are preferable to synthetic keys, in my opinion, but there are those who disagree.
But there should be no confusion about autonumbering. If you are using an autonumber system, the numbers will be unique but not predictable, even if you use the autoincrementing rather than the random form of autonumbers.
If you wanted contiguous numbers, you didn't want an autonumber in the first place. Contiguity is never a property of the autonumber set in Access. It is OK to want to know the value of an autonumber after the fact - but not before the fact. Most of the respondents here know that, but the casual readers of the thread might need to be reminded.