Private Sub Command1_Click()
 Dim n As Integer
  Set db = New Connection
   db.CursorLocation = adUseClient
   db.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=D:\VB98\ALB.mdb;"
   Dim abc As recordset
   Set adoPrimaryRS = New recordset
    n = 0
   adoPrimaryRS.Open "select * from ¹¤×ʱí", db, adOpenStatic, adLockOptimistic
   
   aaa adoPrimaryRS, nEnd Sub
Public Sub aaa(recordset As recordset, index As Integer)   
  temp = recordset(index).Name
  recordset.Close
  recordset.Open "select avg(len(" & temp & ")) from ¹¤×ʱí", db, adOpenStatic, adLockOptimistic
  Set DataGrid1.DataSource = adoPrimaryRS
   DataGrid1.ReBind
End Sub函数吊用说参数类型不符,怎么办?帮我改改! 谢谢

解决方案 »

  1.   

    Private Sub Command1_Click()
     Dim n As Integer
      Set db = New Connection
       db.CursorLocation = adUseClient
       db.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=D:\VB98\ALB.mdb;"
       
       '/////////////定义一下就行啦!!///////////////
       Dim adoPrimaryRs As recordset
       
       Dim abc As recordset
       Set adoPrimaryRs = New recordset
        n = 0
       adoPrimaryRs.Open "select * from Device", db, adOpenStatic, adLockOptimistic
       
       aaa adoPrimaryRs, nEnd Sub
    Public Sub aaa(recordset As recordset, index As Integer)
       
      temp = recordset(index).Name
      recordset.Close
      recordset.Open "select avg(len(" & temp & ")) from ¹¤×ʱí", db, adOpenStatic, adLockOptimistic
      Set DataGrid1.DataSource = adoPrimaryRs
       DataGrid1.ReBind
    End Sub
      

  2.   

    你在程序中用到 Set adoPrimaryRS = New recordset。
    这个是实像化记录集对象,你还没有定义它
    要先定义它才能实例化它。Dim adoPrimaryRS As Adodb.recordset
    Set adoPrimaryRS = New recordset
      

  3.   

    首先在Project--Reference中加引用:Microsoft ActiveX Data Object 2.7(或2.6 2.5)Library
    从Project--Components中添加控件Microsoft Hierarchical FlexGrid Control 6.0,将控件加入窗口,改名为DataGrid1
    实现代码如下,我已调试通过:
    Private Sub Command1_Click()
        Dim adoPrimaryRs As recordset
        Dim intN As Integer
        Dim adoDb As New Connection
        
        Set adoDb = New Connection
        adoDb.CursorLocation = adUseClient
        'db.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=D:\test.mdb;"
        '注:我的Access引擎比你的高
        adoDb.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=D:\test.mdb;"
        
        Set adoPrimaryRs = New recordset
        intN = 0
         
        adoPrimaryRs.Open "select * from [User]", adoDb, adOpenStatic, adLockOptimistic
        
        aaa adoPrimaryRs, intN
    End SubPublic Sub aaa(adoRecordset As recordset, index As Integer)
        Temp = adoRecordset(index).Name
        adoRecordset.Close
        'recordset.Open "select avg(len(" & Temp & ")) from ¹¤×ʱí", db, adOpenStatic, adLockOptimistic
        '此时不用再加db即ActiveConn,因为已连接
        adoRecordset.Open "select * from [User]", , adOpenStatic, adLockOptimistic
        
        Set DataGrid1.DataSource = adoRecordset
    End Sub
    另:请注意编码规范,希望对你有帮助