2016-07-30 4 views
0

У меня есть следующий код для кнопки удаления, написанной на Visual Basic в Microsoft Access.Ошибка времени выполнения 3021- нет текущей записи для кнопки удаления

Private Sub Delete_Click() 
If Not (Me.ComputerSubform.Form.Recordset.EOF And Me.ComputerSubform.Form.Recordset.BOF) Then 
    If MsgBox("Are you sure to delete?", vbYesNo) = vbYes Then 
     CurrentDb.Execute "DELETE FROM Computer " & _ 
       " WHERE PCSN=" & Me.ComputerSubform.Form.Recordset.Fields("PCSN") 
     Me.ComputerSubform.Form.Requery  
    End If 
    End If 
End Sub 

Впервые это слово прекрасно. Но когда я пытаюсь удалить другую запись, я столкнусь с «Ошибка времени 3021 времени выполнения - нет текущей записи». Я не мог понять, как код выглядит штрафом для меня, и есть данные. Буду признателен за любую помощь. Благодаря!

P.S. Я сожалею, что не могу опубликовать свой стол, поскольку он содержит много конфиденциальных данных.

+0

После удаления записи в реестре MS-Access dset, я считаю, что вам нужно перейти к следующей строке, чтобы получить доступ к ней успешно. Прошло некоторое время, так как я решил эту проблему, поэтому могут потребоваться некоторые проб и ошибок. –

+0

@ron tornambe Спасибо! Вы правильно переходите к следующей строке, не столкнетесь с этой проблемой. Есть ли способ его решения? – user292965

+0

Попробуйте @dbmitch ответить, но я думаю, что это может привести вас к вершине rs. Вы также можете попробовать Me.ComputerSubform.Form.MoveNext –

ответ

1

Вместо

Me.ComputerSubform.Form.Requery 

Вы должны использовать
Me.ComputerSubform.Form.Recordset.Requery

Это обновит основной набор записей с вашей последней удалить

0

Попробуйте это:

dim rs as dao.recordset 
set rs = currentdb.openrecordset("computers", _ 
dbopendynaset) 
rs.findfirst "[pcsn] = " & _ 
me.computersubform.form!pcsn 
'If pcsn is text instead of a number you need chr(34) 
' on either side 
if rs.nomatch = false then 
    rs.edit 
    rs.delete 
    rs.update 
    rs.close 
me.refresh 
end if 
+0

Извините первое сообщение .... От моего телефона. Нужно выяснить форматирование. –

Смежные вопросы