【问题标题】:Hiding Rows with Blank Fields in Access Subreport在 Access 子报表中隐藏具有空白字段的行
【发布时间】:2014-09-22 16:55:14
【问题描述】:

我在 Access 2010 中有一个子报表 ExpenSubrpt,它基本上是一个包含两列的表:YearNo 和 Amount。这些值取自另一个表,支出。长话短说,我数据库中的一些记录有没有 YearNo 的行。我想要做的是隐藏没有 YearNo 的行,即。 YearNo 为空白,但 Amount 中有内容。例如:

YearNo     Amount
             20
  1          50

我希望第一行不可见。我试过把

"[YearNo] <> " " AND [YearNo] IS NOT NULL"

进入“数据”->“过滤器”选项卡,但它给了我一个语法错误(缺少运算符)。当我删除空间时,错误消失了,但它也没有过滤。我也尝试过使用 OnLoad 事件调用查询。

Private Sub Report_Load()
     DoCmd.OpenQuery "Expenditures Query"
End Sub

查询:

SELECT Expenditures.YearNo, Expenditures.Amount
FROM Expenditures
WHERE (((Expenditures.YearNo) Is Not Null));

但是,这也不起作用。我不确定从这里做什么,或者是否有更好的方法来过滤此表单。任何帮助将不胜感激。

【问题讨论】:

  • 报告基于查询。 YearNo 可能为空,它最不可能等于一个空格填充的字符串。 [YearNo} > 0 也将排除空值。
  • 如何根据查询生成报告?
  • 如果您不熟悉 MS Access,请使用报告向导。
  • 这样做很有效。

标签: ms-access filter vba ms-access-2010


【解决方案1】:

您可能希望将查询更改为在字段名称前添加“Not”,如下所示...

SELECT Expenditures.YearNo, Expenditures.Amount
FROM Expenditures
WHERE ((Not(Expenditures.YearNo) Is Null));

【讨论】:

  • 并非如此,一方面&gt; 0 不包括空值。另外,我想你的意思一定是Expenditures.YearNo Is Not NullExpenditures.YearNo是一个零长度的字符串,或者是一个空格填充的字符串。
  • 我同意你的看法 Fionnuala。我回答的时候没有看到你的评论。子报告应基于查询,> 0 将排除空值。我刚刚尝试了使用 ((Not(Expenditures.YearNo) Is Null)) 和 (((Expenditures.YearNo) IS Not Null)) 的查询,两种方式都同样有效。
  • 如果你有很多行,你会发现时间差。一般规则是将所有表达式保留在字段/列名称的右侧。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-06
  • 1970-01-01
  • 2017-06-23
  • 2012-08-21
  • 2013-11-18
相关资源
最近更新 更多