Dim mydatabase As Database
Set mydatabase = Workspaces(0).OpenDatabase("fh.mdb")
strsql = " DROP table " & txtFields(0).Text
mydatabase.Execute strsql我现在一次只能删一个表,然后再点击删除后就出错提示
实时错误’3211‘
由于表XXX已经被别的用户或进程使用,导致数据库引擎不能锁定它怎么回事啊,我该怎么办,大家快帮我想想办法

解决方案 »

  1.   

    txtFields(0).Text  如果这个名字没改变,再次删除肯定会出错。建议先检查表是否存在,再删除。
      

  2.   


    加上以下句,刷新表名。
    dim rstchema as adodb.recordset
    set rstchema=conn.openschema(adschematables)
    do until rstchema.eof
       listbiao.additem rstchema!table_name
       rstschem.movenext
    loop
      

  3.   

    一个窗体上有2个data控件,data1\data2的数据源是两个ACCESS文件user.mdb\fh.mdb,txtFields(0).Text绑定了data1中的一个名为“表名称”的字段,data2则存放了大量的名为这些“表名称”的表,同时DATA2也绑定了这个窗体上的一个网格控件,单击上下移动按钮时窗体上同步显示了两个ACCESS表的内容,并不断变化,始终同步按程序设计思想来说,当单击窗体上的删除按钮后,程序会把data1的当前纪录删除掉,并同时在data2中找到与txtFields(0).Text名称相同的表删除掉,保证了data1\data2纪录数始终相同我现在情况是,一次只能删除一个表,再删除就会出错,非得要退出程序后重进进入,再删时还是只能删一个
    如果一开始就单击了上下移动,那么一开始就不能被删除了提示的错误信息是
    实时错误’3211‘
    由于表XXX已经被别的用户或进程使用,导致数据库引擎不能锁定它可能比较乱,我也说不太清楚,分不够我再加!!!!!!!
      

  4.   

    原因找到了,是因为每按一次按钮data2.refresh缘故,但是如果不用data2.refesh,我就没有办法同步显示,有人告诉我怎么办吗?
      

  5.   

    楼上的朋友,两个ACCESS库的数据要求必须要能同步显示在窗体上,所以用了data2.refesh使得当Data1内容改变时,Data2也在同步改变.而当Data2.refesh执行后,再到Data2中删除表操作就失败了,提示“实时错误3211,由于表XXX已经被别的用户或进程使用,导致数据库引擎不能锁定它”,现在问题是怎样使得我在DATA2刷新后,我删除里面的表不失败!!
      

  6.   

    快救救我啊,我快疯了,
    问题是怎样使得我在DATA2刷新后,我删除里面的表不失败!!