首页 > 编程资源分享区 > C/C++源代码共享 > [原创]VBS操作Access数据库
2006
03-18

[原创]VBS操作Access数据库

windows脚本功能的强大是有目共睹的!

这里发个操作文本文件和Access数据库的例子!以后会陆续发些实用的脚本!

[code]
'程序名称    :  IpToDateBase.VBS


'程序功能    :  将文本文件中的IP地址转换到数据库文件中
'程序版本    :  1.0


'程序编写者  :   XStar 1/19/2003
'程序编写时间:  1/19/2003
'最后修改时间:  1/19/2003


'输入文件格式  :  IPBegin IPEnd [地区] [说明]
'数据库文件格式:  IPAddress(ID,IPBegin,IPEnd,Area,Explain)


Dim inTextFile,outDateFile
Dim Conn,ConnStr,SQL
Dim FSO,oFile,LineInfo,aInfo


MsgBox "开始转换!"&vbCrLf&"请确保IP.TXT和MyDate.MDB文件格式的正确性!"&vbCrLf&vbCrLf&"*1/19/2003 XStar*"


inTextFile="IP.TXT"
outDateFile="MyDate.MDB"
aInfo=Array(15,15,20,30)


Set Conn=CreateObject("ADODB.Connection")
ConnStr="DBQ="&outDateFile&";Driver={Microsoft Access Driver (*.mdb)};"
Conn.Open ConnStr


Set FSO=CreateObject("Scripting.FileSystemObject")
Set oFile=FSO.OpenTextFile(inTextFile)


Do While oFile.AtEndOfStream <> TRUE
    LineInfo=oFile.ReadLine
    aInfo=Split(LineInfo," ",-1,vbTextCompare)
    '替换空的项
    aInfo(2)=Replace(aInfo(2),"[","")
    aInfo(3)=Replace(aInfo(3),"[","")
    aInfo(2)=Replace(aInfo(2),"]","")
    aInfo(3)=Replace(aInfo(3),"]","")
    '插入数据
    If aInfo(2)="" And aInfo(3)="" Then
        SQL="Insert Into IPAddress(IPBegin,IPEnd) Values('"&aInfo(0)&"','"&aInfo(1)&"')"
    ElseIf aInfo(2)="" Then
        SQL="Insert Into IPAddress(IPBegin,IPEnd,Explain) Values('"&aInfo(0)&"','"&aInfo(1)&"','"& aInfo(3)&"')"
    ElseIf aInfo(3)="" Then
        SQL="Insert Into IPAddress(IPBegin,IPEnd,Area) Values('"&aInfo(0)&"','"&aInfo(1)&"','"& aInfo(2)&"')"
    Else
        SQL="Insert Into IPAddress(IPBegin,IPEnd,Area,Explain) Values('"&aInfo(0)&"','"&aInfo(1)&"','"& aInfo(2)&"','"&aInfo(3)&"')"
    End If


    Conn.Execute SQL
Loop


oFile.Close
Conn.Close


MsgBox "恭喜!数据转换结束!"&vbCrLf&vbCrLf&"*1/19/2003 XStar*"

[/code]

文本文件的内容!(部分)
[code]
003.000.000.000 003.255.255.255 [美国] [新泽西通用电气公司]
010.000.000.000 010.001.255.255 [中国] [169网中心]
010.000.000.000 010.255.255.255 [中国] [169用户]
010.000.018.000 010.000.020.255 [中国] [169网中心]
010.002.000.000 010.009.255.255 [北京] [169用户]
010.002.001.000 010.002.001.255 [北京] [169电信]
010.002.012.000 010.002.012.255 [北京] [169电信]
010.002.064.000 010.002.064.255 [北京] [169电信]
......
[/code]

Access数据库格式
[code]
IPAddress( ID, IPBegin, IPEnd, Area, Explain )
其中:
ID         长整型 自动编号
IPBegin  文本型 15字符 开始的IP地址
IPEnd    文本型 15字符 结束的IP地址
Area      文本型 20字符 地区&区域
Explain   文本型 30字符 关于该IP的说明
[/code]

Good Luck!


留下一个回复