sql - 如何从主表单以线性方式更新多个子表单记录?
问题描述
我在主窗体中有一个日期文本框,它在子窗体中输出 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
使用新日期替换现有日期的查询,但在尝试对齐主外键时遇到了麻烦。我只能用空值(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
用户将条目更改为 2018 年 6 月 30 日
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
解决方案
我选择 SQL:
我假设一个名为tblData
字段ID
(PK, Autoincrement) , Data
(Text) 和Sort
(Long)的表
ID Data Sort
1 Apple 3
2 Banana 5
3 Orange 2
4 Strawberry 1
5 Pineapple 4
6 Peach 6
询问:
SELECT Data, DateAdd("ww", 2 * Sort, Forms!ParentForm!txtDate) as ComputedDate FROM tblData Order By Sort;
将此用作子表单的记录源。如果txtDate
存储在表中,您可以加入或查找。仅存储一个始终保持最新的日期。
推荐阅读
- uipath - UiPath中的Excel复制粘贴活动冻结而没有执行任何操作
- kubernetes - Kubernetes 卷挂载权限对于 Secret 不正确
- vba - 修复 PPT 图表中的轴值
- python - 查找numpy中的所有间隔
- javascript - 警报事件侦听器取决于所选的选项 JavaScript
- javascript - JWT 使令牌无效
- swift - 如果我们单击 AddCommentsButton,则必须启用 AddCommentsTextView。如何在 swift iOS 中实现?
- android - 如何使用颤振制作安卓棋盘游戏
- azure - 是否可以在 Azure DevOps 上升级到性能更高的 Microsoft 托管构建代理?
- python - 我需要使用 json 将嵌套的 python 字典写入文本文件,该文本文件将被读取为 c++ 字典(使用 OpenFOAM)