华域联盟 vbs 读取Access数据库的vbscript代码打包下载

读取Access数据库的vbscript代码打包下载

效果如图所示:




核心代码:


复制代码 代码如下:

Option Explicit

Dim arrTables( ), i, idxTables, intValidArgs

Dim blnContent, blnFieldNames

Dim objConn, objFSO, objRS, objSchema

Dim strConnect, strHeader, strOutput

Dim strFile, strResult, strSQL, strTable

Const adSchemaTables = 20

' Check command line arguments

With WScript.Arguments

If .Unnamed.Count = 1 Then

strFile = .Unnamed(0)

Else

Syntax

End If

blnFieldNames = True

blnContent = True

If .Named.Count > 0 Then

intValidArgs = 0

If .Named.Exists( "T" ) Then

blnFieldNames = False

blnContent = False

intValidArgs = intValidArgs + 1

End If

If .Named.Exists( "TF" ) Then

blnContent = False

intValidArgs = intValidArgs + 1

End If

If intValidArgs <> .Named.Count Then Syntax

End If

End With

' Check if the specified database file exists

Set objFSO = CreateObject( "Scripting.FileSystemObject" )

If Not objFSO.FileExists( strFile ) Then Syntax

Set objFSO = Nothing

' Connect to the MS-Access database

Set objConn = CreateObject( "ADODB.Connection" )

strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile

objConn.Open strConnect

' Search for user tables and list them in an array

Set objSchema = objConn.OpenSchema( adSchemaTables )

idxTables = -1

Do While Not objSchema.EOF

If objSchema.Fields.Item(3).Value = "TABLE" Then

idxTables = idxTables + 1

ReDim Preserve arrTables( idxTables )

arrTables( idxTables ) = objSchema.Fields.Item(2).Value

End If

objSchema.MoveNext

Loop

' List all tables, their column names and their contents

For Each strTable In arrTables

strSQL = "Select * From " & strTable

Set objRS = objConn.Execute( strSQL )

If IsObject( objRS ) Then

' Display the current table's name

If blnContent Then

WScript.Echo """Table: " & strTable & """"

Else

WScript.Echo """" & strTable & """"

End If

If blnFieldNames Then

strOutput = ""

Do While Not objRS.EOF

' Create a header line with the column names and data types

strHeader = ""

For i = 0 To objRS.Fields.Count - 1

strHeader = strHeader & ",""[" _

& GetDataTypeDesc( objRS.Fields.Item(i).Type ) & "] " _

& objRS.Fields.Item(i).Name & """"

Next

strHeader = Mid( strHeader, 2 )

If blnContent Then

' List the fields of the current record in comma delimited format

strResult = ""

For i = 0 To objRS.Fields.Count - 1

strResult = strResult & ",""" & objRS.Fields.Item(i).Value & """"

Next

' Add the current record to the output string

strOutput = strOutput & Mid( strResult, 2 ) & vbCrLf

End If

' Next record

objRS.MoveNext

Loop

' List the results for the current table

WScript.Echo strHeader & vbCrLf & strOutput & vbCrLf

End If

End If

Next

objRS.Close

objSchema.Close

objConn.Close

Set objRS = Nothing

Set objSchema = Nothing

Set objConn = Nothing

Function GetDataTypeDesc( myTypeNum )

Dim arrTypes( 8192 ), i

For i = 0 To UBound( arrTypes )

arrTypes( i ) = "????"

Next

arrTypes(0) = "Empty"

arrTypes(2) = "SmallInt"

arrTypes(3) = "Integer"

arrTypes(4) = "Single"

arrTypes(5) = "Double"

arrTypes(6) = "Currency"

arrTypes(7) = "Date"

arrTypes(8) = "BSTR"

arrTypes(9) = "IDispatch"

arrTypes(10) = "Error"

arrTypes(11) = "Boolean"

arrTypes(12) = "Variant"

arrTypes(13) = "IUnknown"

arrTypes(14) = "Decimal"

arrTypes(16) = "TinyInt"

arrTypes(17) = "UnsignedTinyInt"

arrTypes(18) = "UnsignedSmallInt"

arrTypes(19) = "UnsignedInt"

arrTypes(20) = "BigInt"

arrTypes(21) = "UnsignedBigInt"

arrTypes(64) = "FileTime"

arrTypes(72) = "GUID"

arrTypes(128) = "Binary"

arrTypes(129) = "Char"

arrTypes(130) = "WChar"

arrTypes(131) = "Numeric"

arrTypes(132) = "UserDefined"

arrTypes(133) = "DBDate"

arrTypes(134) = "DBTime"

arrTypes(135) = "DBTimeStamp"

arrTypes(136) = "Chapter"

arrTypes(138) = "PropVariant"

arrTypes(139) = "VarNumeric"

arrTypes(200) = "VarChar"

arrTypes(201) = "LongVarChar"

arrTypes(202) = "VarWChar"

arrTypes(203) = "LongVarWChar"

arrTypes(204) = "VarBinary"

arrTypes(205) = "LongVarBinary"

arrTypes(8192) = "Array"

GetDataTypeDesc = arrTypes( myTypeNum )

End Function

Sub Syntax

Dim strMsg

strMsg = strMsg & vbCrLf _

& "AccessRd.vbs, Version 1.01" & vbCrLf _

& "Display MS Access database (user) tables and, optionally, their contents" _

& vbCrLf & vbCrLf _

& "Usage: CSCRIPT //NOLOGO ACCESSRD.VBS access_db_file [ /T | /TF ]" _

& vbCrLf & vbCrLf _

& "Where: ""access_db_file"" is an MS-Access database file" & vbCrLf _

& " /T list table names only" & vbCrLf _

& " /TF list table and field names only" & vbCrLf _

& " (default is list tables, field names AND contents)" _

& vbCrLf & vbCrLf _

& "Written by Rob van der Woude" & vbCrLf _

& "http://www.robvanderwoude.com"

WScript.Echo strMsg

WScript.Quit(1)

End Sub

使用方法:

AccessRd.vbs, Version 1.01Display MS Access database (user) tables and, optionally, their contents

Usage: CSCRIPT //NOLOGO ACCESSRD.VBS access_db_file [ /T | /TF ]Where: "access_db_file" is an MS-Access database file

/T list table names only

/TF list table and field names only

(default is list tables, field names AND contents)Written by Rob van der Woudehttp://www.robvanderwoude.com

测试代码
打包下载
您可能感兴趣的文章:

本文由 华域联盟 原创撰写:华域联盟 » 读取Access数据库的vbscript代码打包下载

转载请保留出处和原文链接:https://www.cnhackhy.com/16212.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者: sterben

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部