Warning: My answer will probably require you to delve into some VBA code.
Regarding your base question: IMHO, by separating the bookings into single & block, you are hurting yourself in the long run. ALL bookings are blocks. Some blocks are shorter than others.
Generally, the way to do this is to FIRST, think about how you would do it if all you had was paper and maybe some sticky notes and a white-board.
You have resources to consider:
Facilities - rooms, perhaps like handball courts? other areas, like tennis courts?
Days - (yes, this is a resource)
You have customers to consider. (I suppose you would want to have a customer list for analysis of repeat customers - and facility abusers, too...)
The way to do this in Access, as I see it, is to build a table of facilities to be booked. You can define what it is, how many it can hold, flag whether bookings can be shared and if so, how many total can use it.
Now build a calendar - perhaps just a sparse one - to control availability. There are a thousand ways to do this, but the way I would do it would be to build a form with a calendar control on it to mark the days your facility does not take bookings. I might use a query to populate a table a couple of years in advance for such things. Suppose, for example, that you are closed on Sundays. You would write an append query to store the dates of Sundays in this table. Then go back with your form to also store the dates of holidays when your facility is dark.
OK, now you have a bookings table. I'm going to assume that booking units come in precise units - by the hour, half-hour, or quarter-hour - nothing finer than that. So every booking involves two dates and two times. The "default" case could be that the start booking day automatically becomes the end booking day - the single-day case.
Now you need a form with a start day (calendar control), an end day (another calendar control), a start time, and an end time, plus a drop-down (based on the facilities table) to see what is booked. Perhaps, if you have more than one of a particular type of facility (more than one handball court, e.g.), a drop-down to select facility class. (Implies a facility-class table to drive the drop-down.)
So when you make a new booking, use the calendar control to select a day. Automatically put the start day into the end-day field. But allow selection of a different end day so you can define a block of days. The time-of-day issue is also pretty simple. Select a start time. Select an end time. If this is a known customer, select him/her. Otherwise, you might have to pop up a customer table for new customers.
Now, your VBA is going to have to trigger some queries that could probably be treated as parameter queries. 'cause once you know what type of facility you want & when you want it, all you need to do is look for individual facilities of that type that have NO booking entries in conflict at the selected times on the selected dates. If you have such a facility, book it by adding reservations to a reservations table (which is where you searched to find the empty facility in the first place).
In this design, a type of facility is defined in a type table.
A specific facility is defined in a facility table.
A list of unusable days is in a blocked-day table.
A list of booked facilities is in a bookings table.
The person making the booking is in a customers table.
You can run queries that join the various facilities by a key number (primary key for the defining table, foreign key for the referring table) or dates. To build a report on what is booked you can do a join of facilities to bookings, order by facility & time, break the report on facility, list the times and customers. Now you can print the schedule, cut and paste each room's schedule on the door. (Real scissors and maybe some sticky tape!)