MS Access:我想要一个启用数据输入的表单来自动填充自动编号,目前我得到的只是(新)
Posted
技术标签:
【中文标题】MS Access:我想要一个启用数据输入的表单来自动填充自动编号,目前我得到的只是(新)【英文标题】:MS Access: I want a data entry-enabled form to auto populate an autonumber, at the moment all I'm getting is (New) 【发布时间】:2014-03-12 09:44:16 【问题描述】:我有一个弹出表单,它填写了 4 个字段,这些字段在我的表单中是不可见的。然后我单击一个按钮,这会打开一个带有自动编号字段的表单,在此之前是在数据输入表单上,当我浏览导航时,这个自动编号字段会自行填充,但因为我只希望用户能够访问一个字段(我将有一个按钮来保存和更新记录,而不是每次都创建一个新记录)我不能有记录导航。
根据我在访问方面的一点经验,我能想到的解决这个问题的唯一 3 种方法(按照我希望这样做的顺序)是:
有一种方法可以让表单在没有数据输入模式的情况下以新记录启动。
有一种方法可以在表单以数据输入模式生成时填充自动编号。
让初始弹出表单上的按钮自动将自动编号增加 1 并将自动编号设置为该值。
我的更新查询是:
UPDATE AdvisorInput SET AdvisorInput.PSTNVolume = (([Forms]![frmInput]![txtPSTN])+([Forms]![frmInput]![txtPSTN2])), AdvisorInput.BBVolume = (([Forms]![frmInput]![txtBB])+([Forms]![frmInput]![txtBB2])), AdvisorInput.TVVolume = (([Forms]![frmInput]![txtTV])+([Forms]![frmInput]![txtTV2])), AdvisorInput.FibreVolume = (([Forms]![frmInput]![txtFibre])+([Forms]![frmInput]![txtFibre2])), AdvisorInput.C2FUVolume = (([Forms]![frmInput]![txtC2FU])+([Forms]![frmInput]![txtC2FU2])), AdvisorInput.PSTNCease = (([Forms]![frmInput]![txtPSTNCease])+([Forms]![frmInput]![txtPSTNCease2])), AdvisorInput.BBCease = (([Forms]![frmInput]![txtBBCease])+([Forms]![frmInput]![txtBBCease2])), AdvisorInput.TVCease = (([Forms]![frmInput]![txtTVCease])+([Forms]![frmInput]![txtTVCease2]))
WHERE (((AdvisorInput.AdvisorEIN)=[Forms]![frmInput]![txtEIN]) And ((AdvisorInput.CSS_WEEK)=[Forms]![frmInput]![txtCSSWeek]) And ((AdvisorInput.WeekdayName)=[Forms]![frmInput]![cboWeekday]));
非常感谢您的宝贵时间。
【问题讨论】:
【参考方案1】:autonumber
字段仅在至少输入一个字段时才会获得一个值。您可以隐藏字段并使用代码输入值。
顺便说一句,一旦自动编号字段使用了一个数字,即使之前的记录被删除,下次它也会使用下一个数字。压缩数据库会将种子编号重置为数据库中当前的最大值,使用INSERT
语句并显式插入自动编号字段的值也是如此。
直接使用新记录打开包含现有记录的表单:
Private Sub Form_Open(Cancel As Integer)
DoCmd.GoToRecord , , acNewRec
End Sub
【讨论】:
在数据输入模式下它只显示一个空白记录,我想要这个表单的最终场景是多个用户可以同时使用它,同时它反馈主表。为此,我不能让任何用户访问以前的记录。我如何使这个隐藏字段的值成为新的增量?基本上是txthiddenID=table.ID.Column(0)+1吗? 您可以让多个用户同时访问一个表单,即使他们可以访问以前的记录。如果用户开始编辑任何记录,Ms Access 将锁定任何记录,直到用户移动到不同的记录。 如果表单绑定到表或(可更新)查询,则添加新记录时自动编号字段将自动增加。就是这样! 对,据我了解,当我打开一个带有 7 条记录 1 的表单时,我希望它从一条新记录开始,我该怎么做? 它现在正在以新记录打开(非常感谢,奇怪的是 OnLoad 出错但 OnOpen 很好)但是 ID 字段仍然是(新)而不是下一个数字,我真的很感激所有这些帮助。以上是关于MS Access:我想要一个启用数据输入的表单来自动填充自动编号,目前我得到的只是(新)的主要内容,如果未能解决你的问题,请参考以下文章