我想用datareport 做一个分层的报表,又不想用其他的引擎(access数据库),有没有其他的解决方法?

解决方案 »

  1.   

    就是怎么用ado来建立一个分层的recordset,msdn里面的例子是odbc的,我不想用odbc数据源,想用jet引擎直接调用.mdb数据库,怎么写cnn.provider和cnn.connectstring?
      

  2.   

    Public adoCn As New ADODB.Connection
    Public adoRs As New ADODB.RecordsetPublic Function Connection() As Integer
    Dim sCon As String
    On Error GoTo Errs
        sCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\db1.mdb"
        adoCn.CursorLocation = adUseClient
        adoCn.Open sCon
        Connection = 0
        Exit Function
    Errs:
        Connection = -1
    End FunctionPublic Function DisConnection() As Integer
    On Error GoTo Errs
        If adoCn.State = adStateOpen Then adoCn.Close
        Set adoCn = Nothing
        DisConnection = 0
        Exit Function
    Errs:
        DisConnection = -1
    End Function
      

  3.   

    大哥,,,知道不知道什么是分层的记录集呀?就是用SHAPE 连接两个SQL的那种,你给的这段代码没一点用处~~~这些写得还不如数据窗体向导写得好看~~~
      

  4.   

    自己捞一下帖子~~~没人用过么?
    Sub datashape()
        Dim cnn As New ADODB.Connection
        Dim rst As New ADODB.Recordset
        Dim rsChapter As Variant    cnn.Provider = "MSDataShape"
        cnn.Open    "Data Provider=MSDASQL;" & _
                   "DSN=vfox;uid=sa;pwd=vfox;database=pubs”
    '步骤 1
        rst.StayInSync = FALSE
        rst.Open    "SHAPE  {select * from authors} 
                   APPEND ({select * from titleauthor} AS chapter 
                   RELATE au_id TO au_id)", 
                   cnn
    '步骤 2
        While Not rst.EOF
            Debug.Print    rst("au_fname"), rst("au_lname"), 
                         rst("state"), rst("au_id")
    '步骤 3
            Set rsChapter = rst("chapter")
    '步骤 4
            While Not rsChapter.EOF
                Debug.Print rsChapter(0), rsChapter(1), 
                            rsChapter(2), rsChapter(3)
                rsChapter.MoveNext
            Wend
            rst.MoveNext
        Wend
    End Sub这是MSDN中ODBC的一个例子,不知道怎么用MS Jet OLEDB来实现?
      

  5.   

    SQL我会写,就是这里的cnn.provider 和 connectstring 不知道怎么写~~
      

  6.   

    不好意思,我没仔细看。可以的
    Set cn = New ADODB.Connection
    cn.Provider = "MSDataShape"  '设定成阶层式的联结
    '设定资料库的所在
    cn.ConnectionString = "Provider=MSDataShape;Data Source=C:\Program Files\Microsoft Visual Studio\VB98\Nwind.mdb;
    Data Provider=Microsoft.Jet.OLEDB.4.0"
    cn.Open
      

  7.   

    好像可以用也~~我在试试,好用的话马上给分~~(包括另外一贴的分数!)不过为什么在connectionstring里还要设provider呢?没有的话就会出错~~
    不管怎么样,还是十分感谢的!!
      

  8.   

    好用了~~太好了`~但又一个问题出现了,还请帮忙帮到底!
    http://expert.csdn.net/Expert/topic/2342/2342897.xml?temp=.1999475