首先根据用户所选的时间间隔,从数据库中筛选出了recordset,请问可以在这个记录集中进行统计查询吗?就是比如select count(a) from recordset之类的sql语句!

解决方案 »

  1.   

    你可以使用recordset的recordcount属性,他就是你要的count()。
    如果再复杂,建议你使用存储过程。这样能提高效率。
      

  2.   

    在这个recordset中有很多字段的信息需要进行统计,并不是简单的统计记录的个数,还有就是我不会用存储过程,请指教!
      

  3.   

    首先你是用的是SQLServer吗?如果是access好像还不支持存储过程。
    如果是SQLserver,建议你好好看看SQL的帮助,有存储过程的实例,不难的,只要你会写SQL就没什么问题。然后是调用。
    一个例子,传入三个参数"学生ID","考试科目","成绩"字段.做Insert动作.
    Dim lcmwuqi As New ADODB.Command
    On Error GoTo inerr
    'If lcmwuqi Is Nothing Then
        'Set lcmwuqi = New ADODB.command
        With lcmwuqi
         .ActiveConnection = conn
         .CommandText = "p_NewStudentTest"
         .CommandType = adCmdStoredProc
        End With
    'End If
    lcmwuqi.Parameters.Append lcmwuqi.CreateParameter("学生ID", adInteger, adParamInput, 4, CInt(stuID))
    lcmwuqi.Parameters.Append lcmwuqi.CreateParameter("考试科目", adVarChar, adParamInput, 30, tbTextName.Text)
    lcmwuqi.Parameters.Append lcmwuqi.CreateParameter("成绩", adVarChar, adParamInput, 6, tbText.Text)
    lcmwuqi.Execute
      

  4.   

    當然可以啦.你可以使用adodb.command來獲得查詢結果
    Dim a
    dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    dim cmd As ADODB.Command
    Set cn = New ADODB.Connection
    cn.CursorLocation = adUseClient
    cn.Open "provider=msdasql;driver={sql server};server=sr-shu;uid=sa;pwd=weixing;database=ff"Set cmd = New ADODB.Command
    cmd.ActiveConnection = cn
    cmd.CommandType = adCmdText
    cmd.CommandText = "select count(*) from people"Set rs = cmd.Execute()
    MsgBox rs(0).Value快放分呀.
      

  5.   

    不一定需要存儲過程一樣可以的.你可以在cmd.commandtext的值,根據自己需要輸入sql語句便可.
      

  6.   

    不好意思,我用的是access数据库,我想可能是不是应该建立一个临时表啊,因为我是想在recordset中的记录进行分字段的统计之后在放入一个新的rs,然后再将这个rs 中的数据送去打印