由于编程需要统计DATAGRID的某列的值,能否提供原代码,谢谢大家

解决方案 »

  1.   

    DataGrid的数据是从记录集来的,在查询里统计:
    rs1.Open "select * from 表1 ",cn,3,2
    Set DataGrid1.DataSource=rs1rs2.Open "select sum(你要统计的列名) from 表1") ,cn,1,1
    MsgBox "统计结果为:" & rs2(0)
      

  2.   

    或者用笨方法一个一个地加起来:
    DataGrid1.Row=2 '统计第3列
    for i= 0 to rs.RecordCount-1
       DataGrid1.Row=i
       ret=ret+val(DataGrid1.Text)
    next
    MsgBox "统计结果为:" & ret
      

  3.   

    或者用笨方法一个一个地加起来:
    DataGrid1.Row=2 '统计第3列
    for i= 0 to rs.RecordCount-1
       DataGrid1.Row=i   【这句好像不对吧,这样循环是得到从第1列的值】
       ret=ret+val(DataGrid1.Text)
    next
    MsgBox "统计结果为:" & ret请指教,谢谢
      

  4.   

    不好意思,第一句写错了,改为:
    DataGrid1.Col=2 '统计第3列
      

  5.   

    Private Sub Cmd_Total_Click()
    Dim ret As Integer
    Dim Ret_1 As Integer
    If QzYn.Value = 1 Then
        DataGrid1.Col = 15 【首先判断第16列的值是否=1,如果是则统计第3列的值,如果不是则跳过去,好像达不到我想要的结果】
        For i = 1 To Ado1.Recordset.RecordCount
            DataGrid1.Row = i
            Ret_1 = Val(DataGrid1.Text)
            If Ret_1<>1  Then
                DataGrid1.Col = 4 '统计第3列
                'MsgBox "总计" & Str(Ado1.Recordset.RecordCount)
                DataGrid1.Row = i
                ret = ret + Val(DataGrid1.Text)
            End If
        Next
    ElseIf QzYn.Value = 0 Then
        DataGrid1.Col = 4
        For i = 1 To Ado1.Recordset.RecordCount
                DataGrid1.Row = i
                ret = ret + Val(DataGrid1.Text)
        Next
    End IfMsgBox "统计数量为:【" & Trim(Str(ret)) & "】台"
    End Sub请指教,谢谢
      

  6.   

    首先判断第16列的值是否=1,如果是则统计第3列的值,如果不是则跳过去    If Ret_1<>1  Then    '条件应该是Ret_1=1
            DataGrid1.Col = 4   '统计第3列(其实这里是统计第5列的值)
            'MsgBox "总计" & Str(Ado1.Recordset.RecordCount)
            DataGrid1.Row = i    '这句没起什么作用,可以去掉
            ret = ret + Val(DataGrid1.Text)
        End If---------------------------------
    你的条件写反了,而且你写明要统计第3列的值,而代码却写成了统计第5列的值,另外,两个for也有点问题,应该是For i = 1 To Ado1.Recordset.RecordCount-1
      

  7.   

    Private Sub Cmd_Total_Click()
    Dim ret As Integer
    Dim Ret_1 As Integer
    If QzYn.Value = 1 Then
        
        For i = 1 To Ado1.Recordset.RecordCount
            DataGrid1.Col = 15【哈哈,是这里放错地方了,不过怎么样都谢谢了】
            DataGrid1.Row = i
            Ret_1 = Val(DataGrid1.Text)
            If Val(DataGrid1.Text) <> 1 Then
                DataGrid1.Col = 4 '统计第3列
                 ret = ret + Val(DataGrid1.Text)
           End If
        Next
    ElseIf QzYn.Value = 0 Then
        DataGrid1.Col = 4
        For i = 1 To Ado1.Recordset.RecordCount
                 ret = ret + Val(DataGrid1.Text)
        Next
    End IfMsgBox "统计数量为:【" & Trim(Str(ret)) & "】台"
    End Sub