VB将数据导出到EXCEL.doc_第1页
VB将数据导出到EXCEL.doc_第2页
VB将数据导出到EXCEL.doc_第3页
VB将数据导出到EXCEL.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

* VB将数据导出到EXCEL,没有安装EXCEL的一样也可以导出.* 调用方式: s_Export2Excel(Ado.Recordset) 或 s_Export2Excel(Rds.RecordSet)* 支持 Rds 与 Ado 的记录导出*得到所有数据类型,有些数据类型EXCEL不支持,已经替换掉Public Function f_FieldType$(ByVal sType&) Dim iRe$ Select Case sType Case 2, 3, 20 iRe = int Case 5 iRe = float Case 6 iRe = money Case 131 iRe = numeric Case 4 iRe = real Case 128 iRe = binary Case 204 iRe = varbinary Case 11 iRe = bit Case 129, 130 iRe = char Case 17, 72, 131, 200, 202, 204 iRe = varchar Case 201, 203 iRe = text Case 7, 135 iRe = datetime Case 205 iRe = image Case 128 iRe = timestamp End Select f_FieldType = iReEnd Function导出ADO记录集到EXCELPublic Function f_Export2Excel(ByVal sRecordSet As ADODB.Recordset, ByVal sExcelFileName$ _ , Optional ByVal sTableName$, Optional ByVal sOverExist As Boolean = False) As Boolean On Error GoTo lbErr Dim iConcStr, iSql$, iFdlist$, iDB As ADODB.Connection Dim iI&, iFdType$, j, TmpField, FileName Dim iRe As Boolean 检查文件名 If Dir(sExcelFileName) Then If sOverExist Then Kill sExcelFileName Else iRe = False GoTo lbexit End If End If 生成创建表的SQL语句 With sRecordSet For iI = 0 To .Fields.Count - 1 iFdType = f_FieldType(.Fields(iI).Type) Select Case iFdType Case char , varchar , nchar , nvarchar , varbinary If .Fields(iI).DefinedSize 255 Then iSql = iSql & , & .Fields(iI).Name & text Else iSql = iSql & , & .Fields(iI).Name & & iFdType & _ ( & .Fields(iI).DefinedSize & ) End If Case image Case Else iSql = iSql & , & .Fields(iI).Name & & iFdType End Select Next If sTableName = Then sTableName = .Source iSql = create table & sTableName & ( & Mid(iSql, 2) & ) End With 数据库连接字符串 iConcStr = DRIVER=Microsoft Excel Driver (*.xls);DSN= ;FIRSTROWHASNAMES=1;READONLY=FALSE; & _ CREATE_DB= & sExcelFileName & ;DBQ= & sExcelFileName 创建Excel文件,并创建表 Set iDB = New ADODB.Connection iDB.Open iConcStr iDB.Execute iSql 插入数据 With sRecordSet .MoveFirst While .EOF = False iSql = iFdlist = For iI = 0 To .Fields.Count - 1 iFdType = f_FieldType(.Fields(iI).Type) If iFdType image And IsNull(.Fields(iI).Value) = False Then iFdlist = iFdlist & , & .Fields(iI).Name & Select Case iFdType Case char , varchar , nchar , nvarchar , text iSql = iSql & , & .Fields(iI).Value & Case datetime iSql = iSql & ,# & .Fields(iI).Value & # Case image Case Else iSql = iSql & , & .Fields(iI).Value End Select End If Next iSql = insert into & sTableName & ( & _ Mid(iFdlist, 2) & ) values( & Mid(iSql, 2) & ) iDB.Execute iSql .MoveNext Wend End With 处理完毕,关闭数据库 iDB.Close Set iDB = Nothing MsgBox 已经将数据保存到 & sExcelFileName & , 64 iRe = Tr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论