已经在vb里用form_load写好了一个activex dll,要把它变成一个接口函数,怎么写

解决方案 »

  1.   

    Dim i, j As Integer
    Private Sub Form_Load()
     Dim xlApp As Excel.Application
     Dim xlBook As Excel.Workbook
    Dim xlSheet As Excel.WorksheetDim SQLStr As String
          Set cnn = New ADODB.Connection
    cnn.Open = "Provider =SQLOLEDB;Initial Catalog=emg;Data Source=2号;UID=sa;Pwd=123456"
    Set rs = New ADODB.Recordset
    Set cmd = New ADODB.Command
    SQLStr = "select I_OBJECT from T_STOCK_TRACE_TR"
    rs.Open SQLStr, cnn
      ' 获取或者建立 Excel 对象
        On Error Resume Next
        Set xlApp = GetObject(, "Excel.Application")
        If Err.Number <> 0 Then
            Set xlApp = New Excel.Application
                Err.Clear
        End If
        ' 建立 WorkSheet
        'Set xlApp = CreateObject("Excel.Application")
        Set xlBook = xlApp.Workbooks.Add
        Set xlSheet = xlBook.ActiveSheet
             xlApp.Selection.NumberFormatLocal = "@"
       xlSheet.Cells.NumberFormatLocal = "@"
          ' 导出 ColumnHeaders
        For j = 0 To rs.Fields.Count 'fileds(0)开始
            xlSheet.Cells(1, j + 1) = rs.Fields(j).Name '2 change 1
        Next j     ' 导出 Data
        rs.MoveFirst
           For i = 1 To rs.RecordCount
        While Not rs.EOF
            For j = 1 To rs.Fields.Count
                xlSheet.Cells(i + 1, j) = rs.Fields(j).Value    '2 change 1
            Next j
            rs.MoveNext   'die
            Wend
        Next i
        'rs.MoveFirst
        ' 自适应行标题
        'For i = 1 To rs.Fields.Count
            'xlSheet.Columns(i).AutoFit
        'Next i
       
        xlSheet.Range("A2").CopyFromRecordset rs
        xlApp.Visible = True
    rs.Close
    cnn.CloseKill ("e:\bo.xls")
    xlBook.SaveAs ("e:\bo.xls") '保存文件
    xlApp.DisplayAlerts = False
    'xlApp.Quit
          'xlBook.Save '保存
        Set xlApp = Nothing '交还控制给Excel
        Set xlBook = Nothing
        Set xlSheet = Nothing
    End Sub
      

  2.   

    新建一个模块,把它放在模块里面,用public声明。 public function fun_form_load ()
    ……后面的基本不用改了
      

  3.   

    建个active dll工程,新建一个类模块,建个函数,把你的代码复制进去,
    你这是从数据库中把数据导到excel中,当然应该知道要导出到什么地方,也就是说e:\bo.xls应该是一文件路径参数。
    不过:这是不是有问题?
    Set cnn = New ADODB.Connection
    cnn.Open = "Provider =SQLOLEDB;Initial Catalog=emg;Data Source=2号;UID=sa;Pwd=123456"