Как сохранить информацию о записи из ListBox в таблицу? - PullRequest
0 голосов
/ 10 февраля 2020

Я использую следующий код, связанный с кнопкой cmdAdd. Используя событие «При нажатии», информация о выборе ListBox копируется в таблицу KitBuild.

Private Sub cmdAdd_Click()

  Dim strSQL        As String
  Dim db            As DAO.Database
  Dim rs            As DAO.Recordset
  Dim ctl           As Control
  Dim varItem       As Variant

  On Error GoTo ErrorHandler

  Set db = CurrentDb()
  Set rs = db.OpenRecordset("KitBuild", dbOpenDynaset, dbAppendOnly)

  'make sure a selection has been made
  If Me.lstResults.ItemsSelected.Count = 0 Then
    MsgBox "At least 1 part must be selected."
    Exit Sub
  End If

  'add selected value(s) to table
  Set ctl = Me.lstResults
  For Each varItem In ctl.ItemsSelected
    rs.AddNew
    rs!ItemNo = ctl.ItemData(varItem)
    rs.Update
  Next varItem

ExitHandler:
  Set rs = Nothing
  Set db = Nothing
  Exit Sub

ErrorHandler:
  Select Case Err
    Case Else
      MsgBox Err.Description
      DoCmd.Hourglass False
      Resume ExitHandler
  End Select

End Sub

Ниже показана таблица KitBuild, в которой сохраняются выбранные значения. В настоящее время он передает только более 1 части информации из выборки, которая No из qryParts, в столбец с именем ItemNo (ID # 8). Это прекрасно работает, но мне также нужно перенести Описание и Стоимость единицы записей с qryParts на KitBuild.

enter image description here

Я попытался изменить следующее на rs!Description и rs!UnitCost, но значение No просто перемещается в эти столбцы (ID # 9, 10) вместо предоставления Description и Стоимость .

  'add selected value(s) to table
  Set ctl = Me.lstResults
  For Each varItem In ctl.ItemsSelected
    rs.AddNew
    rs!ItemNo = ctl.ItemData(varItem)
    rs.Update
  Next varItem

Это пример информации, которую я хотел бы скопировать с qryParts до KitBuild. enter image description here

Как изменить код так, чтобы он включал Нет, описание и стоимость ?

1 Ответ

1 голос
/ 12 февраля 2020

Я предполагаю, что ваш ListBox содержит данные в том же порядке, что и на вашем последнем изображении. Используйте это:

      'add selected value(s) to table
      Set ctl = Me.lstResults
      For Each varItem In ctl.ItemsSelected
        rs.AddNew
        rs!ItemNo = ctl.Column(0)
        rs!Description = ctl.Column(1)
        rs!UnitCost = ctl.Column(2)
        rs.Update
      Next varItem

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