Office中国论坛/Access中国论坛

标题: 求救:无法锁定表 [打印本页]

作者: xwwei    时间: 2008-4-14 12:53
标题: 求救:无法锁定表
[attach]29615[/attach]运行时发生运行时错误“3211”
由于表"345"正被别的用户或进程使用数据库引引擎无法锁定它。
我先前运行过以下代码,其中 456和789为查询,会调用表345,请教如何删除此进程锁定表345
Private Sub Command54_Click()
Dim a As Variant
Dim b As Variant
Dim c As Variant
Dim d As Variant
Dim e As Variant
Dim f As Variant
Dim g As Variant
Dim rst1 As Recordset
Dim rst3 As Recordset
If Me.Combo48 = "" Then
MsgBox "请输入型号"
Else
DoCmd.DeleteObject acTable, 456
DoCmd.OpenQuery "Tact查询", acNormal, acEdit
DoCmd.DeleteObject acTable, 789
DoCmd.OpenQuery "总数查询", acNormal, acEdit


Set rst1 = CurrentDb().OpenRecordset("789")
rst1.MoveFirst
If rst1.EOF = False Then
a = rst1![zs]
Else
a = 0
End If
rst1.Close
a = Int(a * 0.75)

If a <> 0 Then
Set rst3 = CurrentDb().OpenRecordset("456")
rst3.MoveFirst
rst3.MoveNext
b = rst3![Tact]
c = 0
Do
rst3.MoveNext
c = c + 1
If c <= a Then
d = rst3![Tact]
b = b + d
Else
e = b / a
rst3.Close
Exit Do
End If
Loop
Else
e = 0
End If
Me.Text52 = e
End If
DoCmd.Close acQuery, 789
End Sub

[ 本帖最后由 xwwei 于 2008-4-16 10:26 编辑 ]
作者: tmtony    时间: 2008-4-14 13:16
可能执行操作还未执行完,就要删除对象
最好上传你的数据库上来才能看到问题
作者: xwwei    时间: 2008-4-14 13:41
标题: 已上传文件
楼上,我已上传,请先选择右边combo数据后点击“运算”,再在左边选择好相应combo内容点运行,就会出错,不能删除表345
我的数据库是使用链接表进行数据库更新
作者: xwwei    时间: 2008-4-14 20:49
标题: tmtony请教
看一下吧
作者: tmtony    时间: 2008-4-15 10:18
OCBC链接失败啊,能否传上相关文件或暂时以本地表形式
作者: xwwei    时间: 2008-4-15 10:37
我这个系统是连我们网络的
你先运行右边《Tact Calculate Sys》的数据在运行左边《Tact Trace Graph》的数据就会出现此错误信息,一定要选择combo栏中的内容,否则会有提示
作者: xwwei    时间: 2008-4-15 10:38
能否用Lock语句先对表进行锁定
如何写Lock语句?
作者: xwwei    时间: 2008-4-15 20:43
自己顶
作者: tmtony    时间: 2008-4-16 11:41
有否recordset未关闭导致, 我还没找到解决方法
的确会存在你说的问题
只是为什么要删除表,而不是只删除表的内容呢
作者: xwwei    时间: 2008-4-16 11:54
标题: 答复
因为“生成表查询”比较简单,但是生成表查询前需要先删除表。
我通过ODBC链接表链接原数据库,通过查询后生成表生成了本地的我需要的数据,请教,如果按你做法只删除表的内容,那我需要写一段将查询的内容一条一条的写入表内,那有没有直接将查询内容一下子复制到表里的代码,如果能这样,就好办了。是不是?
作者: bonesoup    时间: 2008-4-16 14:44
试试
先delete * fom 表1
再select * into 表1 from 源表
作者: tmtony    时间: 2008-4-17 08:49
可以使用Sql语句 对照两个表中相应的字段将数据写入到临时表中
也可使用recordset逐行写到临时表中




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3