追溯填充访问表单字段

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

【讨论】:

以上是关于追溯填充访问表单字段的主要内容,如果未能解决你的问题,请参考以下文章

字段显示为浏览器自动填充,js访问时为空白

如何将自动填充的表单记录(从另一条记录创建)添加到访问表中?

在一个字段中使用多个参数按表单访问查询

在访问中使用表单添加新记录时如何在表单字段中保留公式

如何在html表单中自动填充输入字段

基于单选按钮选择的访问选项卡控件