用vb 建一个dll
里面包括一个窗体一个模块还有一个report的active控件
然后在模块中写一个函数,例如 rpt(x,y)
然后在vb的主程序里 call 这个函数就可以了
运行的时候,dll也要处于运行状态

解决方案 »

  1.   

    Dim Pw_Conn             As ADODB.Connection        ''楢愙
      Dim Pw_RstMdb           As ADODB.Recordset         ''儗僐乕僪僙僣僩
      Dim Pw_MdbFname         As String                  ''MDB僼傽僀儖柤
      Dim Pw_WmdbFname        As String                  ''WMDB僼傽僀儖柤
      Dim Pw_AppPath          As String
      Dim Pw_Ret              As String
         
      On Error GoTo ERR_RTN
      
      If Not Gf_Get_Inifile("Path", "KAIINMDB", Pw_Ret) Then
        GoTo ERR_RTN
      End If
      Pw_MdbFname = Pw_Ret
      Pw_WmdbFname = Replace(Pw_MdbFname, "\mdb", "\wmdb")  Set Pw_Conn = New ADODB.Connection
      With Pw_Conn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .Open Pw_WmdbFname
      End With
      Set Pw_RstMdb = New ADODB.Recordset
      Call Pw_RstMdb.Open _
       ("FB0020", Pw_Conn, adOpenDynamic, adLockOptimistic, adCmdTable)
      
      'Open the Events.rpt report file.
      Set CrReport = Appl.OpenReport(Pw_AppPath & "Rpt_FB0020.rpt")
      
      CrReport.DiscardSavedData
      CrReport.Database.SetDataSource Pw_RstMdb
      CrReport.Database.Verify
      CrReport.ParameterFields(1).AddCurrentValue Format(Now, "yy/mm/dd hh:mm:ss")
      
      Txt_CRViewer.ReportSource = CrReport
      
      Txt_CRViewer.ViewReport
      Exit Sub