Я столкнулся с недостатком кода ниже. Когда код запускается, значения помещаются на «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];
Каково значение, возвращаемое 'me.cboAccountID.column (2)' когда вы 'AddNew'? – HansUp
@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