Well, I couldn't even get to bed before this idea came to me. Will never sleep if I don't get it expressed here.
Change the query around. This SQL cannot be built or viewed in query builder Design View only SQL View because of non-standard JOIN clause.
[yr] and [mo] are input prompts that can be replaced with references to form controls.
I used Val() in DateSerial function because it did not recognize inputs as numbers.
SELECT DateSerial(Val([yr]), Val([mo]), tbl_DailyRandomsDummy.[ID]) As D, [1A], [1B], Data.ID
FROM tbl_DailyRandomsDummy LEFT JOIN
(SELECT tbl_DailyRandoms.ID, D_Date, tbl_DailyRandoms.[1A], tbl_DailyRandoms.[1B]
FROM tbl_DailyRandoms WHERE Year(D_Date)=[yr] AND Month(D_Date)=[mo]) AS Data
ON Data.D_Date = DateSerial(Val([yr]), Val([mo]), tbl_DailyRandomsDummy.[ID]);
Now use textbox expression and you always have 31 rows.