Ввод данных через форму в MS-Access — сохранить поле 1 и разрешить многократное обновление поля 2

У меня есть сумка, полная продуктов - на упаковке есть этикетка со штрих-кодом (поле 1 в форме), и каждый предмет внутри сумки имеет штрих-код. Мне нужно отсканировать штрих-код сумки один раз, а затем сканировать предметы (поле 2 в форме), пока не будет отсканирован последний предмет. Затем нажмите клавишу, чтобы завершить ввод этого тотализатора и перейти к другому тотализатору. Это возможно? Мне нужна новая строка в таблице данных с этикеткой со штрих-кодом рядом с каждым отсканированным элементом.

Я частично понял это - я могу успешно получить данные для потока на лист и поддерживать поле 1 - но я не могу установить фокус на поле 2 - когда я ввожу его в поле 2 и нажимаю ввод, он переводит меня в поле 1, когда Я снова нажимаю Enter, затем я возвращаюсь к полю 2 - мне нужно исключить этот второй ввод, чтобы вернуться к полю 2.

Private Sub Field1_AfterUpdate()
If Not IsNull(Me.Field1.Value) Then
  Field1.DefaultValue = Me.Field1.Value
  DoCmd.CancelEvent
  Me.Field2.SetFocus
  End If


End Sub
Private Sub Field2_AfterUpdate()
DoCmd.CancelEvent
End Sub


Private Sub Form_Load()
On Error GoTo NewRecord_Err

 On Error Resume Next
 DoCmd.GoToRecord , """", acNewRec

NewRecord_Exit:
 Exit Sub

NewRecord_Err:
 Beep
 MsgBox Error$
 Resume NewRecord_Exit
End Sub

person rdp    schedule 12.02.2019    source источник


Ответы (1)


Я думаю, вам следует изучить возможность использования основной подробной формы. Вы можете получить информацию о своей сумке в основной форме, а информацию об элементе — в подробной форме, также называемой вспомогательной формой.

Для этого вам понадобится как минимум две таблицы. Одна таблица для данных Tote и одна таблица для данных Item. Вам также необходимо создать связь между двумя таблицами в общем поле, например. ToteId

Структура вашей таблицы может выглядеть примерно так:

tblTotes
- ToteId (Autonumber)
- ToteBarcode (Text)

tblToteItems
- ItemId (AutoNumber)
- ToteId (Number) --this has a relationship with the ToteId field in the tblTotes
- Itembarcode (Text)

Ваша мастер-форма будет иметь tblTotes в качестве источника записи. и ваша подформа будет иметь таблицу tblToteItems. Вы связываете подчиненную форму с основной формой в поле ToteId.

person jbud    schedule 12.02.2019