允许在表单中的自动编号字段上输入以在Access中创建新记录

时间:2011-05-06 19:07:52

标签: ms-access forms input

我有一个表单,它将显示表的最后一条记录,以及其他表中的一些附加字段。主表的PK是自动编号。我需要能够允许用户更改自动编号字段,然后确定记录是否存在,如果是 - 更新,如果不是 - 插入新的。我尝试在字段更改时向字段添加事件,但每当我尝试单击表单上的字段时,它只会发出哔哔声。这是代码:

Private Sub JobID_Change()

'Check Bid#, if already exists open selected record for editing
    rstOpenOrder.FindFirst "JobID = " & Me![JobID]
    Do Until rstOpenOrder.NoMatch
    With rstOpenOrder
        'Add new record to end of Recordset object.
        .Edit
        'Edit data.
        !LocationID = Me![LocationID]
        !Description = Me![JobName]
        !BaseBid = Me![BaseBid]
        !GrossMargin = Me![GrossMargin]
        !MDs = Me![ManDays]
        !BidDate = Me![BidDate]
        !ShortDate = Me![ShortDate]
        !EmployeeID = Me![EmployeeID]
        !GC = Me![GCs]
        .Update
        .FindNext "JobID = " & Me![JobID]
        'Save changes.
    End With
    Loop

End Sub

如果有人可以提供帮助,我将非常感激!

1 个答案:

答案 0 :(得分:2)

在用户界面中公开自动编号字段通常不是一个好主意。但是,如果您仍想提供您所描述的界面,则需要执行以下操作:

  1. 添加未绑定文本框(我将其称为IDLookup
  2. 在文本框中添加AfterUpdate事件以检查现有记录
  3. 如果记录存在,请过滤表单以显示该记录
  4. 如果没有,请将表单移至新记录(Me.Recordset.AddNew
  5. 此处的关键是您的查询必须通过未绑定文本框完成。访问将不允许您编辑绑定到自动编号字段的文本框内的任何内容(理由充分!)。