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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Удержать форму в невидимом состоянии
 
 автор: snipe   (16.07.2012 в 19:04)   личное сообщение
 
 

Доброго времени суток

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

как только перемещаю фокус в форму (что бы удалить текущую запись) - форма отображается
вот код


Forms!frmpipeinfo2.SetFocus 'вот тут форма выходит из сумрака
Forms!frmpipeinfo2.DrNo.SetFocus
DoCmd.SetWarnings False
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
DoCmd.SetWarnings True
DoCmd.Close acForm, "frmpipeinfo2"


почему так? - да как-то проще оказалось, чем запускать запросы на удаление (много подформ и у некоторых подформ первого уровня связь не с основной формой а с записью другой подформы первого уровня)

Цель что бы форма оставалась в невидимом режиме (без мельканий на экране)

Заранее спасибо

  Ответить  
 
 автор: Дядя Федор   (17.07.2012 в 08:03)   личное сообщение
 
 

Использовать Property формы.
Public Property Get DELETERECORD() As Variant
End Property
Public Property Let DELETERECORD(ByVal vNewValue As Variant)
'Делаем что надо
MsgBox "!"
End Property

Вызов:Forms!Frm1.DELETERECORD = True

  Ответить  
 
 автор: snipe   (17.07.2012 в 09:28)   личное сообщение
 
 

Спасибо
работает
пойду про Property читать

  Ответить  
 
 автор: Анатолий (Киев)   (17.07.2012 в 12:24)   личное сообщение
 
 

snipe, вы меня удивили...
Во первых, эта задача решается одной строкой:
Forms!frmpipeinfo2.Recordset.Dalete

Во вторых, если нужно удалить запись, то зачем вообще открывать форму?
Поще это сделать запросом на удаление. Вы же условие отбора знаете.

В третьих конструкции типа DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 - анахронизм еще из Акса95, который до сих пор предлагают мастера. Уже в Акс97 появилась более красивая конструкция: RunCommand Константа

  Ответить  
 
 автор: snipe   (17.07.2012 в 18:08)   личное сообщение
 
 

3. да как-то ранее наработал DoCmd.DoMenuItem и не задавался вопросом что может быть лучше

2. запросом можно но форма сложная и надо удалять значения из всех подформ, а на форме есть кнопочка которая удаляет все записи из подформ - посему появилась идея использовать эту кнопочку (все это ранее в коде отрабатывает) а вот удаление записи основной формы не хотело нормально работать

1. не знал

вообщем пора за парту

  Ответить  
 
 автор: Анатолий (Киев)   (17.07.2012 в 18:47)   личное сообщение
 
 


надо удалять значения из всех подформ, а на форме есть кнопочка которая удаляет все записи из подформ

Тогда сделайте процедуру "кнопочка_Click" - Public и, открыв форму, выполните код:

Forms!frmpipeinfo2.кнопочка_Click

ЗЫ. А каскадное удаление вам не подходит?
ЗЗЫ. И где вы в своем коде используете кнопочку?

  Ответить  
 
 автор: snipe   (17.07.2012 в 19:19)   личное сообщение
 
 

ЗЗЫ раньше того что показал

(так и использую Forms!frmpipeinfo2.кнопочка_Click)

ЗЫ каскадное - не подходит
некоторые Запросы (recordsource ) подформ через union all сделаны и удаление записей едет через другие запросы

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

вообщем наворотил

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