Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как удалить запись с помощью рекордсета
 
 автор: deutin   (23.12.2009 в 09:50)   личное сообщение
 
 

Здравствуйте, подскажите пожалуйста как удалить выбранную запись из подчиненной формы с помощью рекордсета

Private Sub cmdDellRecord_Click()
On Error GoTo Err_btnDeleteRecord_Click
    If Me.subfrmNewDoc.Form.CurrentRecord > 0 Then
     Me.subfrmNewDoc.Form.AllowDeletions = True
     Me.subfrmNewDoc.Form.AllowEdits = True
      If MsgBox("Óäàëèòü " & Me.subfrmNewDoc.Form.CurrentRecord & "-þ çàïèñü?", vbYesNo + vbQuestion) = vbYes Then
      DoCmd.SetWarnings False
            Me.subfrmNewDoc.Form.Recordset Delete     
         End If
  End If
  Exit Sub
Err_btnDeleteRecord_Click:
  DoCmd.SetWarnings True
End Sub

  Ответить  
 
 автор: osmor   (23.12.2009 в 10:39)   личное сообщение
 
 

и в чем проблема?

  Ответить  
 
 автор: deutin   (23.12.2009 в 10:59)   личное сообщение
 
 

Почему то неудаляется, может неправильно написал:

Me.subfrmNewDoc.Form.Recordset Delete      

  Ответить  
 
 автор: osmor   (23.12.2009 в 11:24)   личное сообщение
 
 

ну по синтаксису правильно.
Другой вопрос что полученный recordset может не поддерживать удаления.
у вас mdb или adp ?
какие сообщения выдает?

  Ответить  
 
 автор: deutin   (23.12.2009 в 11:36)   личное сообщение
 
 

mdb, вот и дело то, что ничего невыдает, никаких сообщений

  Ответить  
 
 автор: osmor   (23.12.2009 в 12:03)   личное сообщение
 
 

уже не помню, но в MDB свойство recordset имеет какие-то ограничения.
попробуйте вместо recordset использовать recordsetclone
а в чем необходимость использовать recordset? почему не штатное удаление?

  Ответить  
 
 автор: deutin   (23.12.2009 в 13:41)   личное сообщение
 
 

Пробую так: Me.subfrmNewDoc.Form.RecordsetClone Delete выдает ошибку Variable not defined на Delete.
А штатное, это как кнопкой Delete?
Я сначала пробывал так:

DoCmd.DoMenuItem acFormBar, acEditMenu, acSelectRecord, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, acDelete, , acMenuVer70

тоже ничего непроисходит.

  Ответить  
 
 автор: kot_k_k   (23.12.2009 в 13:56)   личное сообщение
 
 

не знаю как для вложенной но у меня для главной формы

Me.Recordset Delete - выдавало ошибку

сделал так

Set rst = Me.Recordset
rst.Delete

прокатило - норамльно удалило из формы и из таблы на основании коей была форма

добавлено:
если стоя на одной и тойже позиции выполнять удаление - без Me.Requery после удаления выдает ошибку.

  Ответить  
 
 автор: deutin   (23.12.2009 в 14:55)   личное сообщение
 
 

Удаляет только вновь созданную запись:
Set rst = Me.Recordset
rst.Delete
А которые уже имелись в базе не удаляет

  Ответить  
 
 автор: deutin   (23.12.2009 в 15:12)   личное сообщение
 
 

Всё удаляет, спасибо, надо было так:


Private Sub cmdDellRecord_Click()
 Dim rst As DAO.Recordset

    Me.subfrmNewDoc.Form.AllowDeletions = True
    Me.subfrmNewDoc.Form.AllowEdits = True
      If MsgBox("Óäàëèòü " & Me.subfrmNewDoc.Form.CurrentRecord & "-þ çàïèñü?", vbYesNo + vbQuestion) = vbYes Then
      DoCmd.SetWarnings False
      
      Set rst = Me.subfrmNewDoc.Form.Recordset
      rst.Delete
                
      End If
  
  DoCmd.SetWarnings True
End Sub

  Ответить  
 
 автор: deutin   (23.12.2009 в 16:31)   личное сообщение
 
 

Хотелось бы еще узнать, а как сделать удаление для вкладок с разными подчиненными формами?

  Ответить  
 
 автор: Гоблин   (23.12.2009 в 23:50)   личное сообщение
 
 

Поясни пожалуста. А зачем рекордсетом удалять из подчиненной. Почему не запросом на удаление? Быстрее? Короче писать? Проще?
И потом почему не просто нажатием del? Из подчиненной ведь так можно. Или связь в таблицах нечто left join?

  Ответить  
 
 автор: kot_k_k   (24.12.2009 в 09:31)   личное сообщение
 
 

как вариант - борьба с пользователями + изыски.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList