操作描述:excel2007 中使用vba 操纵oracle
sql = "select max(operatorid)+1 newoper from ac_operatorrole"
rs.Open sql, conn
newOper = rs("newoper")环境描述1:excel 2010,oracle10g,客户端oralce10g,单数据库
此环境执行无错误
环境描述2:excel2007 ,oracle10g,客户端oracle9i,集群数据库错误描述:rs("newoper")报错,错误是由于没有执行 sql,也就没有了结果集错误分析:1. 不包含max的sql可以正常执行,原因不是集群导致
2. 怀疑是excel版本,或者oracle客户端版本导致,还未测试
请有过类似问题经验的高手不吝赐教,有自己想法的兄弟姐妹也发表下意见,相信集体的力量,谢过先
sql = "select max(operatorid)+1 newoper from ac_operatorrole"
rs.Open sql, conn
newOper = rs("newoper")环境描述1:excel 2010,oracle10g,客户端oralce10g,单数据库
此环境执行无错误
环境描述2:excel2007 ,oracle10g,客户端oracle9i,集群数据库错误描述:rs("newoper")报错,错误是由于没有执行 sql,也就没有了结果集错误分析:1. 不包含max的sql可以正常执行,原因不是集群导致
2. 怀疑是excel版本,或者oracle客户端版本导致,还未测试
请有过类似问题经验的高手不吝赐教,有自己想法的兄弟姐妹也发表下意见,相信集体的力量,谢过先
改成
sql = "select max(operatorid)+1,newoper from ac_operatorrole"
sql = "select max(operatorid) as newoper from ac_operatorrole"
rs.Open sql, conn
if rs.recordount=0 then
newOper=1
else
if not isnull(rs!newoper) then
newOper=rs!newoper + 1
else
newOper=1
end if
end if
sql = "select max(operatorid) as newoper from ac_operatorrole"
rs.Open sql, conn
if rs.recordount=0 then
newOper=1
else
if not isnull(rs!newoper) then
newOper=rs!newoper + 1
else
newOper=1
end if
end if
sql = "select max(operatorid) as newoper from ac_operatorrole"
rs.Open sql, conn
if rs.recordount=0 then
newOper=1
else
if not isnull(rs!newoper) then
newOper=rs!newoper + 1
else
newOper=1
end if
end if
解决描述:环境问题,客户端改成oracle10g ,问题解决