2013-12-05 3 views
0

Я столкнулся с недостатком кода ниже. Когда код запускается, значения помещаются на «tblPrepayments», за исключением значения AccountID. Me.cboAccountID.column (2) находится на «frmInvoices», который вытаскивает идентификатор учетной записи, но отображает имя клиента для удобства использования.Доступ к VBA Combo Box Справочник

У меня нет ошибок, но значение не втягивается в «tblPrepayments». Что мне не хватает? Пожалуйста, дайте мне знать, если вам потребуется дополнительное разъяснение.

If [Rec'd_Prepayments] <> "0.00" And [Prepayment_Month] <> "" Or [Prepayment_Year] <> "" Then 
    Dim RecSet As Recordset 
    Set RecSet = CurrentDb.OpenRecordset("tblPrePayments") 
    RecSet.AddNew 
     RecSet![AccountID] = me.cboAccountID.column(2) 
     RecSet![Prepayment_Month] = "Billing_Month" 
     RecSet![Prepayment_Year] = "Billing_Year" 
     RecSet![Rec'd_Prepayment] = "Prepayment1" 
    RecSet.Update 
End If 
End Sub 

Если я бегу MsgBox me.cboAccountID.column(2), я получаю ошибку во время выполнения '94': Недопустимое использование. Если я изменил код на Msgbox me.cboAccountID.column(1), я получаю имя клиента, а не идентификатор, а затем ошибку для несоответствующих типов данных.

Вот источник строки для cboAccountID.

SELECT tblClientLists.[AccountID], [tblClientLists].Invoice_To 
FROM tblClientLists 
ORDER BY [Invoice_To]; 
+0

Каково значение, возвращаемое 'me.cboAccountID.column (2)' когда вы 'AddNew'? – HansUp

+0

@HansUp Не возвращается значение. Создается новая запись, но это поле пустое. Если я запустил MsgBox me.cboAccountID.column (2), я получаю ошибку времени выполнения '94': Недопустимое использование Null. Если я изменю код на Msgbox me.cboAccountID.column (1), я получаю имя клиента, а не идентификатор, а затем ошибку для неверно сопоставленных типов данных. Не уверен, что это поможет, но вот источник управления для cboAccountID. SELECT tblClientLists. [AccountID], [tblClientLists] .Invoice_To FROM tblClientLists ORDER BY [Invoice_To]; – bjk

ответ

1

значения ComboBox являются 0 на основе, так что вы ищете Me.cboAccountID.column (0) или Me.cboAccountID.Value должны также работать здесь.

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