Разрешить ввод в поле автоматического номера в форме для создания новой записи в Access - PullRequest
0 голосов
/ 06 мая 2011

У меня есть форма, которая будет отображать последнюю запись таблицы, с несколькими дополнительными полями из других таблиц.ПК основной таблицы - авто нумерация.Мне нужно иметь возможность разрешить пользователю вносить изменения в поле автоматической нумерации, а затем определять, существует ли запись или нет, если да - обновить, если нет - вставить новую.Я пытался добавить событие в поле об изменении поля, но всякий раз, когда я пытаюсь щелкнуть поле в форме, оно просто подает звуковой сигнал.Вот код:

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 Ответ

2 голосов
/ 07 мая 2011

Обычно не рекомендуется выставлять поля автонумерации в пользовательском интерфейсе.Однако, если вы все еще хотите предоставить интерфейс, который вы описали, вам нужно сделать следующее:

  1. Добавить текстовое поле unbound (я назову его IDLookup)
  2. Добавьте событие AfterUpdate в текстовое поле, чтобы проверить существующую запись
  3. Если запись существует, отфильтруйте форму, чтобы отобразить эту одну запись
  4. Если нет, переместите форму в новую запись (Me.Recordset.AddNew)

Ключевым моментом здесь является то, что ваш поиск должен быть выполнен через текстовое поле unbound .Доступ не позволит вам редактировать что-либо внутри текстового поля, привязанного к полю AutoNumber (по уважительной причине!).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...