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

效果如图所示:

核心代码:

复制代码 代码如下:

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

测试代码打包下载

时间: 2024-09-22 06:22:42

读取Access数据库的vbscript代码打包下载_vbs的相关文章

使用VS2010 C#开发ActiveX控件(下),完整代码打包下载_C#教程

其实如果我们不进行设置,只是修改了代码,运行程序以后,其出错界面如下图1所示: 开发ActiveX控件(下),完整代码打包下载_C#教程-vs2010使用教程 c"> 图1 抛出异常如下: ************** Exception Text ************** System.MethodAccessException: Attempt by security transparent method 'Rare.Card.Libary.Controls. ReadCardCo

ASP.NET 2.0中随机读取Access数据库记录

[导读]由于使用ADO访问Access数据库会有缓存,这在随机提取数据库数据时,例如:sql="select top 10 Title,objectGuid from Document Order By Rnd(id)",将得不到随机记录,本文中给出的例子可以克服这一缺陷,实现数据库的随机读取. 由于使用ADO访问Access数据库会有缓存,这在随机提取数据库数据时,例如:sql="select top 10 Title,objectGuid from Document Or

php-在linux下 需要PHP读取 access数据库。请问怎么解决?

问题描述 在linux下 需要PHP读取 access数据库.请问怎么解决? 目前的需求就是这样.要读取.mdb文件.如何解决?win下当然可以.现在就是想在linux下实现. 查了一下,都说不可能.但是我不死心. 解决方案 linux下还是用sqlite3等数据库吧,可以跨平台支持windows,linux

powerbuilder+access数据库,powerbuilder读取access数据库,存在延迟

问题描述 powerbuilder+access数据库,powerbuilder读取access数据库,存在延迟 一个C/S的客户端向access数据库写入数据,写入成功后,powerbuilder立即读取该access数据库,但是读取的过程中有两秒以上的延迟,求高手指点原因???????asp做的网页版的页面读取该access数据库,并不存在延迟的问题.求高手指点呀,为什么网页版读取该数据库没有延迟,而powerbuilder读取该数据库 存在延迟现象呢?????????? 解决方案 写入数据

linux环境下c++读取access数据库方法

问题描述 linux环境下c++读取access数据库方法 RT,还可以保证跨平台,在win环境中也可以编译运行的方法,先谢谢各位了 解决方案 好偏门,好冷门啊~我也想知道该怎么弄

数据库连接-access 数据库asp连接代码 该sql2005连接代码 怎么改?

问题描述 access 数据库asp连接代码 该sql2005连接代码 怎么改? 以下是连接access数据库代码,如果要改成连接SQL数据库代码,应该怎么改? SQL2005数据库实例名:newdata 数据库用户名:sa 密码:888888 <% On Error Resume Next c_type=1 if c_type =1 then db="aaa/bbb.mdb"'这里修改数据库路径或名称 Set conn = Server.CreateObject("A

access数据库-C#treeview控件读取ACCESS数据库数据并显示

问题描述 C#treeview控件读取ACCESS数据库数据并显示 C#中treeview控件读取ACCESS数据库数据并显示,急求急求急求急求急求急求 解决方案 支持任意数据库http://blog.csdn.net/xianfajushi/article/details/7756584 解决方案二: http://wenku.baidu.com/link?url=wmhiqcblgkcgVwQw9-mvCuAD0WG3AA8k87fHuHb0j3wPUTz41huk-TGUbmCagBZhd

jdbc在读取access数据库中中文数据时出现的字符长度错误问题

问题描述 在进行java连接access数据库进行读取数据的时候原有数据限制了长度为varchar(12)在officeaccess界面直接输入了12个中文汉字但是在读取进入java后变成了原来的一半java工程字符集配置是utf-8在读取的时候设置了连接的参数字符集为GBK将java项目字符集改成GBK同样会出现这个问题请问一下有没有人知道为什么会出现这种情况并且如何解决注:同样条件下mysql就没有问题是不是access记录在写的时候按中文的字符长度算的在读取到java后按照字节的长度算的所

asp 随机读取ACCESS数据库记录的方法

检查了一些贴子对于MSSQL数据库教程一般可以采用这样的语句: 方法三:有这样一种方法,我觉的不错: <% yourstr="*1*3*4*6*12*...." sql="select top 10 * form yourdb where instr('*'&id&'*','"&yourstr&"')<>0" %> yourstr可以生成随机数多一点大于所限定抽取的随机数为好,这样可以排除记