“当对象打开时不允许操作”

问题描述:

当我尝试执行程序时,出现如“当对象打开时不允许操作”的错误。我正在使用vb 6.0和Microsoft Access数据库。这里是源代码“当对象打开时不允许操作”

Private Sub cmdDelete_Click() 
     dtaOverhead.Recordset.Open "Delete from variable where SWACTFM= " & txtEntry(0).Text & " And SWBUDACT = " & txtEntry(1).Text & " And SWREMFM = '" & txtEntry(12).Text & "' And SWACTRAW = " & txtEntry(2).Text & " And SWBUDRAW = " & txtEntry(3).Text & " And SWREMRAW = '" & txtEntry(13).Text & "' And SWACTWHS = " & txtEntry(4).Text & " And SWBUDWHS = " & txtEntry(5).Text & " And SWREMWHS = '" & txtEntry(14).Text & "' And SWACTLAB = " & txtEntry(6).Text & " And SWBUDLAB = " & txtEntry(7).Text & " And SWREMLAB = '" & txtEntry(15).Text & "' And SWACTWORK = " & txtEntry(8).Text & " And SWBUDWORK = " & txtEntry(9).Text & " And SWREMWORK = '" & txtEntry(16).Text & "' And SWACTTOTAL = " & txtEntry(10).Text & " And SWBUDTOTAL = " & txtEntry(11).Text & " And SWREMTOTAL = '" & txtEntry(17).Text & "'" 
     MsgBox "Record deleted successfully !", vbInformation, "Deletion Successful" 
     Call Filllist 
     Call clearall 
     cmdSave.Caption = "&Save" 

End Sub 
+2

请始终使用'{}'按钮格式化您的代码。哪一行失败?您正在调用两个过程,如果其中一个过程中的代码失败,请发布该过程的代码。您可以使用F9设置断点。使用F8遍历代码并找到失败的行。 – Fionnuala 2012-04-18 09:32:45

+0

对不起,你能解释一下我认为我有的那个 – user692495 2012-04-18 09:41:49

+1

的细节。你不明白哪部分? – Fionnuala 2012-04-18 09:58:07

你不能打开一个记录两次(呃,不,无论如何之间关闭它)。

A DELETE通常使用Connection.ExecuteCommand.Execute而不是Recordset.Open来完成。

+0

我认为dtaOverhead是一个DAO控件。你指的是ADO。但是在执行下一个查询之前关闭记录集是正确的。 – Martin 2012-04-18 12:58:26

+0

可怕的想法,但那么通过使用数据控件的记录集(无论是ADO还是DAO)来做类似DELETE的事情。 – Bob77 2012-04-19 11:28:07