以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]分组统计代码执行后发现统计表已经存在,怎么办?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=26447)

--  作者:sunsenfeng
--  发布时间:2012/12/4 22:29:00
--  [求助]分组统计代码执行后发现统计表已经存在,怎么办?

请高手指教

在代码执行分组统计,原有统计表已经存在,显示对话窗口说明错误。请问是需要在代码中删除就统计表,还是另有办法。如果要删除,怎么判断表存在,怎么删除。谢谢!

 


--  作者:sloyy
--  发布时间:2012/12/4 23:33:00
--  

 Dim Builder As New ADOXBuilder
            Builder.Open() \'打开ADOXBuilder
            If DataTables.Contains("统计表")  \'如果存在统计表

                Builder.DeleteTable("统计表")   \'删除统计表
            End If
 Builder.Close() \'关闭ADOXBuilder
 Syscmd.Project.Save()
  Syscmd.Project.Open(ProjectFile)     \'重新打开项目


--  作者:狐狸爸爸
--  发布时间:2012/12/5 8:15:00
--  

分组统计的表名可以随意指定的,名称不要和现有的数据表和临时表同名。

如果现有的同名表,也是统计生成的同名表,系统会自动覆盖的。


--  作者:sunsenfeng
--  发布时间:2012/12/5 8:30:00
--  

我是做了个按钮,将代码添加到Click事件中,系统提示有重名表,退出代码执行,系统并没有覆盖重名表

 


--  作者:lin_hailun
--  发布时间:2012/12/5 8:40:00
--  
 那就要看一代码写的是什么内容了,如果是拷贝 分组统计 的代码,系统是会自动覆盖的,因为那个是临时表。

 出现你这种情况,估计是你生成的表代码有问题。

--  作者:sunsenfeng
--  发布时间:2012/12/5 9:13:00
--  

没有覆盖的原因找到了,这个表是我手工建立的临时表"统计表",而不是系统直接生成的"统计表1"

不过,我将系统生成的分组统计代码拷贝到按钮后,执行虽然没有问题,但是,当原始数据修改后,再执行按钮动作,"统计表1"中的数据并无变化,没有刷新,怎么回事?

 

以下是Button1.Click()

Dim g As New GroupTableBuilder("统计表1", DataTables("库存"))
g.Groups.AddDef("商品编号")
g.Totals.AddDef("数量")
g.Totals.AddDef("金额")
g.Build()
MainTable = Tables("统计表1")


--  作者:lin_hailun
--  发布时间:2012/12/5 9:17:00
--  
 我测试,是有改变的,你修改一个单元格的值以后,记得焦点离开那个单元格,值才会更新的。
--  作者:sunsenfeng
--  发布时间:2012/12/5 9:27:00
--  

谢谢,是焦点没有离开,浪费了您多宝贵时间

 


--  作者:zerov
--  发布时间:2012/12/5 9:28:00
--  

学习了


--  作者:sunsenfeng
--  发布时间:2012/12/5 9:31:00
--  
同时感谢2楼的无私帮助,谢谢!