小弟之前问了个怎样能把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下运行可能会出错
几位大哥教小弟做了个函数,但不知道怎样去调用这个函数!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下运行可能会出错
Call ExporToExcel
End Sub
字符串連接的話你試著把最后一句 "NetWork Library=DBMSSOCN " 去掉試一下﹐其它設置如上所說