项目包括两个工程,怎样在一个工程内调用另外一个工程?

解决方案 »

  1.   

    MSDN中是这样说的:
    利用多个工程进行工作
    可以通过单个工程进行工作来创建许多应用程序。但是,随着应用程序越来越复杂,也许希望在编程环境的同一个会话中利用多个工程进行工作。例如,也许想利用一个工程建立一个应用程序的可执行文件,利用第二个工程作为“scratch-pad”以便在将代码添加到应用程序之前测试该代码。通过将一个新的或已有的工程添加至工程组,可以将其添加到当前的编辑会话中。然后可以保存该工程组并在以后的编辑会话中利用其进行工作。可以打开整个工程组或工程组中的单个工程,或者将该工程组或其中的单个工程添加至另一个工程组中。在工程组中,一个可执行的工程被当作启动工程。当一个工程组处于打开状态并且从“运行”菜单中选择了“启动”,在工具栏单击“启动”按钮或者按 F5 键,Visual Basic 将运行启动工程。在专业版和企业版中,可以使用工程组创建并调试多部件的应用程序。例如,可以创建和调试包含标准可执行工程、ActiveX 可执行工程、ActiveX 动态链接库工程或 ActiveX 控件工程的工程组。详细内容,请参阅随 Visual Basic 专业版和企业版提供的《部件工具指南》中的“创建 ActiveX 部件”。添加或删除工程
    当在启动时或通过在“文件”菜单中选择“新建工程”命令创建一个新的工程时,Visual Basic 自动创建一个工程组。然后可以将新的或现有的工程添加到该工程组中。要向工程组中添加新的工程,请 单击工具栏中的“添加工程”按钮或从“文件”菜单中选择“添加工程” 
    在 Visual Basic 学习版中,Visual Basic 自动向工程组中添加一个新的可执行工程。在专业版和企业版中,则可以从“添加工程”按钮的弹出式菜单中或者从显示在“添加工程”对话框的“新建”选项卡上的图标中选择希望添加的工程类型。要向工程组中添加现有的工程,请按照以下步骤执行: 从“文件”菜单选择“添加工程”。 
    Visual Basic 将显示“添加工程”对话框。单击“现存”选项卡。
    选择工程文件,然后选择“打开”。 
    Visual Basic 将选择的工程添加至工程组中。Visual Basic 在工程窗口中有层次地显示多个工程。每一个工程显示在最上一级,工程的窗体、模块、控件、属性页或者文档对象成组地按层次排列在工程下。图 8.1 显示多个工程的工程窗口要从工程组中删除工程,请按照以下步骤执行: 在“工程”窗口中选择工程的名字。
    从“文件”菜单中选择“删除工程”。 
    Visual Basic 将从工程组中删除选择的工程。在 Visual Basic 的专业版和企业版中,可以改变工程的类型,方法是在“工程”菜单中选择“工程属性”命令,然后改变在“工程属性”对话框中“通用”选项卡上的“工程类型”选项。图 8.2 “工程属性”对话框中的“通用”选项卡指定一个启动工程
    因为一个工程组包含了多个工程,因此当从“运行”菜单中选择“启动”、或者在工具栏中单击“启动”按钮或者按 F5 键时,Visual Basic 需要知道运行哪一个工程。在缺省情况下,Visual Basic 运行添加到工程组中的第一个可执行的 (.exe) 工程。但是,可以指定一个不同的启动工程。要指定启动工程,请按照以下步骤执行: 在“工程”窗口,选择一个工程。
    单击鼠标右键并从上下文菜单中选择“设置为启动”。 
    Visual Basic 在工程窗口中以粗体显示启动工程的名称。详细信息 多个工程的调试,在随 Visual Basic 专业版和企业版提供的《部件工具指南》中的“创建 ActiveX 部件”中的“调试、测试和开发部件”。
      

  2.   

    只有工程中包含ActiveX工程时才使用工程组,如果是多个exe工程则无法调试。当包含ActiveX工程是可以再Exe工程的项目-》参考中将ActiveX工程包含进去,然后再Exe工程中使用,并进行调试。
      

  3.   

    如果另一个是类模块
    首先,在“引用”中添加这个包含类模块的工程
    举个例子
    类模块
    Public Function Read_Excel _
             (ByVal sFile _
              As String) As ADODB.Recordset      On Error GoTo fix_err
          Dim rs As ADODB.Recordset
          Set rs = New ADODB.Recordset
          Dim sconn As String      rs.CursorLocation = adUseClient
          rs.CursorType = adOpenKeyset
          rs.LockType = adLockBatchOptimistic      sconn = "DRIVER=Microsoft Excel Driver (*.xls);" & "DBQ=" & sFile
          rs.Open "SELECT * FROM [sheet1$]", sconn
          Set Read_Excel = rs
          Set rs = Nothing
          Exit Function
    fix_err:
          Debug.Print Err.Description + " " + _
                      Err.Source, vbCritical, "Import"
          Err.Clear
    End Function另外一个工程
    Private Sub cmdReadXLS_Click()
          Dim obj As Read_Files.CReadFile
          Set obj = New Read_Files.CReadFile      Set dgData.DataSource = obj.Read_Excel(App.Path & "\" & "test.xls")
          Set obj = Nothing
    End Sub