
Originally Posted by
June7
I am talking about the lack of a direct relationship between these datasets that is causing last resort use of DLookup to pull an identifier value.
Only alternative I can think of involves Cartesian relation of the datasets - this is a query with no JOIN clause so every record of each table joins with every record of other table.
Query1
SELECT BlockDates.BlockID, BlockDates.[Trial #], BlockDates.[Day #], BlockDates.Block_Start, BlockDates.Comments, BlockDates.Experiment_Name, Uploaded_Scrub.RFID, Uploaded_Scrub.LocID, Uploaded_Scrub.Data1, Uploaded_Scrub.Data2, Uploaded_Scrub.Arrive, Uploaded_Scrub.Leave
FROM Uploaded_Scrub, BlockDates
WHERE (((Uploaded_Scrub.Arrive) Between [Block_Start] And CDate(Format([Block_Start],"dd/mm/yyyy") & " 11:59:59 PM")));
Query2
SELECT Query1.*, Band_IDs.[Band], Band_IDs.Aviary
FROM Band_IDs RIGHT JOIN Query1 ON Band_IDs.Aviary_RFID = Query1.RFID;
All in one
SELECT Query1.*, Band_IDs.[Band], Band_IDs.Aviary
FROM Band_IDs RIGHT JOIN (SELECT BlockDates.BlockID, BlockDates.[Trial #], BlockDates.[Day #], BlockDates.Block_Start, BlockDates.Comments, BlockDates.Experiment_Name, Uploaded_Scrub.RFID, Uploaded_Scrub.LocID, Uploaded_Scrub.Data1, Uploaded_Scrub.Data2, Uploaded_Scrub.Arrive, Uploaded_Scrub.Leave
FROM Uploaded_Scrub, BlockDates
WHERE (((Uploaded_Scrub.Arrive) Between [Block_Start] And CDate(Format([Block_Start],"dd/mm/yyyy") & " 11:59:59 PM")))) AS Query1 ON Band_IDs.Aviary_RFID = Query1.RFID;
Does that get anything like what you want? Does it crash - it certainly might.