magoga
Дата: 02.06.2004 16:40:33
У меня не удаляется запись из таблицы.
Вообщем на Форме ест СубФорма с Листбоксом, а рядом кнопка. Нужно чтобы при нажатии на кнопку ключ выбранной строки Листбокса Субформы был в команде SQL и удалял запись в Таблице.
Есть Таблица Container
Форма Assets
Субформа ContainerList2Subform1
Написал следуещий Ивент на кнопку, но запись не удаляется из таблицы:
Private Sub RemoveSubDevice_Click()
On Error GoTo Err_RemoveSubDevice_Click
CurrentDb.Execute ("DELETE * FROM Container WHERE SubAsset=" & Me.[ContainerList2Subform1].Value & ";")
DoCmd.Close
Exit_SaveRemoveSubDevice_Click:
Exit Sub
Err_SaveRemoveSubDevice_Click:
MsgBox Err.Description
Resume Exit_SaveRemoveSubDevice_Click
End Sub
Что я сделал неправильно? Помогите
paparome
Дата: 02.06.2004 16:49:15
CurrentDb.Execute (strSQL, dbFailOnError)?
точно не удаляется? как ты это смотришь - нигде не видно обновление формы (субформы) после удаления записи.
и не понял - закрытие зачем стоит?
ищ
Дата: 02.06.2004 16:50:11
"на Форме ест СубФорма с Листбоксом"
"Субформа ContainerList2Subform1"
а почему ты подсовываешь в выражение
=" & Me.[ContainerList2Subform1].Value & ";")
субформу, а не Листбокс
у тебя же код находится в листбоксе
magoga
Дата: 02.06.2004 17:00:30
Я ошибся,- это обычная СубФорма, в которой есть столбцы из таблицы. Она просто выглядит как ЛистБокс.
Вообщем как мне вставит ключ из Строки Субформы в запрос, и как это так написать, чтобы правильно было. Да ешё, как сделать так, чтобы после выполнения команды было обновление формы/субформы
Заранее благодарен
paparome
Дата: 02.06.2004 17:04:21
Значит надо к полю этой субформы обращаться (в котором и находится ваше значение)
что-то типа
me.Sub1.Form.Text1
обновление
me.requery
или
me.recordsource = me.recordsource
magoga
Дата: 02.06.2004 17:21:19
me.Sub1.Form.Text1
А что за Форма эта? Там ведь иерархия такая: Форма>Субформа>ТекстБокс
И я вот что-то не понимаю- в Субформе появляется список типа ЛистБокс, а на самом деле в свойствай Субформы- это ТекстБокс. В Листбоксе нужно выбирать Value , а в Текстбоксе тогда что, просто название этого ТекстБокса?
paparome
Дата: 02.06.2004 17:24:46
| | автор |
| | А что за Форма эта? Там ведь иерархия такая: Форма>Субформа>ТекстБокс |
Субформа - это контрол такой на главной форме
А у этого контрола есть свойство Form, через которое можно достучаться до контролов и свойст самой формы.
| | автор |
| | И я вот что-то не понимаю- в Субформе появляется список типа ЛистБокс |
Это пример был - ну надо вам не к TextBox обращаться, а к ЛистБокс - ну и обращайтесь наздоровье
magoga
Дата: 02.06.2004 18:03:52
Попробовал несколько вариантов, но так и не работает.
вот один:
пробовал просто число обычное вставить, ну не рабоает и всё.
В свойствах у СубФормы имя такое же как и формы в ней.Поэтому
написал следующее:
CurrentDb.Execute ("DELETE * FROM Container WHERE SubAsset=" & Me![ContainerList2Subform1].[ContainerList2Subform1].[SubAsset] & ";")
Me.Requery
вот второй:
CurrentDb.Execute ("DELETE * FROM Container WHERE SubAsset=" & Me![ContainerList2Subform1].[SubAsset].Value & ";")
Me.Requery
Кто скажет, где может быть ошибка?
Заранее благодарен
paparome
Дата: 02.06.2004 18:06:21
Свойство Form, а не имя формы - оно всегда Form
Пиши так
Me![ContainerList2Subform1].Form.[SubAsset]
ТО ЧТО ЖИРНЫМ, НИ НА ЧТО ЗАМЕНЯТЬ НЕ НАДО!!!
magoga
Дата: 02.06.2004 18:31:46
paparome Thanks,
Класс заработало, но не сразу. Написал как ты мне сказал и ничего не получилось. После чего я просто удалил Ексепшионс и Мессаджис, оставил просто команду запроса.
Private Sub RemoveSubDevice_Click()
CurrentDb.Execute ("DELETE * FROM Container WHERE SubAsset=" & Me![ContainerList2Subform1].Form.[SubAsset] & ";")
Me.Requery
End Sub
Вот потом и заработала. Дла уверености решил посмотреть что там в таблице. Записи стёрты, но вместо них остались #Deleted. Почему?