我在用ADODC连接数据源,DATAGRID绑定ADODC,设置ADODC的RecordSource属性的时候老是提示“关闭对象时,不允许操作”
我的ADODC的RecordSource属性设置为:
     insert  into 安保部排班表 ( 编号,姓名 ) select 编号,姓名 from 员工信息表 where 部门='安保部'

解决方案 »

  1.   

    select 编号,姓名 from 员工信息表 where 部门='安保部'
      

  2.   

    ADODC的RecordSource在执行insert等SQL语句时会出这个错误提示,实际数据已经插入到数据库里了,
    你可以查看一下你的数据里是否有这个记录,原因是ADODC的RecordSource不希望(不支持)你这样写(ADODC1.RecordSource="insert  into ..."),它希望你先update然后,Refresh。与有没有open无关。正确的写法是:
    Adodc1.Recordset.ActiveConnection.Execute = "Insert into..."
      

  3.   

    可不可以帮忙把这句话解释一下,后面的insert语句该怎么写?
    Adodc1.Recordset.ActiveConnection.Execute = "Insert into..."
      

  4.   

    Adodc1.Recordset.ActiveConnection.Execute = "insert into 安保部排班表 ( 编号,姓名 ) select 编号,姓名 from 员工信息表 where 部门='安保部'"
      

  5.   


    由于你在 ADODC 中的 RecordSource 属性设置为:
      insert into 安保部排班表 ( 编号,姓名 ) select 编号,姓名 from 员工信息表 where 部门='安保部'它是一个数据库维护语句,并不能打开记录集。这样:在 ADODC 中的 RecordSource 属性设置为 "SELECT 编号,姓名 FROM 安保部排班表"在 Form_Load 事件中:ADODC1.Recordset.ActiveConnection.Execute "insert into 安保部排班表 (编号,姓名) select 编号,姓名 from 员工信息表 where 部门='安保部'"
    ADODC1.Recordset.Requery
      

  6.   

    这么说根据业务需要,那你还是应把Insert和select两种语句分别写在合适的地方,不要都塞在一起.
      

  7.   

    ADODC1.Recordset.ActiveConnection.Execute "insert into 安保部排班表 (编号,姓名) select 编号,姓名 from 员工信息表 where 部门='安保部' And 编号 Not In (Select 编号 From 安保部排班表)"