比如说 一个用户登陆  表中 用户名 是主键.
我向里面添加一条已经存在的记录. 用
conn.execute "insert into ..."
形式.
这样就会出现问题.
 用什么方法可以让他出现问题不报错,而又能判断是否添加成功???谢谢 高手!

解决方案 »

  1.   

    on error goto err
     conn.excute "insert..."
     msgbox "successfull"
     exit sub
    err:
     msgbox "fail" & err.description
    end sub
      

  2.   

    没有更好的办法吗? 不用异常捕获?能不能告诉我conn.execute 这个方法的具体情况?
     好象可以有三个参数......
      

  3.   

    on error goto err
     conn.excute "insert..."
      '正常
     exit sub
    err:
      '你自己写错误处理
    end sub
      

  4.   


    貌似以上两种方法都可以,如果你想在EXECUTE的参数上做文章则有点缘木求鱼的味道了
    command.Execute RecordsAffected, Parameters, Options返回值返回 Recordset 对象引用。参数RecordsAffected   可选,长整型变量,提供者向其返回操作所影响的记录数目。RecordsAffected 参数仅应用于操作查询或存储过程。RecordsAffected 不返回由返回结果的查询或存储过程所返回的记录数目。详细信息,请使用 RecordCount 属性。Parameters   可选,变体型数组,使用 SQL 语句传送的参数值。(用该参数传送时输出参数将不返回正确值。)Options   可选,长整型值,指示提供者如何计算 Command 对象的 CommandText 属性。该值可为下列常量之一:常量 说明 
    AdCmdText 指示提供者应按命令的文本定义(如 SQL 语句)来计算 CommandText。 
    AdCmdTable 指示 ADO 应生成 SQL 查询以便从 CommandText 命名的表中返回所有行。 
    AdCmdTableDirect 指示提供者应从 CommandText 命名的表中返回所有行。 
    AdCmdStoredProc 指示提供者应按存储过程计算 CommandText。 
    AdCmdUnknown 指示 CommandText 中的命令类型未知。 
    adAsyncExecute 指示命令应异步执行。 
    adAsyncFetch 指示对由 CacheSize 属性指定的初始数量之后的剩余行应使用异步提取