更改记录中的日期

changing dates in a record

提问人:tbennekik 提问时间:6/29/2023 更新时间:6/29/2023 访问量:25

问:

这里又是洗礼计划的那个人(希望是最后一次)

在表格中,Doopdata我存储了在某个教堂进行洗礼的所有日子。

当 de 洗礼的日期在某个日期发生变化时,de 表 Doopdata 中的日期也必须从该日期开始更改。(p.e. 洗礼从周日改为周六)。如果人们已经要求在星期天受洗,那就有问题了。因此,我检查是否已经在星期天被要求洗礼。在本例中,我将此日期存储在 Problemen (Problems) 表中。

后来,当我想更改所有这些日期时,我会检查 de 日期是否在表 Problemen 中。 㞖:

  • 表 Doopdata 中的标志 Problemen 必须设置为 true。
  • 必须在新日期在表 Doopdata 中添加新记录。 如果不是: 必须在新日期中更改日期

我使用此代码

Do While Not rd.EOF
                'rd = recordset Doopdata
                'rp = recordset Problemen
                    zoeken = "Probdatum = " & MakeUSDate(rd!DoopDatum)'Doopdatum = date of Doopdata 
                    'MakeUSDate = function to make date American 
                    rp.FindFirst zoeken
                    If Not rp.NoMatch Then
                        oké = True
                    Else
                        oké = False
                    End If


                nieuwedatum = 0
                oudedatum = 0
                oudedatum = rd!DoopDatum 'is the date as it is before change
                nieuwedatum = DateAdd("d", verschil, oudedatum) 'Verschil = the difference in days. 
                'I made a function to calculate the difference and I know that is working fine

                If oké Then 'the date exists in Problemen 
                
                   'de vlag probleem wordt aangezet (problem flag is put on)
                   rd.Edit
                   rd!Probleem = True
                   rd.Update
                   
                   'er wordt een nieuw record aangemaakt op de nieuwe datum
                   'A new record is added
                   rd.AddNew
                   rd!DoopDatum = nieuwedatum
                   rd!LangeDatum = Format(nieuwedatum, "dddd d mmmm yyyy")
                   rd!KerkID = SID
                   rd!Aktief = True
                   
                   rd.Update

                Else 'the date doesn't exists in Problemen

                    'de datum wordt gewijzigd en alle doopmomenten worden op nul gezet
                    'all the dates from must be changed in the new dates                     
                        rd.Edit
                        rd!DoopDatum = nieuwedatum
                        rd!LangeDatum = Format(rd!DoopDatum, "dddd d mmmm yyyy")
                        rd!Annulatie = 0
                        rd!DAantal = 0
                        rd!Doop1 = 0
                        rd!Doop2 = 0
                        rd!Extra1 = 0
                        rd!Doop3 = 0
                        rd!Doop4 = 0
                        rd!Extra2 = 0
                        rd!Aktief = True
                        rd.Update
                End If
                rd.MoveNext
         Loop

我测试了从星期日到星期五的日期变化,这是从七月开始的。我知道 8 月 20 日有问题(那个星期天有洗礼申请)。 因此,通常记录必须更改标志 Problemen on true。我还在 18 日星期五增加了一个新记录。 我使用新日期添加新记录,但我在新记录上看到的日期始终是 8 月 16 日星期三,而不是 18 日星期五。 星期天我只更改了 Flag Problemen,也更改了日期 Doopdatum 在星期五的日期中,我没有在代码中这样做 LangeDatum DoopDatum Woensdag 16 奥古斯都 2023 16/08/2023 宗达格 20 奥古斯都 2023 18/08/2023

我已经尝试了一切,但没有任何效果 我的代码中是否存在逻辑错误? 我现在搜索了 2 天来更改我的代码,但没有任何效果

我以不同的方式更改了我的代码,以找出我犯了错误的地方,但这无济于事

VBA MS-访问-2010

评论

0赞 June7 11/10/2023
建议您在允许附加文件并提供数据库以供分析的讨论论坛中发帖。

答: 暂无答案