【问题标题】:Access Database turn on aggregate type through VBAAccess Database 通过 VBA 开启聚合类型
【发布时间】:2013-11-29 03:23:28
【问题描述】:

谁能在这里查看我的代码,看看我哪里做错了。我的目标是在创建查询后打开数据表视图中的聚合类型。目前为止

    Function LoopQuery(ByVal tempProj As Double)
Dim strSQL As String 
Dim qdfTemp As QueryDef 
Dim ProjNumb As Double 
ProjNumb = tempProj
strSQL = "sql code...."
With CurrentDb
Set qdfTemp = .CreateQueryDef(ProjNumb, strSQL)    
   qdfTemp.Fields(21).Properties("AggregateType").Value = 0 'add the Aggregate Total on Total Hours
   qdfTemp.Fields(23).Properties("AggregateType").Value = 0   'add the Aggregate Total on Total Costs
   qdfTemp.Fields(24).Properties("AggregateType").Value = 0   'add the Aggregate Total on Total Discounted 
End With

我知道我很接近,我的问题是

qdfTemp.Fields(21).Properties("AggregateType").Value = 0 'add the Aggregate Total on  Hours 
qdfTemp.Fields(23).Properties("AggregateType").Value = 0 'add the Aggregate Total on Total Costs 
qdfTemp.Fields(24).Properties("AggregateType").Value = 0 'add the Aggregate Total on Total Discounted

不会创建我需要的 Sum Total 行。

我在 msdn 论坛上使用了这个this 作为属性参考,但它似乎不适用于我的查询。任何帮助将不胜感激。

编辑:

在玩耍时,我意识到 AggregateType.value = 0 确实通过了,但“总计行”不可见。单击主页功能区下的总计记录后,我可以看到它确实为我求和。所以现在我的问题是。

如何设置数据表视图底部的总计行可见?我试过了

 currentdb.qdfTemp.Properties("TotalsRow") = True 

但它返回一个错误

【问题讨论】:

  • @HansUp 嗨,感谢您的回答,QueryDef 确实已保存,没有抛出错误消息,这就是我感到困惑的原因。 .createquerydef 部分有效,数据库为 ACCDB 格式
  • @HansUp 我正在使用 access 2007 ,文件是 ACCDB ,问候。

标签: ms-access vba


【解决方案1】:

如您所见,您必须先将查询的 TotalsRow 属性设置为 True,然后才能显示字段的总计。

但是,当您第一次创建 QueryDef 时,TotalsRow 属性不存在。所以你必须创建属性...

Set qdfTemp = .CreateQueryDef(ProjNumb, strSQL)
qdfTemp.Properties.Append _
    qdfTemp.CreateProperty("TotalsRow", dbBoolean, True)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-02
    • 2010-09-26
    • 2011-05-03
    • 1970-01-01
    • 1970-01-01
    • 2017-10-20
    相关资源
    最近更新 更多