【问题标题】: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?为什么没有查询?

标签: vba ms-access


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多