У меня есть текстовое поле даты в основной форме, которое выводит 6 последовательных дат (интервалы 2 недели) в подчиненной форме. Подформа заполняется этими датами как часть события AfterInsert()
основной формы.
Private Sub Form_AfterInsert()
Dim strSQL As String
Dim i As Integer
For i = 2 To 12 Step 2
strSQL = "INSERT INTO tbl_Date (DateDescriptionID, TestDate) "
strSQL = strSQL & "SELECT " & Me.tbDescriptionID & ", (DateAdd('ww', " & i & ", #" & Me.tbStartDate & "#));"
CurrentDb.Execute strSQL, dbFailOnError
Next i
End Sub
Если пользователь изменяет текстовое поле даты в основной форме, я хотел бы, чтобы даты подчиненной формы отражали это изменение. Я попытался выполнить запрос UPDATE
, чтобы заменить существующие даты новыми датами, но у меня возникли проблемы с выравниванием ключей первичного foregin. Я могу только заменить существующие даты пустыми значениями (null), но не уверен, как соответствующим образом обновить существующие даты новыми датами.
Private Sub tbStartDate_AfterUpdate()
Dim strSQL As String
strSQL = "UPDATE tbl_Date "
strSQL = strSQL & "SET [TestDate] = NULL "
strSQL = strSQL & "WHERE [DateDescriptionID] = " & Me.DescriptionID & ";"
CurrentDb.Execute strSQL, dbFailOnError
End Sub
Пользователь вводит 05/01/2018
Date Data
05/15/2018 Apple
05/29/2018 Banana
06/12/2018 Orange
06/26/2018 Strawberry
07/10/2018 Pineapple
07/24/2018 Peach
Пользователь изменяет запись на 06/30/2018
Date Data
07/14/2018 Apple
07/28/2018 Banana
08/11/2018 Orange
08/25/2018 Strawberry
09/08/2018 Pineapple
09/22/2018 Peach