注册 登录
编程论坛 ASP技术论坛

asp导入excel如何split分隔名字后分别插入

soso辉 发布于 2013-12-09 12:00, 700 次点击
用asp导入一个excel表到access,excel表里面有一栏姓名和身份证
卡号        姓名         身份证
0025689   张三;王五   440155199206304215
0025690   李四        440155199206304356

现在想要当遇到姓名有分号分隔的,分开两条数据分别写入数据库,应该怎样写呢?

程序代码:
    '获取第一个sheet的名称
    Set rsb=conn2.OpenSchema(20)
    TableName = rsb("Table_name")
    rsb.Close
    sql = "SELECT * FROM [" & TableName & "]"      '要导入的Excel数据里面的表的名称,后面一定要加$
    set rs = conn2.execute(sql)
    i=0
    j=0
    while not rs.eof
    mwBirthday="10-01"
    mwPhones="13265981036"
        for k=0 to ubound(mwNames)
        sqln = "insert into mwVip([mwVtype],[mwCard],[mwName],[mwNum],[mwRhfs],[mwRhtime],[mwFk],[mwJh],[mwNc],[mwPhone],[mwWy],[mwAddress],[mwSyjf],[mwBirthday],[mwRoom],[mwHandle]) values('"&fixsql(mwVtype)&"','"& fixsql(rs(1)) &"','"& mwNames(0) &"','"& mwNums(0) &"','1','"& fixsql(rs(4)) &"','"& mwFk &"','"& mwJh &"','"& fixsql(rs(7)) &"','"& fixsql(rs(8)) &"','"& mwPhones &"','"& fixsql(rs(10)) &"','"& fixsql(rs(12)) &"','"& fixsql(mwBirthday) &"','"& fixsql(rs(11)) &"','"& fixsql(mwHandle) &"')"
        response.Write sqln&"<br/>"
        next
    rs.movenext
    wend


上面是循环写入的代码,输出sqln后发现会出现一个名字重复循环多次的问题
4 回复
#2
ysf01812013-12-09 13:44
mwNames(0)   改为 mwNames(k)
#3
soso辉2013-12-09 14:00
回复 2楼 ysf0181
改了,出现了这样的问题

类型不匹配: 'ubound'
/fsclub/adminFoShanBL/ExcelIn.asp,行 78

78        for i=0 to ubound(mwNames)
79        sqln = "insert into mwVip([mwVtype],[mwCard],[mwName],[mwNum],[mwRhfs],[mwRhtime],[mwFk],[mwJh],[mwNc],[mwPhone],[mwWy],[mwAddress],[mwSyjf],[mwBirthday],[mwRoom],[mwHandle]) values('"&fixsql(mwVtype)&"','"& fixsql(rs(1)) &"','"& mwNames(i) &"','"& mwNums(0) &"','1','"& fixsql(rs(4)) &"','"& mwFk &"','"& mwJh &"','"& fixsql(rs(7)) &"','"& fixsql(rs(8)) &"','"& mwPhones &"','"& fixsql(rs(10)) &"','"& fixsql(rs(12)) &"','"& fixsql(mwBirthday) &"','"& fixsql(rs(11)) &"','"& fixsql(mwHandle) &"')"      
80        next
#4
ysf01812013-12-09 15:04
加个判断啊。

if instr(变量,",") > 0 then


else

end if
#5
soso辉2013-12-09 16:47
回复 4楼 ysf0181
在哪加呢??
if instr(mwNames,";") > 0 then
        for i=0 to ubound(mwNames)
        sqln = "insert into mwVip([mwVtype],[mwCard],[mwName],[mwNum],[mwRhfs],[mwRhtime],[mwFk],[mwJh],[mwNc],[mwPhone],[mwWy],[mwAddress],[mwSyjf],[mwBirthday],[mwRoom],[mwHandle]) values('"&fixsql(mwVtype)&"','"& fixsql(rs(1)) &"','"& mwNames(i) &"','"& mwNums(0) &"','1','"& fixsql(rs(4)) &"','"& mwFk &"','"& mwJh &"','"& fixsql(rs(7)) &"','"& fixsql(rs(8)) &"','"& mwPhones &"','"& fixsql(rs(10)) &"','"& fixsql(rs(12)) &"','"& fixsql(mwBirthday) &"','"& fixsql(rs(11)) &"','"& fixsql(mwHandle) &"')"      
        next
end if

这样??会报错饿!
类型不匹配: 'mwNames'
1