如何让 MS Access 表单中的按钮创建日期戳,然后不允许进一步编辑?

How do I make a button in an MS Access form create a date stamp, THEN not allow further edits?

日期戳的代码很简单。

Private Sub CmdMyButton_Click()
txtThingDateStamped.Locked = False
txtThingDateStamped = Now()
txtThingDateStamped.Locked = True
End Sub

但用户仍然可以多次点击日期戳,并且可以通过其他形式进行编辑。

我使用 MS Access 项目管理模板开始​​了我的冒险之旅。具体来说,我正在使用的两种形式是 (1) "Project Details" 和 (2) "Project List".

您可以在 table 上使用 Before Change data macro 来强制执行该级别的约束:

<?xml version="1.0" encoding="utf-16" standalone="no"?>
<DataMacros xmlns="http://schemas.microsoft.com/office/accessservices/2009/11/application">
  <DataMacro Event="BeforeChange">
    <Statements>
      <ConditionalBlock>
        <If>
          <Condition>Updated(&quot;ThingDateStamped&quot;)</Condition>
          <Statements>
            <ConditionalBlock>
              <If>
                <Condition>Not IsNull([Old].[ThingDateStamped])</Condition>
                <Statements>
                  <Action Name="RaiseError">
                    <Argument Name="Number">1</Argument>
                    <Argument Name="Description">An existing datestamp cannot be altered.</Argument>
                  </Action>
                </Statements>
              </If>
            </ConditionalBlock>
          </Statements>
        </If>
      </ConditionalBlock>
    </Statements>
  </DataMacro>
</DataMacros>