当前位置: 首页 > 图文教程 > 脚本技术 > VBScript > excel2access vbs脚本

VBScript
vbs在网页中显示服务
vbs得没公开对象
unpack.vbs
使用批处理文件异地备份数据库(最近几天的数据)
VBScript 中的字节数据操作函数
切换dos并dir的vbs
杀毒的对vbs相当敏感 免杀
多进程的vbs脚本
Windows管理脚本学习
15分钟提醒一次,珍惜时间啊
从一个VBS脚本学习一点点东西
exe2swf 工具(Adodb.Stream版)
使用脚本自动修改ip设置
深入挖掘Windows脚本技术
用VBSCRIPT控制ONSUBMIT事件
VBS中Select CASE的其它用法
vbscript 可以按引用传递参数吗?
下载文件到本地运行的vbs
飘叶千夫指源代码,又称qq刷屏器
SendKeys参考文档

VBScript 中的 excel2access vbs脚本


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 85 ::
收藏到网摘: n/a

复制代码 代码如下:

'脚本说明
'code by NP
'outDateFile变量为要写入的数据库名字
'Tables变量为Access数据库中的表名
'ROW变量为Access数据库中的列名
'Excel中的数据,直接为要写入的数据,不需要标题一类的
'例如:要写入数据库的列名为
' 系别|班别|姓名|学号|性别|政治面貌|出生年月|身份证号码|家庭地址|生源地毕业学校
'而Excel文件中,只需要以下面的例子开头就行了
' 城建系|城建0001|韦XX|071010100111|女|团员|1981/11|451111111111111111|广西xxxxxxxxx|xxxx学校
'数据和列名要对的上号!
'脚本直接双击,更具提示操作
If WScript.Arguments.Count > 0 Then InXlsFile = WScript.Arguments(0)
If InXlsFile = "" Then
InXlsFile = CreateObject("Excel.Application").GetOpenFilename("Excel Files (*.xls), *.xls")
If VarType(Filename) = vbBoolean Then
Wscript.Echo "Excel2Access。" & vbCr & vbLf & vbCr & vbLf & "用法: Excel2Access filename.xls 或在对话框中打开Excel文件。"
WScript.Quit
End If
End If
outDateFile="Excel2Access.mdb" '要转换的数据库名字
Tables="学生信息表" '要创建以及写入的表名
Row="系别,班别,姓名,学号,性别,政治面貌,出生年月,身份证号码,家庭地址,生源地毕业学校" '要创建以及写入的列名,用逗号隔开
Set Fso=CreateObject("Scripting.FileSystemObject")
If Fso.FileExists(outDateFile) Then
Call Writemdb
Else
Set DB = CreateObject("ADOX.Catalog")
DB.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&outDateFile)
Set ADOXTable = CreateObject("ADOX.Table")
ADOXTable.Name = Tables
For Each s In Split(Row, ",", -1, 1)
ADOXTable.Columns.Append s,202 ' 字符串
Next
DB.Tables.Append ADOXTable
Set DB=Nothing
Call Writemdb
End If
Set Fso = Nothing
Sub Writemdb()
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open(InXlsFile)
Set Conn=CreateObject("ADODB.Connection")
ConnStr="DBQ="&outDateFile&";Driver={Microsoft Access Driver (*.mdb)};"
Conn.Open ConnStr
Rows=objExcel.ActiveSheet.UsedRange.Rows.Count
Columns=objExcel.ActiveSheet.UsedRange.Columns.Count
For i= 1 To rows
tmp=""
For j =1 To Columns
If Len(objExcel.Cells(i,j).Value) <> 0 Then
If j<>Columns Then
tmp=tmp&"'"&objExcel.Cells(i,j).Value&"',"
Else
tmp=tmp&"'"&objExcel.Cells(i,j).Value&"'"
'wscript.Echo "Insert Into "&Tables&"("&row&") Values("&tmp&")"
Conn.Execute "Insert Into "&Tables&"("&Row&") Values("&tmp&")"
End If
Else
Exit For
End If
Next
Next
objWorkbook.Close
objExcel.Quit
Conn.Close
Set Conn=Nothing
Set objWorkbook=Nothing
Set objExcel=Nothing
wscript.Echo "处理完毕,请检查是否正常导入"
End Sub