Instead of two date fields, consider 1 field along with another field for plot type. Can set a compound index with Detail_ID and DetailDate field to prevent duplicate pairs.
This is more normalized structure and will simplify code.
Might want to delete existing records for Detail_ID to handle revised range.
Consider code:
Code:
Sub AddRecs(iID As Integer, dStart As Date, dEnd As Date, sPlot As String)
Dim db As DAO.Database
Dim dDte As Date
Set db = CurrentDb
db.Execute "DELETE FROM tbleIODetails WHERE Detail_ID=" & iID
dDte = dStart
If sPlot = "Weekly" And Weekday(dStart, vbMonday) <> 1 Then
dDte = DateAdd("d", 1 - Weekday(dStart, vbMonday), dStart) + 7
End If
Do Until dDte > dEnd
db.Execute "INSERT INTO tbleIODetails(Detail_ID,DetailDate,Plot) VALUES(" & iID & ",#" & dDte & "#,'" & sPlot & "')"
dDte = dDte + IIf(sPlot = "Daily", 1, 7)
Loop
End Sub