|
|
|
| Здравствуйте, подскажите пожалуйста как удалить выбранную запись из подчиненной формы с помощью рекордсета
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
|
| |
|
| |
|
|
|
|
| Почему то неудаляется, может неправильно написал:
Me.subfrmNewDoc.Form.Recordset Delete
|
| |
|
| |
|
|
|
| ну по синтаксису правильно.
Другой вопрос что полученный recordset может не поддерживать удаления.
у вас mdb или adp ?
какие сообщения выдает? | |
|
| |
|
|
|
| mdb, вот и дело то, что ничего невыдает, никаких сообщений | |
|
| |
|
|
|
| уже не помню, но в MDB свойство recordset имеет какие-то ограничения.
попробуйте вместо recordset использовать recordsetclone
а в чем необходимость использовать recordset? почему не штатное удаление? | |
|
| |
|
|
|
| Пробую так: Me.subfrmNewDoc.Form.RecordsetClone Delete выдает ошибку Variable not defined на Delete.
А штатное, это как кнопкой Delete?
Я сначала пробывал так:
DoCmd.DoMenuItem acFormBar, acEditMenu, acSelectRecord, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, acDelete, , acMenuVer70
|
тоже ничего непроисходит. | |
|
| |
|
|
|
| не знаю как для вложенной но у меня для главной формы
Me.Recordset Delete - выдавало ошибку
сделал так
Set rst = Me.Recordset
rst.Delete
прокатило - норамльно удалило из формы и из таблы на основании коей была форма
добавлено:
если стоя на одной и тойже позиции выполнять удаление - без Me.Requery после удаления выдает ошибку. | |
|
| |
|
|
|
| Удаляет только вновь созданную запись:
Set rst = Me.Recordset
rst.Delete
А которые уже имелись в базе не удаляет | |
|
| |
|
|
|
| Всё удаляет, спасибо, надо было так:
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
|
| |
|
| |
|
|
|
| Хотелось бы еще узнать, а как сделать удаление для вкладок с разными подчиненными формами? | |
|
| |
|
|
|
| Поясни пожалуста. А зачем рекордсетом удалять из подчиненной. Почему не запросом на удаление? Быстрее? Короче писать? Проще?
И потом почему не просто нажатием del? Из подчиненной ведь так можно. Или связь в таблицах нечто left join? | |
|
| |
|
|
|
| как вариант - борьба с пользователями + изыски. | |
|
| |