小弟之前问了个怎样能把MSHFlexGrid控件的内容输出到EXCEL里??
几位大哥教小弟做了个函数,但不知道怎样去调用这个函数!MSHFlexGrid的值是用Recordset供给的!
那用EXCEL的值也应该由Recordset供给的????例如Command1_Click()立即把MSHFlexGrid输出的EXCEL里,是怎样调用到上面各位大哥教小弟的那个EXCEL函数呢?函数如下
Public Function ExporToExcel()
'*********************************************************
'* 名称:ExporToExcel
'* 功能:导出数据到EXCEL
'* 用法:ExporToExcel(sql查询字符串)
'*********************************************************
Dim Rs_Data As New ADODB.Recordset
Dim Irowcount As Integer
Dim Icolcount As Integer
    
    Dim xlApp As New Excel.Application
    Dim xlBook As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
    Dim xlQuery As Excel.QueryTable
    Set Rs_Data = Adodc1.Recordset
    
    'With Rs_Data
        'If .State = adStateOpen Then
          '  .Close
      '  End If
        '.ActiveConnection = Cn
       ' .CursorLocation = adUseClient
        '.CursorType = adOpenStatic
        '.LockType = adLockReadOnly
        '.Source = strOpen
        '.Open
   'End With
    With Rs_Data
        If .RecordCount < 1 Then
            MsgBox "对不起!你的选择是错误的数据库没有记录!我想你应该不会在选择错了!", vbOKOnly + vbInformation, "提示"
            Exit Function
        End If
        '记录总数
        Irowcount = .RecordCount
        '字段总数
        Icolcount = .Fields.Count
    End With
    
    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = Nothing
    Set xlSheet = Nothing
    Set xlBook = xlApp.Workbooks().Add
    Set xlSheet = xlBook.Worksheets("sheet1")
    xlApp.Visible = True
    
    '添加查询语句,导入EXCEL数据
    Set xlQuery = xlSheet.QueryTables.Add(Rs_Data, xlSheet.Range("a1"))
    
    With xlQuery
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = True
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
    End With
    
    xlQuery.FieldNames = True '显示字段名
    xlQuery.Refresh
    
    With xlSheet
        .Range(.Cells(1, 1), .Cells(1, Icolcount)).Font.Name = "黑体"
        '设标题为黑体字
        .Range(.Cells(1, 1), .Cells(1, Icolcount)).Font.Bold = True
        '标题字体加粗
        .Range(.Cells(1, 1), .Cells(Irowcount + 1, Icolcount)).Borders.LineStyle = xlContinuous
        '设表格边框样式
    End With
    
   ' With xlSheet.PageSetup
       ' .LeftHeader = "" & Chr(10) & "&""楷体_GB2312,常规""&10公司名称:"   ' & Gsmc
       ' .CenterHeader = "&""楷体_GB2312,常规""公司人员情况表&""宋体,常规""" & Chr(10) & "&""楷体_GB2312,常规""&10日 期:"
       ' .RightHeader = "" & Chr(10) & "&""楷体_GB2312,常规""&10单位:"
       ' .LeftFooter = "&""楷体_GB2312,常规""&10制表人:"
       ' .CenterFooter = "&""楷体_GB2312,常规""&10制表日期:"
       ' .RightFooter = "&""楷体_GB2312,常规""&10第&P页 共&N页"
  '  End With
    
    xlApp.Application.Visible = True
    On Error Resume Next
    xlBook.SaveAs
  
    If xlBook.Saved = True Then
    MsgBox "导出成功!!文件在我的文档资料夹请另存!", vbOKOnly + vbInformation, "提示"
    ElseIf xlBook.Saved = False Then
    MsgBox "文件没有保存请重新导出!", vbOKOnly + vbInformation, "提示"
    End If
    Set xlApp = Nothing  '"交还控制给Excel
    Set xlBook = Nothing
    Set xlSheet = Nothing
    xlApp.Quit
    End Function还有的是我根据那位大哥教我的ADO连接,用他那种方法本机就可以连接,其他机连接就出现了问题,说是一般网络性错误!
怎样解决呢? Public gO_DBConn as new ADODB.Connection    '构造数据库连接串
    gS_DBPath = "Provider=SQLOLEDB.1;Persist Security Info=True;" _
        & "User ID=" & 数据库登录用户名(例如:sa) & ";Password=" & 数据库登录用户的口令 & ";" _
        & "Initial Catalog=" & 数据库名称 & ";Data Source=" & IP地址或机器名 & ";" _
        & "NetWork Library=DBMSSOCN " 注:网络连接库可以不选,但程序在98下运行可能会出错