<% Option Explicit Sub CheckXlDriver() On Error Resume Next
Dim vConnString Dim oConn, oErr
vConnString = "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=NUL:" ' 连接NUL.
Set oConn = CreateObject("ADODB.Connection") oConn.Open vConnString
For Each oErr in oConn.Errors ' 如果Excel程序报告"文件创建失败",别担心,这表示它正在正常运行呢. If oErr.NativeError = -5036 Then Exit Sub End If Next
Response.Write " MDAC 供应商或驱动程序不可用,请检查或重新安装!<br><br>"
Response.Write hex(Err.Number) & " " & Err.Description & "<br>" For Each oErr in oConn.Errors Response.Write hex(oErr.Number) & " " & oErr.NativeError & " " & oErr.Description & "<br>" Next Response.End
End Sub
Function GetConnection(vConnString) On Error Resume Next
Set GetConnection = Server.CreateObject("ADODB.Connection") GetConnection.Open vConnString
If Err.Number <> 0 Then Set GetConnection = Nothing End If
End Function
Function OptionTag(vChoice,vTrue) Dim vSelected
If vTrue Then vSelected = "selected" End If
OptionTag = "<option " & vSelected & ">" & _ Server.htmlEncode(vChoice) & "</option>" & vbCrLf
End Function
Function IsChecked(vTrue) If vTrue Then IsChecked = "checked" End If End Function
Function BookOptions(vXlFile) Dim vServerFolder Dim oFs, oFolder, oFile
Dim vSelected
vServerFolder = Server.MapPath(".")
Set oFs = Server.CreateObject("Scripting.FileSystemObject") Set oFolder = oFs.GetFolder(vServerFolder)
For Each oFile in oFolder.Files If oFile.Type = "Microsoft Excel Worksheet" Then vSelected = (oFile.Name = vXlFile)
BookOptions = BookOptions & _ OptionTag(oFile.Name, vSelected) End If Next Set oFolder = Nothing Set oFs = Nothing
End Function
Function NamedRangeOptions(oConn, vXlRange, vTableType) Dim oSchemaRs Dim vSelected
NamedRangeOptions = OptionTag(Empty, Empty)
If TypeName(oConn) = "Connection" Then Set oSchemaRs = oConn.OpenSchema(adSchemaTables)
Do While Not oSchemaRs.EOF If oSchemaRs("TABLE_TYPE") = vTableType Then vSelected = (oSchemaRs("TABLE_NAME") = vXlRange) NamedRangeOptions = NamedRangeOptions & _ OptionTag(oSchemaRs("TABLE_NAME"), vSelected)
End If oSchemaRs.MoveNext Loop End If End Function
Function DataTable(oConn, vXlRange, vXlHasheadings) On Error Resume Next Const DB_E_ERRORSINCOMMAND = &H80040E14
Dim oRs, oField Dim vThTag, vThEndTag
If vXlHasheadings Then vThTag = "<th>" vThEndTag = "</th>" Else vThTag = "<td>" vThEndTag = "</td>" End If
DataTable = "<table border=1>"
If TypeName(oConn) = "Connection" Then Set oRs = oConn.Execute("[" & vXlRange & "]")
If oConn.Errors.Count > 0 Then For Each oConnErr in oConn.Errors If oConnErr.Number = DB_E_ERRORSINCOMMAND Then DataTable = DataTable & _ "<tr><td>该范围不存在:</td><th>" & vXlRange & "</th></tr>" Else DataTable = DataTable & _ "<tr><td>" & oConnErr.Description & "</td></tr>" End If Next Else DataTable = DataTable & "<tr>"
For Each oField in oRs.Fields DataTable = DataTable & vThTag & oField.Name & vThEndTag Next
DataTable = DataTable & "</tr>"
Do While Not oRs.Eof DataTable = DataTable & "<tr>"
For Each oField in oRs.Fields DataTable = DataTable & "<td>" & oField.Value & "</td>" Next
DataTable = DataTable & "</tr>" oRs.MoveNext Loop
End If
[1] [2] 下一页 |
请发表评论