<!--#include file="Cls\ExcelControl.asp"--> <!--#include file="Cls\ExcelControl.asp"--> <% Dim ObjExl,AdoRs Set ObjExl=New ExcelMarker Set AdoRs=con.Execute("select * From Address") Response.ContentType="application/vnd.ms-excel" Response.Write ObjExl.getExcelHtml(AdoRs) AdoRs.Close con.Close Set AdoRs=Nothing Set con=Nothing %>
ExcelControl.asp
<!--#include file="adovbs.inc"--> <% '/**************************/ '/=====ASP的Excel生成类======/ '/=======作者:yms123=========/ '/====(编程论坛ASP版主)======/ '/==编程论坛:bbs.bc-cn.net===/ '/=E-Mail:yms126@vip.bbn.cn==/ '/==MSN:yms126@hotmail.com===/ '/=复制代码请勿删除版权信息==/ Class ExcelMarker '--------' '公开属性' '''''''''' Private mFileName'Excel文件路径和文件名 Private mSheetName'Excel工作表名称 Private mTableName'数据库的表名称 Private mConStr'Excel连接字符串 '--------' '内部属性' '''''''''' Private ObjExcel'Excel对象 Private ObjSheet'工作表对象 Private ObjFso'FSO对象 Private ExlHtml'Excel的HTML对象 Private i,r,c'循环变量 Private ExlCon'Excel连接对象 Private ExlRs'Excel记录集对象 Private AdoStream'ADODB.Stream对象 '----------------' 'Excel类属性初始化' '''''''''''''''''' Private Sub Class_Initialize mFileName="" mSheetName="" mTableName="" ExlHtml="" '初始化连接字符串 mConStr="Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source={FileName};Extended Properties='Excel 8.0;IMEX=1;HDR=NO';" End Sub '--------' '内部方法' '''''''''' Private Function GetExcelSqlField(ObjRs) Dim FSql FSql="" For i=0 To ObjRs.Fields.Count-1 FSql=FSql&ObjRs.Fields(i).Name FSql=FSql&" char("&Len(CStr(ObjRs.Fields(i).Value))&")," Next FSql=Mid(FSql,1,Len(FSql)-1) GetExcelSqlField=FSql End Function '--------' '内部过程 ''''''''' '创建FSO对象 Private Sub CreateFileSystemObject() Set ObjFso=Server.CreateObject("Scripting.FileSystemObject") Set ObjExcel=ObjFso.CreateTextFile(mFileName) End Sub '创建Excel对象 Private Sub CreateExcelApplication() Set ObjExcel=Server.CreateObject("Excel.Application") ObjExcel.DisplayAlerts = False'不显示警告窗口 ObjExcel.Application.Visible=False'不可见 ObjExcel.Workbooks.Add Set ObjSheet=ObjExcel.Worksheets(1) End Sub '创建ADODB.Stream对象 Private Sub CreateADODBStream() Set AdoStream=Server.CreateObject("ADODB.Stream") AdoStream.Type=2 AdoStream.Open End Sub 'ADODB.Stream对象保存文件方法 Private Sub SaveADODBStream() AdoStream.SaveToFile mFileName,2 End Sub '创建ADODB对象 Private Sub CreateADODBObject() Set ExlCon=Server.CreateObject("ADODB.Connection") Set ExlRs=Server.CreateObject("ADODB.RecordSet") ExlCon.Open Replace(mConStr,"{FileName}",mFileName) End Sub '创建Excel工作表(ADODB) Private Sub CreateADODBTable(ObjRs) Dim ExlSql ExlSql="Create table ["&mFileName&"]" ExlSql=ExlSql&"."&mSheetName ExlSql=ExlSql&" ("&GetExcelSqlField(ObjRs)&")" ExlCon.Execute ExlSql End Sub '填充数据到Excel工作表(ADODB) Private Sub FillADODBExcel(ObjRs) ExlRs.Open "select * from ["&mSheetName&"$]" ,ExlCon,adOpenDynamic,adLockOptimistic Do Until ObjRs.EOF ExlRs.AddNew For i=0 To ObjRs.Fields.Count-1 ExlRs.Fields(i).Value=ObjRs.Fields(i).Value Next ExlRs.Update ObjRs.MoveNext Loop End Sub '填充Excel工作表头部信息 Private Sub FillExcelHead(ObjRs) For i=0 To ObjRs.Fields.Count-1 ObjSheet.Cells(1,i+1).Value=ObjRs.Fields(i).Name Next End Sub '填充数据到Excel工作表 Private Sub FillExcelSheet(ObjRs) r=2 Do Until ObjRs.EOF For c=0 To ObjRs.Fields.Count-1 ObjSheet.Cells(r,c+1).Value=ObjRs.Fields(c).Value Next r=r+1 ObjRs.MoveNext Loop End Sub '保存Excel文件 Private Sub SaveExcelFile() ObjSheet.SaveAs mFileName End Sub '生成Excel的HTML表格头部代码 Private Sub MarkHtmlTBHead(ObjRs) ExlHtml="<table>"&Chr(13) ExlHtml=ExlHtml&"<tr>"&Chr(13) For i=0 To ObjRs.Fields.Count-1 ExlHtml=ExlHtml&"<td>"&ObjRs.Fields(i).Name&"</td>"&Chr(13) Next ExlHtml=ExlHtml&"</tr>"&Chr(13) End Sub '生成Excel的HTML表格内容代码 Private Sub MarhHtmlTBBody(ObjRs) Do Until ObjRs.EOF ExlHtml=ExlHtml&"<tr>"&Chr(13) For i=0 To ObjRs.Fields.Count-1 ExlHtml=ExlHtml&"<td>"&ObjRs.Fields(i).Value&"</td>"&Chr(13) Next ExlHtml=ExlHtml&"</tr>"&Chr(13) ObjRs.MoveNext Loop ExlHtml=ExlHtml&"</Table>" End Sub '释放对象方法 Private Sub FreeObject(Obj) Set Obj=Nothing End Sub '--------' '公开过程' '--------' 'FSO方式生成Excel文件 '参数:数据库记录集对象 Public Sub FSOMarkExcel(ObjRs) CreateFileSystemObject MarkHtmlTBHead ObjRs MarhHtmlTBBody ObjRs ObjExcel.Write ExlHtml ObjExcel.Close FreeObject ObjExcel FreeObject ObjFso End Sub 'Excel程序方式生成Excel文件 '参数:数据库记录集对象 Public Sub ExcelApplication(ObjRs) CreateExcelApplication FillExcelHead ObjRs FillExcelSheet ObjRs SaveExcelFile ObjExcel.Quit FreeObject ObjExcel FreeObject ObjSheet End Sub 'ADO方式生成Excel文件 Public Sub ADOMarkExcel(ObjRs) CreateADODBObject CreateADODBTable ObjRs FillADODBExcel ObjRs ExlCon.Close ExlRs.Close FreeObject ExlCon FreeObject ExlRs End Sub 'ADOStream方法生成Excel文件 Public Sub ADOStreamExcel(ObjRs) CreateADODBStream MarkHtmlTBHead ObjRs MarhHtmlTBBody ObjRs AdoStream.WriteText ExlHtml SaveADODBStream AdoStream.Close FreeObject AdoStream End Sub '创建空Excel文件过程 Public Sub EmptyExcelFile(CreateMode,ObjRs) Select Case CreateMode Case "ADODB.Stream" CreateADODBStream MarkHtmlTBHead ObjRs AdoStream.WriteText ExlHtml&"</table>" SaveADODBStream AdoStream.Close FreeObject AdoStream Case "FileObjectSystem" CreateFileSystemObject MarkHtmlTBHead ObjRs ObjExcel.Write ExlHtml&"</table>" ObjExcel.Close FreeObject ObjExcel FreeObject ObjFso End Select End Sub '--------' '公开方法' '''''''''' '返回Excel的HTML代码 Public Function getExcelHtml(ObjRs) MarkHtmlTBHead ObjRs MarhHtmlTBBody ObjRs getExcelHtml=ExlHtml End Function '--------' '属性过程' ''''''''' 'Public Property Let ConnectionString(vData) 'mConStr=vData 'End Property 'Public Property Get ConnectionString(vData) 'ConnectionString=mConStr 'End Property Public Property Let TableName(vData) mTableName=vData End Property Public Property Get TableName() TableName=mTableName End Property Public Property Let SheetName(vData) mSheetName=vData End Property Public Property Get SheetName() SheetName=mSheetName End Property Public Property Let FileName(vData) mFileName=vData End Property Public Property Get FileName() FileName=mFileName End Property End Class %>
adovbs.inc
<% '-------------------------------------------------------------------- ' Microsoft ADO ' ' Copyright (c) 1996-1998 Microsoft Corporation. ' ' ' ' ADO constants include file for VBScript ' '-------------------------------------------------------------------- '---- CursorTypeEnum Values ---- Const adOpenForwardOnly = 0 Const adOpenKeyset = 1 Const adOpenDynamic = 2 Const adOpenStatic = 3 '---- CursorOptionEnum Values ---- Const adHoldRecords = &H00000100 Const adMovePrevious = &H00000200 Const adAddNew = &H01000400 Const adDelete = &H01000800 Const adUpdate = &H01008000 Const adBookmark = &H00002000 Const adApproxPosition = &H00004000 Const adUpdateBatch = &H00010000 Const adResync = &H00020000 Const adNotify = &H00040000 Const adFind = &H00080000 Const adSeek = &H00400000 Const adIndex = &H00800000 '---- LockTypeEnum Values ---- Const adLockReadOnly = 1 Const adLockPessimistic = 2 Const adLockOptimistic = 3 Const adLockBatchOptimistic = 4 '---- ExecuteOptionEnum Values ---- Const adAsyncExecute = &H00000010 Const adAsyncFetch = &H00000020 Const adAsyncFetchNonBlocking = &H00000040 Const adExecuteNoRecords = &H00000080 '---- ConnectOptionEnum Values ---- Const adAsyncConnect = &H00000010 '---- ObjectStateEnum Values ---- Const adStateClosed = &H00000000 Const adStateOpen = &H00000001 Const adStateConnecting = &H00000002 Const adStateExecuting = &H00000004 Const adStateFetching = &H00000008 '---- CursorLocationEnum Values ---- Const adUseServer = 2 Const adUseClient = 3 '---- DataTypeEnum Values ---- Const adEmpty = 0 Const adTinyInt = 16 Const adSmallInt = 2 Const adInteger = 3 Const adBigInt = 20 Const adUnsignedTinyInt = 17 Const adUnsignedSmallInt = 18 Const adUnsignedInt = 19 Const adUnsignedBigInt = 21 Const adSingle = 4 Const adDouble = 5 Const adCurrency = 6 Const adDecimal = 14 Const adNumeric = 131 Const adBoolean = 11 Const adError = 10 Const adUserDefined = 132 Const adVariant = 12 Const adIDispatch = 9 Const adIUnknown = 13 Const adGUID = 72 Const adDate = 7 Const adDBDate = 133 Const adDBTime = 134 Const adDBTimeStamp = 135 Const adBSTR = 8 Const adChar = 129 Const adVarChar = 200 Const adLongVarChar = 201 Const adWChar = 130 Const adVarWChar = 202 Const adLongVarWChar = 203 Const adBinary = 128 Const adVarBinary = 204 Const adLongVarBinary = 205 Const adChapter = 136 Const adFileTime = 64 Const adPropVariant = 138 Const adVarNumeric = 139 Const adArray = &H2000 '---- FieldAttributeEnum Values ---- Const adFldMayDefer = &H00000002 Const adFldUpdatable = &H00000004 Const adFldUnknownUpdatable = &H00000008 Const adFldFixed = &H00000010 Const adFldIsNullable = &H00000020 Const adFldMayBeNull = &H00000040 Const adFldLong = &H00000080 Const adFldRowID = &H00000100 Const adFldRowVersion = &H00000200 Const adFldCacheDeferred = &H00001000 Const adFldIsChapter = &H00002000 Const adFldNegativeScale = &H00004000 Const adFldKeyColumn = &H00008000 Const adFldIsRowURL = &H00010000 Const adFldIsDefaultStream = &H00020000 Const adFldIsCollection = &H00040000 '---- EditModeEnum Values ---- Const adEditNone = &H0000 Const adEditInProgress = &H0001 Const adEditAdd = &H0002 Const adEditDelete = &H0004 '---- RecordStatusEnum Values ---- Const adRecOK = &H0000000 Const adRecNew = &H0000001 Const adRecModified = &H0000002 Const adRecDeleted = &H0000004 Const adRecUnmodified = &H0000008 Const adRecInvalid = &H0000010 Const adRecMultipleChanges = &H0000040 Const adRecPendingChanges = &H0000080 Const adRecCanceled = &H0000100 Const adRecCantRelease = &H0000400 Const adRecConcurrencyViolation = &H0000800 Const adRecIntegrityViolation = &H0001000 Const adRecMaxChangesExceeded = &H0002000 Const adRecObjectOpen = &H0004000 Const adRecOutOfMemory = &H0008000 Const adRecPermissionDenied = &H0010000 Const adRecSchemaViolation = &H0020000 Const adRecDBDeleted = &H0040000 '---- GetRowsOptionEnum Values ---- Const adGetRowsRest = -1 '---- PositionEnum Values ---- Const adPosUnknown = -1 Const adPosBOF = -2 Const adPosEOF = -3 '---- BookmarkEnum Values ---- Const adBookmarkCurrent = 0 Const adBookmarkFirst = 1 Const adBookmarkLast = 2 '---- MarshalOptionsEnum Values ---- Const adMarshalAll = 0 Const adMarshalModifiedOnly = 1 '---- AffectEnum Values ---- Const adAffectCurrent = 1 Const adAffectGroup = 2 Const adAffectAllChapters = 4 '---- ResyncEnum Values ---- Const adResyncUnderlyingValues = 1 Const adResyncAllValues = 2 '---- CompareEnum Values ---- Const adCompareLessThan = 0 Const adCompareEqual = 1 Const adCompareGreaterThan = 2 Const adCompareNotEqual = 3 Const adCompareNotComparable = 4 '---- FilterGroupEnum Values ---- Const adFilterNone = 0 Const adFilterPendingRecords = 1 Const adFilterAffectedRecords = 2 Const adFilterFetchedRecords = 3 Const adFilterConflictingRecords = 5 '---- SearchDirectionEnum Values ---- Const adSearchForward = 1 Const adSearchBackward = -1 '---- PersistFormatEnum Values ---- Const adPersistADTG = 0 Const adPersistXML = 1 '---- StringFormatEnum Values ---- Const adClipString = 2 '---- ConnectPromptEnum Values ---- Const adPromptAlways = 1 Const adPromptComplete = 2 Const adPromptCompleteRequired = 3 Const adPromptNever = 4 '---- ConnectModeEnum Values ---- Const adModeUnknown = 0 Const adModeRead = 1 Const adModeWrite = 2 Const adModeReadWrite = 3 Const adModeShareDenyRead = 4 Const adModeShareDenyWrite = 8 Const adModeShareExclusive = &Hc Const adModeShareDenyNone = &H10 Const adModeRecursive = &H400000 '---- RecordCreateOptionsEnum Values ---- Const adCreateCollection = &H00002000 Const adCreateStructDoc = &H80000000 Const adCreateNonCollection = &H00000000 Const adOpenIfExists = &H02000000 Const adCreateOverwrite = &H04000000 Const adFailIfNotExists = -1 '---- RecordOpenOptionsEnum Values ---- Const adOpenRecordUnspecified = -1 Const adOpenSource = &H00800000 Const adOpenAsync = &H00001000 Const adDelayFetchStream = &H00004000 Const adDelayFetchFields = &H00008000 '---- IsolationLevelEnum Values ---- Const adXactUnspecified = &Hffffffff Const adXactChaos = &H00000010 Const adXactReadUncommitted = &H00000100 Const adXactBrowse = &H00000100 Const adXactCursorStability = &H00001000 Const adXactReadCommitted = &H00001000 Const adXactRepeatableRead = &H00010000 Const adXactSerializable = &H00100000 Const adXactIsolated = &H00100000 '---- XactAttributeEnum Values ---- Const adXactCommitRetaining = &H00020000 Const adXactAbortRetaining = &H00040000 '---- PropertyAttributesEnum Values ---- Const adPropNotSupported = &H0000 Const adPropRequired = &H0001 Const adPropOptional = &H0002 Const adPropRead = &H0200 Const adPropWrite = &H0400 '---- ErrorValueEnum Values ---- Const adErrProviderFailed = &Hbb8 Const adErrInvalidArgument = &Hbb9 Const adErrOpeningFile = &Hbba Const adErrReadFile = &Hbbb Const adErrWriteFile = &Hbbc Const adErrNoCurrentRecord = &Hbcd Const adErrIllegalOperation = &Hc93 Const adErrCantChangeProvider = &Hc94 Const adErrInTransaction = &Hcae Const adErrFeatureNotAvailable = &Hcb3 Const adErrItemNotFound = &Hcc1 Const adErrObjectInCollection = &Hd27 Const adErrObjectNotSet = &Hd5c Const adErrDataConversion = &Hd5d Const adErrObjectClosed = &He78 Const adErrObjectOpen = &He79 Const adErrProviderNotFound = &He7a Const adErrBoundToCommand = &He7b Const adErrInvalidParamInfo = &He7c Const adErrInvalidConnection = &He7d Const adErrNotReentrant = &He7e Const adErrStillExecuting = &He7f Const adErrOperationCancelled = &He80 Const adErrStillConnecting = &He81 Const adErrInvalidTransaction = &He82 Const adErrUnsafeOperation = &He84 Const adwrnSecurityDialog = &He85 Const adwrnSecurityDialogHeader = &He86 Const adErrIntegrityViolation = &He87 Const adErrPermissionDenied = &He88 Const adErrDataOverflow = &He89 Const adErrSchemaViolation = &He8a Const adErrSignMismatch = &He8b Const adErrCantConvertvalue = &He8c Const adErrCantCreate = &He8d Const adErrColumnNotOnThisRow = &He8e Const adErrURLIntegrViolSetColumns = &He8f Const adErrURLDoesNotExist = &He8f Const adErrTreePermissionDenied = &He90 Const adErrInvalidURL = &He91 Const adErrResourceLocked = &He92 Const adErrResourceExists = &He93 Const adErrCannotComplete = &He94 Const adErrVolumeNotFound = &He95 Const adErrOutOfSpace = &He96 Const adErrResourceOutOfScope = &He97 Const adErrUnavailable = &He98 Const adErrURLNamedRowDoesNotExist = &He99 Const adErrDelResOutOfScope = &He9a Const adErrPropInvalidColumn = &He9b Const adErrPropInvalidOption = &He9c Const adErrPropInvalidValue = &He9d Const adErrPropConflicting = &He9e Const adErrPropNotAllSettable = &He9f Const adErrPropNotSet = &Hea0 Const adErrPropNotSettable = &Hea1 Const adErrPropNotSupported = &Hea2 Const adErrCatalogNotSet = &Hea3 Const adErrCantChangeConnection = &Hea4 Const adErrFieldsUpdateFailed = &Hea5 Const adErrDenyNotSupported = &Hea6 Const adErrDenyTypeNotSupported = &Hea7 '---- ParameterAttributesEnum Values ---- Const adParamSigned = &H0010 Const adParamNullable = &H0040 Const adParamLong = &H0080 '---- ParameterDirectionEnum Values ---- Const adParamUnknown = &H0000 Const adParamInput = &H0001 Const adParamOutput = &H0002 Const adParamInputOutput = &H0003 Const adParamReturnValue = &H0004 '---- CommandTypeEnum Values ---- Const adCmdUnknown = &H0008 Const adCmdText = &H0001 Const adCmdTable = &H0002 Const adCmdStoredProc = &H0004 Const adCmdFile = &H0100 Const adCmdTableDirect = &H0200 '---- EventStatusEnum Values ---- Const adStatusOK = &H0000001 Const adStatusErrorsOccurred = &H0000002 Const adStatusCantDeny = &H0000003 Const adStatusCancel = &H0000004 Const adStatusUnwantedEvent = &H0000005 '---- EventReasonEnum Values ---- Const adRsnAddNew = 1 Const adRsnDelete = 2 Const adRsnUpdate = 3 Const adRsnUndoUpdate = 4 Const adRsnUndoAddNew = 5 Const adRsnUndoDelete = 6 Const adRsnRequery = 7 Const adRsnResynch = 8 Const adRsnClose = 9 Const adRsnMove = 10 Const adRsnFirstChange = 11 Const adRsnMoveFirst = 12 Const adRsnMoveNext = 13 Const adRsnMovePrevious = 14 Const adRsnMoveLast = 15 '---- SchemaEnum Values ---- Const adSchemaProviderSpecific = -1 Const adSchemaAsserts = 0 Const adSchemaCatalogs = 1 Const adSchemaCharacterSets = 2 Const adSchemaCollations = 3 Const adSchemaColumns = 4 Const adSchemaCheckConstraints = 5 Const adSchemaConstraintColumnUsage = 6 Const adSchemaConstraintTableUsage = 7 Const adSchemaKeyColumnUsage = 8 Const adSchemaReferentialConstraints = 9 Const adSchemaTableConstraints = 10 Const adSchemaColumnsDomainUsage = 11 Const adSchemaIndexes = 12 Const adSchemaColumnPrivileges = 13 Const adSchemaTablePrivileges = 14 Const adSchemaUsagePrivileges = 15 Const adSchemaProcedures = 16 Const adSchemaSchemata = 17 Const adSchemaSQLLanguages = 18 Const adSchemaStatistics = 19 Const adSchemaTables = 20 Const adSchemaTranslations = 21 Const adSchemaProviderTypes = 22 Const adSchemaViews = 23 Const adSchemaViewColumnUsage = 24 Const adSchemaViewTableUsage = 25 Const adSchemaProcedureParameters = 26 Const adSchemaForeignKeys = 27 Const adSchemaPrimaryKeys = 28 Const adSchemaProcedureColumns = 29 Const adSchemaDBInfoKeywords = 30 Const adSchemaDBInfoLiterals = 31 Const adSchemaCubes = 32 Const adSchemaDimensions = 33 Const adSchemaHierarchies = 34 Const adSchemaLevels = 35 Const adSchemaMeasures = 36 Const adSchemaProperties = 37 Const adSchemaMembers = 38 Const adSchemaTrustees = 39 '---- FieldStatusEnum Values ---- Const adFieldOK = 0 Const adFieldCantConvertValue = 2 Const adFieldIsNull = 3 Const adFieldTruncated = 4 Const adFieldSignMismatch = 5 Const adFieldDataOverflow = 6 Const adFieldCantCreate = 7 Const adFieldUnavailable = 8 Const adFieldPermissionDenied = 9 Const adFieldIntegrityViolation = 10 Const adFieldSchemaViolation = 11 Const adFieldBadStatus = 12 Const adFieldDefault = 13 Const adFieldIgnore = 15 Const adFieldDoesNotExist = 16 Const adFieldInvalidURL = 17 Const adFieldResourceLocked = 18 Const adFieldResourceExists = 19 Const adFieldCannotComplete = 20 Const adFieldVolumeNotFound = 21 Const adFieldOutOfSpace = 22 Const adFieldCannotDeleteSource = 23 Const adFieldReadOnly = 24 Const adFieldResourceOutOfScope = 25 Const adFieldAlreadyExists = 26 Const adFieldPendingInsert = &H10000 Const adFieldPendingDelete = &H20000 Const adFieldPendingChange = &H40000 Const adFieldPendingUnknown = &H80000 Const adFieldPendingUnknownDelete = &H100000 '---- SeekEnum Values ---- Const adSeekFirstEQ = &H1 Const adSeekLastEQ = &H2 Const adSeekAfterEQ = &H4 Const adSeekAfter = &H8 Const adSeekBeforeEQ = &H10 Const adSeekBefore = &H20 '---- ADCPROP_UPDATECRITERIA_ENUM Values ---- Const adCriteriaKey = 0 Const adCriteriaAllCols = 1 Const adCriteriaUpdCols = 2 Const adCriteriaTimeStamp = 3 '---- ADCPROP_ASYNCTHREADPRIORITY_ENUM Values ---- Const adPriorityLowest = 1 Const adPriorityBelowNormal = 2 Const adPriorityNormal = 3 Const adPriorityAboveNormal = 4 Const adPriorityHighest = 5 '---- ADCPROP_AUTORECALC_ENUM Values ---- Const adRecalcUpFront = 0 Const adRecalcAlways = 1 '---- ADCPROP_UPDATERESYNC_ENUM Values ---- '---- ADCPROP_UPDATERESYNC_ENUM Values ---- '---- MoveRecordOptionsEnum Values ---- Const adMoveUnspecified = -1 Const adMoveOverWrite = 1 Const adMoveDontUpdateLinks = 2 Const adMoveAllowEmulation = 4 '---- CopyRecordOptionsEnum Values ---- Const adCopyUnspecified = -1 Const adCopyOverWrite = 1 Const adCopyAllowEmulation = 4 Const adCopyNonRecursive = 2 '---- StreamTypeEnum Values ---- Const adTypeBinary = 1 Const adTypeText = 2 '---- LineSeparatorEnum Values ---- Const adLF = 10 Const adCR = 13 Const adCRLF = -1 '---- StreamOpenOptionsEnum Values ---- Const adOpenStreamUnspecified = -1 Const adOpenStreamAsync = 1 Const adOpenStreamFromRecord = 4 '---- StreamWriteEnum Values ---- Const adWriteChar = 0 Const adWriteLine = 1 '---- SaveOptionsEnum Values ---- Const adSaveCreateNotExist = 1 Const adSaveCreateOverWrite = 2 '---- FieldEnum Values ---- Const adDefaultStream = -1 Const adRecordURL = -2 '---- StreamReadEnum Values ---- Const adReadAll = -1 Const adReadLine = -2 '---- RecordTypeEnum Values ---- Const adSimpleRecord = 0 Const adCollectionRecord = 1 Const adStructDoc = 2 %>