分享

window 系统菜单项全(2)

 悟静 2009-07-28

''=============================================  
  ''名称:   FindPath  
  ''作用:   查找指定文件夹下面的所有文件和其子目录下的文件  
  ''参数:strPath   要查找的目录,  
  ''             strFiles   用于存查找结果的缓冲区,String   类型的动态数组,调用时事先初始化,   如Redim   strFiles(0)  
  ''             FileCount   用于返回文件个数  
  ''=============================================  
  Public   Sub   FindPath(ByVal   strPath   As   String,   strFiles()   As   String,   FileCount   As   Long)  
  Dim   strDirs()       As   String  
  Dim   strResult       As   String  
  Dim   FileLimit       As   Long  
  Dim   dirLimit         As   Long  
  Dim   dirCount         As   Long  
  Dim   I                       As   Long  
           
          FileLimit   =   UBound(strFiles)   +   1  
          dirLimit   =   0  
          If   Right$(strPath,   1)   <>   "\"   Then   strPath   =   strPath   &   "\"  
          strResult   =   Dir(strPath,   vbDirectory   +   vbSystem   +   vbReadOnly   +   vbHidden   +   vbNormal   +   vbArchive)  
          Do   While   Len(strResult)   >   0  
                  If   strResult   <>   "."   And   strResult   <>   ".."   Then  
                          If   (GetAttr(strPath   &   strResult)   And   vbDirectory)   <>   vbDirectory   Then  
                                  If   FileCount   >=   FileLimit   Then  
                                          ReDim   Preserve   strFiles(FileLimit   +   10)  
                                          FileLimit   =   FileLimit   +   10  
                                  End   If  
                                  strFiles(FileCount)   =   strPath   &   strResult  
                                  FileCount   =   FileCount   +   1  
                          Else  
                                  If   dirCount   >=   dirLimit   Then  
                                          ReDim   Preserve   strDirs(dirLimit   +   10)  
                                          dirLimit   =   dirLimit   +   10  
                                  End   If  
                                  strDirs(dirCount)   =   strPath   &   strResult  
                                  dirCount   =   dirCount   +   1  
                          End   If  
                  End   If  
                  strResult   =   Dir(,   vbDirectory   +   vbSystem   +   vbReadOnly   +   vbHidden   +   vbNormal   +   vbArchive)  
          Loop  
           
          For   I   =   0   To   dirCount   -   1  
                  Call   FindPath(strDirs(I),   strFiles,   FileCount)  
          Next   I  
  End   Sub  
  Top

88 楼xieyj(如果有一天...)回复于 2002-12-20 12:28:27 得分 0

从VB将数据导出到EXCEL,网上可能有很多这样的代码,但是前提都要安装EXCEL,今天我分享给大家的就是没有安装EXCEL的一样也可以导出.  
  Rem   作者:谢炎锦     创建时间:2002-12-20       Mail:XieYanJin@163.Com  
  Rem   内容如下:  
  Rem   引用方式:   Export(Ado.Recordset)   或   Export(Rds.RecordSet)  
  Rem   支持   Rds   与   Ado   的记录导出  
  Rem   得到所有数据类型,有些数据类型EXCEL不支持,已经替换掉  
   
  Public   Function   FieldType(intType)  
        Select   Case   intType  
              Case   20  
                    FieldType   =   "int"  
              Case   128  
                    FieldType   =   "binary"  
              Case   11  
                    FieldType   =   "bit"  
              Case   129  
                    FieldType   =   "char"  
              Case   135  
                    FieldType   =   "datetime"  
              Case   131  
                    FieldType   =   "varchar"  
              Case   5  
                    FieldType   =   "float"  
              Case   205  
                    FieldType   =   "image"  
              Case   3  
                    FieldType   =   "int"  
              Case   6  
                    FieldType   =   "money"  
              Case   130  
                    FieldType   =   "char"  
              Case   203  
                    FieldType   =   "text"  
              Case   131  
                    FieldType   =   "numeric"  
              Case   202  
                    FieldType   =   "varchar"  
              Case   4  
                    FieldType   =   "real"  
              Case   135  
                    FieldType   =   "datetime"  
              Case   2  
                    FieldType   =   "int"  
              Case   6  
                    FieldType   =   "money"  
              Case   204  
                    FieldType   =   "varchar"  
              Case   201  
                    FieldType   =   "text"  
              Case   128  
                    FieldType   =   "timestamp"  
              Case   17  
                    FieldType   =   "varchar"  
              Case   72  
                    FieldType   =   "varchar"  
              Case   204  
                    FieldType   =   "varbinary"  
              Case   200  
                    FieldType   =   "varchar"  
          End   Select  
  End   Function  
  Public   Sub   ExportToExcel(AdoRecordSet   As   ADODB.Recordset)  
  On   Error   GoTo   Excel_Err  
          Dim   Excel_Dsn   As   String  
          Dim   Excel_Conn   As   New   ADODB.Connection  
          Dim   Excel_Adodc   As   New   ADODB.Recordset  
          Dim   mySql   As   String  
          Dim   i,   j,   TmpField,   FileName  
          Rem   得到文件名  
        For   i   =   0   To   100  
                  If   Len(i)   =   1   Then  
                          FileName   =   "C:\Query_0"   &   i  
                  Else  
                          FileName   =   "C:\Query_"   &   i  
                  End   If  
                  If   Dir(FileName   &   ".xls",   vbHidden)   =   ""   Then  
                          Exit   For  
                  End   If  
          Next  
          FileName   =   FileName   &   ".xls"  
          Excel_Dsn   =   "DRIVER={Microsoft   Excel   Driver   (*.xls)};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB="""   &   FileName   &   """;DBQ="   &   FileName  
          Excel_Conn.Open   Excel_Dsn  
          With   AdoRecordSet  
                  If   Not   (.EOF   And   .BOF)   Then  
                          mySql   =   "Create   Table   [Query]   ("  
                          For   i   =   0   To   .Fields.Count   -   1  
                                  TmpField   =   FieldType(.Fields(i).Type)  
                                  If   TmpField   =   "char"   Or   TmpField   =   "varchar"   Or   TmpField   =   "nchar"   Or   TmpField   =   "nvarchar"   Or   TmpField   =   "varbinary"   Then  
                                          If   .Fields(i).DefinedSize   >=   256   Then  
                                                  mySql   =   mySql   &   Trim(.Fields(i).Name)   &   "   text,"  
                                          Else  
                                                  mySql   =   mySql   &   Trim(.Fields(i).Name)   &   "   "   &   FieldType(.Fields(i).Type)   &   "("   &   .Fields(i).DefinedSize   &   ")"   &   ","  
                                          End   If  
                                  ElseIf   TmpField   <>   "image"   Then  
                                          mySql   =   mySql   &   Trim(.Fields(i).Name)   &   "   "   &   FieldType(.Fields(i).Type)   &   ","  
                                  End   If  
                          Next  
                          mySql   =   Left(Trim(mySql),   Len(Trim(mySql))   -   1)  
                          mySql   =   mySql   &   ")"  
                          Rem   创建表名  
                          Excel_Adodc.Open   mySql,   Excel_Dsn,   adOpenDynamic,   adLockPessimistic  
                          Rem   插入数据  
                          For   i   =   0   To   .RecordCount   -   1  
                                  mySql   =   "Insert   into   [Query]   Values("  
                                  For   j   =   0   To   .Fields.Count   -   1  
                                          TmpField   =   FieldType(.Fields(j).Type)  
                                          Rem   Image   不作保存  
                                          If   TmpField   <>   "image"   Then  
                                                  If   IsNull(.Fields(j).Value)   Then  
                                                          mySql   =   mySql   &   "NULL,"  
                                                  Else  
                                                          mySql   =   mySql   &   "'"   &   .Fields(j).Value   &   "',"  
                                                  End   If  
                                          End   If  
                                  Next  
                                  mySql   =   Left(Trim(mySql),   Len(Trim(mySql))   -   1)  
                                  mySql   =   mySql   &   ")"  
                                  Excel_Adodc.Open   mySql,   Excel_Dsn,   adOpenDynamic,   adLockPessimistic  
                                  .MoveNext  
                          Next  
                          MsgBox   "系统提示:"   &   Chr(13)   &   "   已经将文件保存到   [   "   &   FileName   &   "   ]",   64,   "系统信息:"  
                  End   If  
          End   With  
        Excel_Conn.Close  
          Set   Excel_Conn   =   Nothing  
          Set   Excel_Adodc   =   Nothing  
  Exit   Sub  
  Excel_Err:  
          MsgBox   "发生错误:"   &   Err.Description   &   Chr(13)   &   "错误代码:"   &   Err.Number,   64,   "系统信息:"End   Sub  
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多