2015-03-17 2 views
1

Это мой первый пост и надеется получить помощь. Я провел много исследований, но не могу определить, где я ошибаюсь. Я просто хочу перебрать многозначный список и добавить значения в отдельную таблицу.VBA для ввода значений из многозначного Lisbox в отдельную таблицу (ошибка времени выполнения 3075)

У меня есть код, который, как я думаю, должен работать, но я получаю ошибку времени выполнения 3075 Ошибка синтаксиса (отсутствующий оператор) в выражении запроса '1b'.

Вот моя ситуация:

У меня есть таблица: qaTbl

У меня есть два поля в этой таблице. interactiveID и дефект (это многозначный список). Оба поля являются shortText.

Для каждой представленной записи я хочу поместить идентификатор взаимодействия и дефект (независимо от того, выбран ли один дефект или много) в новую таблицу, называемую callDefectsTbl.

Два поля в callDefectsTbl - это идентификатор взаимодействия и дефект.

У меня есть форма с кнопкой отправки (qaSubmit). Элемент управления для списка - это «дефект».

Вот код привязан к Click() Событие кнопки отправки:

Private Sub qaSubmit_Click() 

Dim db As DAO.Database 
Dim strSQL As String 
Dim varItem As Variant 

Set db = CurrentDb 
' Add each defect selected in the list box to callDefectsTbl 
With Me.defect 
For Each varItem In .ItemsSelected 
    strSQL = _ 
     "INSERT INTO callDefectsTbl " & _ 
      "(interactionID, defect) VALUES (" & _ 
      Me.interactionID & ", " & .ItemData(varItem) & ")" 
    db.Execute strSQL 
Next varItem 
End With 


DoCmd.GoToRecord , , acNewRec 

End Sub 

Я получаю ошибки времени выполнения 3075. Это, кажется, останавливается, когда захватывая значение дефекта. Я изучил другой код, который делает то же самое, но я не понимаю, что я делаю неправильно.

Любая помощь и подробное объяснение были бы очень признательны !!

Спасибо!

ответ

0

Если shorttext изменить SQL с одной цитатой

strSQL = _ "INSERT INTO callDefectsTbl" & _ "(interactionID, дефект) VALUES ('" & _ Me.interactionID & " ''" & .ItemData (varItem) & "')"

+0

Спасибо! Это разрешает синтаксическую ошибку; Я ценю это. Однако теперь значения не заполняются в callDefectsTbl. Я ввел некоторые фиктивные записи в форме, и код работал без проблем, но не обновлял таблицу. Было два случая, когда они работали, но я не уверен, что произошло. Может быть, у меня есть некоторые свойства в списке неправильно? –

+0

Просто добавьте msgbox strSQL, затем посмотрите, правильно ли sql. Я думаю, что Me.interactionID может быть пустым. Вы можете использовать Docmd.runsql вместо db.execute –

Смежные вопросы