'数据库ACCESS2000
'数据表名称 OutData 主要字段有ID、Name、Coding、Units、Quantity、TotalPrice
'想通过Name进行分组查询,得到数据集应该有Name、Coding、Units,Sum(Quantity),Sum(TotalPrice)'查询的主要代码如下   
Dim cnSave As ADODB.Connection  '存放用来打印的数据
   Dim rsSave As ADODB.Recordset
   Set cnSave = New ADODB.Connection
   Set rsSave = New ADODB.Recordset
   With cnSave
      .ConnectionString = "Driver=Microsoft Access Driver (*.MDB);" & _
                         "DBQ=" & strCustomProDB
      .Open
   End With
   
   strQuery =  ??'哪位高手可以提供这一SQL语句,我已不行了'strQuery = "select A.Name,Sum(Quantity) as Quantity from OutData A Group by Name" 这一句不对   With rsSave
      .ActiveConnection = cnSave
      .CursorType = adOpenDynamic
      .LockType = adLockOptimistic
      .CursorLocation = adUseClient
      .Open strQuery
   End With
   
   
   If rsSave.RecordCount = 0 Then
      rsSave.Close
      cnSave.Close
      Exit Sub
   End If
   
.......

解决方案 »

  1.   

    select Name、Coding、Units,Sum(Quantity),Sum(TotalPrice) from OutData Group by Name,coding,Units
      

  2.   

    Sum(Quantity) as Quantity 
    改成:
    Sum(Quantity) as Sum_Q 或者其他名字
      

  3.   

    Name是数据库保留字,SQL语句中要用[]号括起来
      

  4.   

    是不是记录为空?
    在Access里面建一个查询看看
      

  5.   

    select Name、Coding、Units,Sum(Quantity) as Quantiry,Sum(TotalPrice) as Price from OutData Group by Name
      

  6.   

    记录集不为空,如果采用
    select Name、Sum(Quantity) as Quantiry from OutData Group by Name
    则不为空集,加一个检索字段再执行就为空了,我检查了数据表,字段就如前所述,有两百条记录,不知啥原因?
      

  7.   

    难道ACCESS的ADO连接不支持标准的SQL语法,还是系统有问题
      

  8.   

    select Name、Coding、Units,Sum(Quantity) as quantity ,Sum(TotalPrice) as totalprice from OutData Group by Name,coding,Units这个应该没问题!试试!如过不对就不是SQL语句的不对,是别的问题了!  这个和 1 楼的一样!!!!
      

  9.   

    select Name, Coding ,Units , Sum(Quantity) as quantity ,Sum(TotalPrice) as totalprice from OutData Group by Name,coding,Units这个应该没问题!试试!如过不对就不是SQL语句的不对,是别的问题了!  这个和 1 楼的一样!!!!
      

  10.   

    ADO是不是有特别的用法,和SQL Server2000的查询器的用法不一样?就像通配符一样,在两者中定义不一样
      

  11.   

    解决问题了,谢谢各位
    实在搞不懂,为什么非得要加上数据表名称才行,
    select OutData.Name,OutData.Units,OutData.Coding,Sum(OutData.Quantity) as Quantity,Sum(OutData.TotalPrice) as TotalPrice from OutData Group by Name,Coding,Units
      

  12.   

    这样也可以:
    select [Name],OutData.Units,OutData.Coding,Sum(OutData.Quantity) as Quantity,Sum(OutData.TotalPrice) as TotalPrice from OutData Group by Name,Coding,Units因为name是数据库保留字