Dim cn 'As ADODB.Connection Dim rs 'As ADODB.Recordset Dim intField, intFields 'As Integer Dim strTable 'As String Const adUseClient = 3 'ADODB.CursorLocationEnum Const adUseServer = 2 'ADODB.CursorLocationEnum Const adLockBatchOptimistic = 4 'ADODB.LockTypeEnum Const adLockOptimistic = 3 'ADODB.LockTypeEnum Const adLockPessimistic = 2 'ADODB.LockTypeEnum Const adLockReadOnly = 1 'ADODB.LockTypeEnum Const adSchemaColumns = 4 'ADODB.SchemaEnum Const adSchemaStatistics = 19 'ADODB.SchemaEnum Const adSchemaTables = 20 'ADODB.SchemaEnum Const adOpenDynamic = 2 'ADODB.CursorTypeEnum Const adOpenForwardOnly = 0 'ADODB.CursorTypeEnum Const adOpenKeyset = 1 'ADODB.CursorTypeEnum Const adOpenStatic = 3 'ADODB.CursorTypeEnum Set cn = CreateObject("ADODB.Connection") cn.Provider = "Microsoft.Jet.OLEDB.4.0" cn.Properties("Data Source") = "D:\MYDOCU~1\PROJECTS\ADO\ADO.XLS" cn.Properties("Extended Properties").Value = "Excel 8.0;" _ & "HDR=NO;" _ & "MAXSCANROWS=16;" _ & "IMEX=1;" cn.Open 'Find the biggest worksheet (most used columns?) Set rs = cn.OpenSchema(adSchemaColumns) strTable = "" intField = 0 While Not rs.EOF If rs.Fields("ORDINAL_POSITION") > intField Then If InStr(rs.Fields("TABLE_NAME").Value, "$Print_Area") = 0 Then strTable = rs.Fields("TABLE_NAME").Value intField = rs.Fields("ORDINAL_POSITION") End If End If rs.MoveNext Wend rs.Close Set rs = Nothing 'Open the worksheet Set rs = CreateObject("ADODB.Recordset") rs.ActiveConnection = cn rs.CursorType = adOpenStatic rs.LockType = adLockReadOnly rs.Source = "SELECT * FROM [" & strTable & "]" rs.Open 'Read the worksheet headers intFields = rs.Fields.Count Wscript.Echo "" For intField = 0 To intFields - 1 Wscript.Echo "" Next Wscript.Echo "" 'Read the worksheet body rs.MoveFirst While Not rs.EOF Wscript.Echo "" For intField = 0 To intFields - 1 Wscript.Echo "" Next Wscript.Echo "" rs.MoveNext Wend Wscript.Echo "
" & rs.Fields.Item(intField).Name & "
" & rs.Fields.Item(intField).Value & "
" 'ADO Cleanup rs.Close Set rs = Nothing cn.Close Set cn = Nothing