设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1076|回复: 4
打印 上一主题 下一主题

[其它] 为什么不能删除表?老报错!说被占用?

[复制链接]
跳转到指定楼层
1#
发表于 2006-1-25 03:27:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我需要用下面这段代码,来实现按数量生成单个记录以备它用:

Private Sub CmdAdd_Click()
On Error GoTo Err_CmdAdd_Click


    Dim con As Object
    Dim rst As Recordset
    Dim strsql As String
    Set con = Application.CurrentProject.Connection
    strsql = "SELECT * FROM [OrderDetails]"
    Set rst = New ADODB.Recordset
    rst.Open strsql, con, 1

    Dim con1 As Object
    Dim rst1 As Recordset
    Dim strsql1 As String
    Set con1 = Application.CurrentProject.Connection
    strsql1 = "SELECT * FROM [DoorRecord]"
    Set rst1 = New ADODB.Recordset
    rst1.Open strsql1, con1, adOpenKeyset, adLockOptimistic
   
    If (rst.EOF) Then
        MsgBox "No Record In Form OrderDetals"
    Else
        While (Not (rst.EOF))

            For i = 1 To rst("Quantity")
                rst1.AddNew
                rst1("OrderDetailID") = rst("OrderDetailID")
                rst1.Update
                rst1.MoveNext
            Next i
            
        rst.MoveNext
        Wend
    End If
   
    rst.Close
    Set rst = Nothing
    Set con = Nothing

    rst1.Close
    Set rst1 = Nothing
    Set con1 = Nothing

Exit_CmdAdd_Click:
    Exit Sub
   
Err_CmdAdd_Click:
    MsgBox Err.Description
    Resume Exit_CmdAdd_Click
   
End Sub


这段代码是站上某现成作品的,但是因为每次点击按钮,都会把全部都插入一遍,会造成重复记录.

于是我就想在每次开始运行的时候,先把[DoorRecord]清空,这个可以用delete * from [DoorRecord]来实现.但另一个问题又出现了: 因为我的[DoorRecord]的记录号是用的AutoNumber,每次删完,不能(我不会)从0开始,我就试图每次先把表[DoorRecord]删除(DROP TABLE [DoorRecord]),然后再造一遍,再插入记录.但Access总说我的[DoorRecord] "被别的用户或进程使用,数据库引擎无法锁定它",就我一人使用,而且就算把所有其他代码都删掉也不行.那位知道为什么吗? 或者还有什么别的方法可以实现我说的要求?不胜感激![em06][em06][em03][em03][em13][em15]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-1-25 06:19:00 | 只看该作者
是否有引用表[DoorRecord]的窗体或模块正打开着?
3#
 楼主| 发表于 2006-1-25 06:34:00 | 只看该作者
没有啊,我把其他表都关了,本表的所有其他code也都删除了,就留下这么一行,还不行.疯了....看来只好放弃使用[DoorRecord]里的DOORID的AutoNumber了,呵呵,倒不是不行,不甘心啊....5555

感谢你呀...这么久终于有人回帖了...本来心都凉了~~~
4#
发表于 2006-1-26 05:30:00 | 只看该作者
以前我碰到过类似的情况,不过是链接到SQL Server的表,有一个字段设成了Float类型,新输入这个字段值后保存,再修改时就出现“被别的用户使用”的错误。后来是将Float改成了numeric才行了。



最好将例子传上来。
5#
 楼主| 发表于 2006-1-26 13:06:00 | 只看该作者
谢谢,我都是使用的INT啊 ,不过已经用别的方法解决了.谢谢你.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-15 01:27 , Processed in 0.084962 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表