Adodc3.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=G:\华宇项目\淄博华宇科技发展有限公司\华宇PM生产管理系统\scgl.mdb;Persist Security Info=False"Adodc3.RecordSource = "select sum(数量)+sum(数量1)+sum(数量2)+sum(数量3)+sum(数量4) from 外购标准件退回出库 where 日期选择 between # " & DTPicker1.Value & " # and  # " & DTPicker2.Value & " # and 规格型号='" & Text1.text & "' or 规格型号1='" & Text1.text & "' or  规格型号2='" & Text1.text & " ' or 规格型号3='" & Text1.text & "' or 规格型号4='" & Text1.text & "'"
Adodc3.Refresh
Set DataGrid3.DataSource = Adodc3
Text2.text = DataGrid3.textAdodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=G:\华宇项目\淄博华宇科技发展有限公司\华宇PM生产管理系统\scgl.mdb;Persist Security Info=False"Adodc2.RecordSource = "select sum(金额)+sum(金额1)+sum(金额2)+sum(金额3)+sum(金额4) from 外购标准件退回出库 where 日期选择 between # " & DTPicker1.Value & " # and  # " & DTPicker2.Value & " # and 规格型号='" & Text1.text & "' or 规格型号1='" & Text1.text & "'or 规格型号2='" & Text1.text & "' or 规格型号3='" & Text1.text & "' or 规格型号4='" & Text1.text & "'"
Adodc2.Refresh
Set DataGrid3.DataSource = Adodc2
Text4.text = DataGrid3.text大家好,请求各位同仁帮忙看看此段程序应该如何调试,目的是实现条件性的分类汇总,数据库目标字段比较多比如名称字段就有多个像名称1、名称2等等,谢谢大家了!

解决方案 »

  1.   

    感觉你这个数据库的结构设计问题很大啊.
    不符合数据库设计的规范.
    把很多同类型的数据放在同一个表结构里即浪费存储空间,又造成将来查询很死板,或者是查询语句变得很啰嗦.
    就像你现在写的这样.
    如果有100种规格型号的话我相信你就不会把数据库结构搞成这样子了, 否则一个查询就要写死人了.所以我的建议是从数据库结构开始推倒重来, 当然程序也得改了.
    不过好处是将来不会因为增加一种规格型号而统统推导, 要知道开发阶段还没有实际数据,所以推倒重来的代价是最低的. 一旦将来数据库里有了数据再想重来, 那个代价就不是一点点了.