从表单访问2010添加新记录

时间:2013-11-30 16:10:51

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

我正在使用表单创建发票(“frmInvoices”)。由于人们有时会发送下个月发票的预付款,我会记录三个字段; “frmInvoices”上的“预付款金额”,“预付款月”,“预付款年”。我也希望将这些数据放在'tblPrapayment'表中。

踢球者。为了使我的系统正常工作,我需要确保在保存发票表单并输入预付款值时,也会输入该月份和年份。

我已将此代码放在我的Microsoft Access类对象中,而不是模块中。我只需要在“frmInvoices”表单上工作。我没有得到任何错误。但也没有真正发生过。如果您知道一种更简单的方法,我也愿意接受。

Private Sub Add_Prepayment_Save()
DoCmd.Save ("frmInvoices")
If [Rec'd_Prepayment] = "$0.00" Then
DoCmd.Save ("frmInvoices")
End If
If [Rec'd_Prepayments] <> "$0.00" And [Prepayment_Month] = "" Or [Prepayment_Year] = "" Then
    MsgBox "Please Update Prepayment Month And/Or Prepayment Year"
End If
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] = "AccountID"
        RecSet![Prepayment_Month] = "Billing_Month"
        RecSet![Prepayment_Year] = "Billing_Year"
        RecSet![Rec'd_Prepayment] = "Prepayment1"
    RecSet.Update
End If
End Sub   

1 个答案:

答案 0 :(得分:1)

尝试将此添加到您的表单模块:

Private Sub Form_AfterUpdate()
    MsgBox "Time to validate the form!"  ''reassurance, temp
    Call Add_Prepayment_Save
End Sub

您可能希望将Add_Prepayment_Save作为返回True或False的函数。如果用户需要在表单上工作更多,则该函数返回false并从那里处理它。我通常不得不摆弄一下 - 例如,从Form_CloseForm_LostFocus调用您的验证可能比Form_AfterUpdate()更好。