访问VBA组合框参考

时间:2013-12-05 20:09:21

标签: ms-access if-statement access-vba recordset

我遇到了以下代码的问题。代码运行时,值将被放置在“tblPrepayments”上,但AccountID值除外。 me.cboAccountID.column(2)位于“frmInvoices”上,它引入AccountID,但出于可用性原因显示客户端名称。

我没有得到任何错误,但价值并没有进入“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':无效使用Null 。如果我将代码更改为Msgbox me.cboAccountID.column(1),则会获取客户端的名称,而不是ID,以及随后的错误数据类型错误。

以下是 cboAccountID 的行来源。

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

1 个答案:

答案 0 :(得分:1)

组合框值基于0,因此您正在寻找Me.cboAccountID.column(0)或Me.cboAccountID.Value也应该在这里工作。