追溯填充访问表单字段
Posted
技术标签:
【中文标题】追溯填充访问表单字段【英文标题】:Retrospectively populate an access form field 【发布时间】:2017-02-17 16:39:09 【问题描述】:我有一个访问数据库,我被要求向 (KeyStage) 添加一个字段。该字段将从已知和填充的 NCY 字段中自动填充。代码是;
Dim KeyStage As String
Dim NCY As Integer
NCY = Me.NationalCurriculumYear.Value
If NCY < 1 Then
Me.KeyStage = "Early Years"
ElseIf NCY > 0 And NCY < 3 Then
Me.KeyStage = "KS1"
ElseIf NCY > 2 And NCY < 7 Then
Me.KeyStage = "KS2"
ElseIf NCY > 6 And NCY < 10 Then
Me.KeyStage = "KS3"
ElseIf NCY > 9 And NCY < 12 Then
Me.KeyStage = "KS4"
Else: Me.KeyStage = "Left School"
End If
如果我把它放到 GotFocus 子中,它就可以正常工作。问题是我已经有 2000 条记录,除非我浏览每条记录,否则我无法让 KeyStage 字段自动填充。我尝试将它放在表单的 onLoad 子中,但这也不起作用。谁能建议我如何处理这个问题?
提前感谢您的帮助。
【问题讨论】:
这是一个连续的形式吗?为什么要添加keystage?为什么没有查询? 【参考方案1】:您需要对表中尚未更新的记录执行 UPDATE 语句。这样的事情可能会奏效:
UPDATE MyTable AS T
SET T.KeyStage =
Iif(T.NationalCurriculumYear = 0, "Early Years",
Iif(T.NationalCurriculumYear >= 1 And T.NationalCurriculumYear < 3, "KS1",
Iif(T.NationalCurriculumYear >= 3 And T.NationalCurriculumYear < 7, "KS2",
Iif(T.NationalCurriculumYear >= 7 And T.NationalCurriculumYear < 10, "KS3",
Iif(T.NationalCurriculumYear >= 10 And T.NationalCurriculumYear < 12, "KS4", "Left School")))))
WHERE T.KeyStage Is Null
【讨论】:
以上是关于追溯填充访问表单字段的主要内容,如果未能解决你的问题,请参考以下文章