MS Access子表单,表单视图中包含#Error的字段

时间:2012-02-27 02:52:44

标签: ms-access

MS Access 2003。

我在子窗体后面有一个查询,它有一个像这样的sql语句:

SELECT ClientTotalInvoiceLineItems.*
     , CDate(GetWeekEnding([WeekEnding1],[WeekEnding2],[WeekEnding3],[WeekEnding4],[WeekEnding5],[WeekEnding6])) AS WeekEnding 
     , CapturedInvoices.EnteredInvoiceNo, IIf([forms]![frmClientTotalInvoices]![frmClientTotalInvoicesSub].[Form].[NewRecord]=True,0,Ccur([ContractingFeesSubtotal])) AS Subtotal
     , CCur([GSTAmount]) AS GST, CCur([TotalDue]) AS Total
     , IIf(IsNull([ctlCreated]),'',[ctlCreated] & ' by ' & [ctlCreatedBy]) AS Added 
  FROM ClientTotalInvoiceLineItems 
 INNER JOIN CapturedInvoices
    ON ClientTotalInvoiceLineItems.ctlSourceID = CapturedInvoices.CapturedInvoicedID
 ORDER BY CDate(GetWeekEnding([WeekEnding1],[WeekEnding2],[WeekEnding3],[WeekEnding4],[WeekEnding5],[WeekEnding6])) DESC;

当表单出现在新记录中时,我会在以ccur开头的字段中获得#error。

因此,您可以看到我尝试在字段上放置一个Form.NewRecord表达式来测试它,但现在当我在窗体视图中尝试查看时,MSAccess崩溃。

如何在子表单的新记录字段中删除那些#error?

马尔科姆

2 个答案:

答案 0 :(得分:0)

有一些方法可以解决这个问题,但是一种方法是让子窗体的记录源最初为空,然后在主窗体的插入后事件上填写记录源。

答案 1 :(得分:0)

我知道一个可能的错误是您没有正确嵌套表单;

它所在的主“容器”形式需要包含在语句中,如

[forms]![frmClientTotalInvoices]![frmClientTotalInvoicesSub].[Form].[NewRecord]

我假设frmClientTotalInvoices是表单中最大的容器。