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

Форум: MS ACCESS

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

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

 
 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: способ отключить колесико в главной форме я нашел, но в подчиненной не выходит
 
 автор: АлексейAlex   (30.05.2009 в 23:41)   личное сообщение
 
   to: Goblin   (30.05.2009 в 22:12)
 

тогда чекнем и на боковую.

  Ответить  
 
 автор: Goblin   (30.05.2009 в 22:12)   личное сообщение
 
   to: Goblin   (30.05.2009 в 17:54)
 

Просьбу напомнить как лукас колесико лечил - упустил сразу.
Вот так: Только с этим делом не до конца все ясно. На одном компе сразу сработало, а на другом почему-то нет.
Private Sub Form_AfterInsert()
Me.AllowAdditions = False
End Sub
Поэтому код Me.AllowAdditions = False в свойство формы (Событие/Колесико) мыши и дело с концом. Помогает блин везеде. (мне надо было в подчиненной форме только одну строку что бы заполняли и на новую не переходили)

PS: Вот есби бы еще по кнопке enter и по табу на новую строку не могли перейти, но при этом добавлять записи было бы можно, то ваще класс. Но это уже из области как сначала подчиненную форму заполнить, а потом уже основную. Сначала выстрелить, а потом цель под летящую пулю загонять.

  Ответить  
 
 автор: АлексейAlex   (30.05.2009 в 21:26)   личное сообщение
 
   to: Goblin   (30.05.2009 в 09:57)
 

напомни как лукас лечил колесико?

бомжи:
да наверно условие достаточно.

зы. ну почему время так коротко?!

  Ответить  
 
 автор: Goblin   (30.05.2009 в 17:54)   личное сообщение
 
   to: АлексейAlex   (30.05.2009 в 15:47)
 

Ну вы заехали. Эдак новый access изобретёте в борьбе с колёсиком. Не важно как реализовано, главное что бы работало.

  Ответить  
 
 автор: АлексейAlex   (30.05.2009 в 15:47)   личное сообщение
 
   to: KrukVN   (30.05.2009 в 13:42)
 

я не знаю как их реализовать, куда поместить и вообще что такое dll ? я его себе туманно представляю .

  Ответить  
 
 автор: KrukVN   (30.05.2009 в 13:42)   личное сообщение
 
   to: АлексейAlex   (29.05.2009 в 23:37)
 

Но есть же решения (в виде отдельных dll) с отловом и блокировкой события прокрутки колеса.

  Ответить  
 
 автор: Goblin   (30.05.2009 в 09:57)   личное сообщение
 
   to: АлексейAlex   (29.05.2009 в 23:37)
 

По ходу дела вижу колесо не только мне одному мешало. Да и с бомжами тема чего-то действительно остро назревает. Проблема, блин. Раньше такого не было.
Но колесо сбивает только когда способствует добавлению записи. А в этом недуге Лукас оной строчкой помог. В остальном оно даже удобно.
А по теме бомжей, так там в свойствах условие на значение поставить и сообщение при невыполнении условия. Кажется достаточно.

  Ответить  
 
 автор: АлексейAlex   (29.05.2009 в 23:37)   личное сообщение
 
   to: KrukVN   (29.05.2009 в 23:29)
 

Таки угу

народная мудрость на выбор:
"Зачем бороться с тем, что можно не замечать?" - если лень бороться
"Стоит ли не замечать то, с чем можно бороться?" - если бороться в кайф

  Ответить  
 
 автор: KrukVN   (29.05.2009 в 23:29)   личное сообщение
 
   to: Гамлет   (29.05.2009 в 22:13)
 

таки этот интересный метод НЕ отключает колесо
колесо работает. просто мы синтетическим образом типа этого не замечаем

  Ответить  
 
 автор: Гамлет   (29.05.2009 в 22:13)   личное сообщение
 
   to: П.Полиграфович   (29.05.2009 в 15:07)
 

П.Полиграфович, реально ли используя встроенные кнопки перехода отключить "колесо" применяя этот подход
If Me.CurrentRecord <> n Then DoCmd.GoToRecord , , acGoTo, n

  Ответить  
 
 автор: П.Полиграфович   (29.05.2009 в 15:07)   личное сообщение
 
   to: Гамлет   (29.05.2009 в 10:45)
 

Встроеные будут выполнять переход по записям => будет происходить то событие, которое вы обрабатываете Form_current => это вопрос логики

  Ответить  
 
 автор: АлексейAlex   (29.05.2009 в 10:49)   личное сообщение
 
   to: Гамлет   (29.05.2009 в 10:45)
 

создай их копию а их самих выключи в свойствах (кнопки перехода кажись).

можно это событие повесить и при нажатии на форму (и при .... см. события объектов)

  Ответить  
 
 автор: Гамлет   (29.05.2009 в 10:45)   личное сообщение
 
   to: АлексейAlex   (29.05.2009 в 10:17)
 

Ок, спасибо
А можно ли как то сделать так, чтобы переход по записям осуществлялся НЕ при помощи созданных кнопок перехода, а используя встроенные в форму кнопки перехода по записям (те которые в нижнем левом углу формы)

  Ответить  
 
 автор: АлексейAlex   (29.05.2009 в 10:17)   личное сообщение
18 Кб.
 
   to: Гамлет   (29.05.2009 в 09:51)
 

пример с кнопкой перехода на одну запись вперед.

зы. в примере переход реализован только в главной форме

  Ответить  
 
 автор: Гамлет   (29.05.2009 в 09:51)   личное сообщение
 
   to: АлексейAlex   (29.05.2009 в 08:06)
 

Ничего не получается
Если можно покажите работающий пример

  Ответить  
 
 автор: АлексейAlex   (29.05.2009 в 08:06)   личное сообщение
 
   to: Гамлет   (29.05.2009 в 00:23)
 

отредактировать код кнопок.

создайте например, ячейку скрытую на форме и присваивайте ей значение такой N (номер записи) в которую нужно перейти при нажатии кнопки.

а в событии Формы "текущая запись", создайте переменную которая берет значение ячейки, для того чтобы использовать в основном коде для переменной N:

If Me.CurrentRecord <> n Then DoCmd.GoToRecord , , acGoTo, n

  Ответить  
 
 автор: Гамлет   (29.05.2009 в 00:23)   личное сообщение
 
   to: АлексейAlex   (28.05.2009 в 22:34)
 

В примере не работает кнопка перехода
Как сделать так, чтобы при использывании "колёсика" переход по записям - отключался, а при использывании встроенных в форму кнопок перехода по записям - переход выполнялся бы нормально.
Всё это в простой форме

  Ответить  
 
 автор: АлексейAlex   (28.05.2009 в 22:34)   личное сообщение
17 Кб.
 
   to: Гамлет   (28.05.2009 в 21:42)
 

см. работающий пример

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

зы. а вообще-то вот

if вашакнопка=true THEN делаем что можем

  Ответить  
 
 автор: Гамлет   (28.05.2009 в 21:42)   личное сообщение
 
   to: АлексейAlex   (28.05.2009 в 20:40)
 

Напомните как определить, что нажата кнопка перехода (не созданная, а встроенная)

  Ответить  
 
 автор: АлексейAlex   (28.05.2009 в 20:40)   личное сообщение
 
   to: Гамлет   (28.05.2009 в 20:25)
 

N=номер записи которую покидать нельзя. Но можно задать условие что при нажатии кнопки перехода (например), N будет или +1 или -1

это код поместить во все формы где нужно отключить колесика (в свойства-текущая запись-[Процедура обработки событий)-...)
If Me.CurrentRecord <> N Then DoCmd.GoToRecord , , acGoTo, N

зы. только обратите внимание что N-число.

  Ответить  
 
 автор: Гамлет   (28.05.2009 в 20:25)   личное сообщение
 
   to: АлексейAlex   (28.05.2009 в 14:37)
 

АлексейAlex, покажите весь код, как отключаете колёсико мыши в главной форме. Плиз

  Ответить  
 
 автор: АлексейAlex   (28.05.2009 в 14:37)   личное сообщение
 
   to: АлексейAlex   (28.05.2009 в 14:24)
 

сейчас обнаружил свою критическую ошибку, хохотал долго.

Я все везде прописал и тупо не понимал почему??? а сейчас смотрю свойства форм "Текущая запись", а там пусто (наверно при обновлении подФормы я упустил поставить [Процедура обработки событий)

  Ответить  
 
 автор: АлексейAlex   (28.05.2009 в 14:24)   личное сообщение
 
   to: osmor   (28.05.2009 в 14:17)
 

вроде все испробывал а подобную малость пропустил, спасибо большое)))

теперь колесико выключается и без заморочек

  Ответить  
 
 автор: osmor   (28.05.2009 в 14:17)   личное сообщение
 
   to: АлексейAlex   (28.05.2009 в 13:58)
 

If Me.CurrentRecord <> 2 Then DoCmd.GoToRecord , , acGoTo, 2
этот код нужно поставить на событие Текущая запись в ПОДЧИНЕННОЙ ФОРМЕ

  Ответить  
 
 автор: АлексейAlex   (28.05.2009 в 13:58)   личное сообщение
 
   to: osmor   (28.05.2009 в 12:38)
 

предполагал что ерунда)

должно быть так:
при попытке перейти на запись не равную N (скажем 2 ) акцесс должен вернуть юзера на заданную запись.
в примере это реализовано только для главной формы (как раз для неё этого и не нужно).
как добиться этого же при нахождении курсора в подчиненной форме ума не приложу.

Событие соответственно должно происходить в подчиненной, с таким же эффектом как и на главной форме, а именно:

If Me.CurrentRecord <> N Then DoCmd.GoToRecord , , acGoTo, N

этот код нужно как то модернизировать для подчиненной формы.

Вы мне подсказывали:
If Forms![главная]![подчиненная].FORM.CurrentRecord <> N Then DoCmd.GoToRecord , , acGoTo, N
но при этом находясь в подчиненной форме, переход по записям возможен и возврат на заданный номер записи (подчиненной формы) не происходит.

  Ответить  
 
 автор: osmor   (28.05.2009 в 12:38)   личное сообщение
 
   to: АлексейAlex   (28.05.2009 в 12:19)
 

docmd это объект application
то что вы пишите... ну мягко говоря ерунда (не обижайтесь)
давайте по порядку
1. на какое событие код должен выполняться
2. в какой форме будет происходить событие? в основной или в подчиненной

  Ответить  
 
 автор: АлексейAlex   (28.05.2009 в 12:19)   личное сообщение
 
   to: АлексейAlex   (28.05.2009 в 11:49)
 

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

что ставить после Then?
пробовал:
1.Then Forms![Форма1]![подФорма1].FORM.DoCmd.GoToRecord , , acGoTo, 2 ' ошибка 2465
2.Then Forms![Форма1]![подФорма1].DoCmd.GoToRecord , , acGoTo, 2 ' ошибка 438
3.Then Forms![Форма1]![подФорма1].FORM.GoToRecord , , acGoTo, 2 'ошибка 2465
4.Then Forms![Форма1]![подФорма1].GoToRecord , , acGoTo, 2 'ошибка 438

  Ответить  
 
 автор: АлексейAlex   (28.05.2009 в 11:49)   личное сообщение
 
   to: snipe   (28.05.2009 в 11:47)
 

спасибо огромное, а то я искал да сыщик из меня плохой.

  Ответить  
 
 автор: snipe   (28.05.2009 в 11:47)   личное сообщение
 
   to: АлексейAlex   (28.05.2009 в 11:43)
 

вот раскопал тут в недрах форума......


Вопрос: Перемещение по записям в форме / подчиненной форме

Совет:
Function GoToRec(frm As Form, rs As DAO.Recordset, Optional Record As Long, Optional Offset As Long)
On Error Resume Next ' при отладке это убрать

If IsMissing(Record) Then Record = acNext
If IsMissing(Offset) Then Offset = 0

Select Case Record
Case acFirst
rs.MoveFirst
Case acGoTo
rs.Move Offset
Case acLast
rs.MoveLast
Case acNewRec
' не знаю
Case acNext 'Default
rs.MoveNext
Case acPrevious
rs.MovePrevious
End Select

frm.Bookmark = rs.Bookmark
End Function

  Ответить  
 
 автор: АлексейAlex   (28.05.2009 в 11:43)   личное сообщение
17 Кб.
 
   to: АлексейAlex   (28.05.2009 в 11:25)
 

так понял что, ошибка из-за того что перехожу я в запись главной формы, а не ПОДформы.
попытался исправить

на

If Forms![Форма1]![подФорма1].Form.CurrentRecord <> 2 Then Forms![Форма1]![подФорма1].DoCmd.GoToRecord , , acGoTo, 2

ошибка 438

  Ответить  
 
 автор: АлексейAlex   (28.05.2009 в 11:25)   личное сообщение
17 Кб.
 
   to: snipe   (28.05.2009 в 10:45)
 

ошибся я )) но тут новая ошибка
Ошибка 2455

  Ответить  
 
 автор: snipe   (28.05.2009 в 10:45)   личное сообщение
 
   to: АлексейAlex   (28.05.2009 в 10:24)
 

У Вас не правильное обращение к подчиненной форме - вчитайтесь сообщение Osmor и сделайте так как там написано

  Ответить  
 
 автор: АлексейAlex   (28.05.2009 в 10:24)   личное сообщение
17 Кб.
 
   to: osmor   (28.05.2009 в 08:44)
 

ошибка 438

  Ответить  
 
 автор: osmor   (28.05.2009 в 08:44)   личное сообщение
 
   to: АлексейAlex   (28.05.2009 в 08:17)
 

Forms![главная]![подчиненная].FORM.CurrentRecord

  Ответить  
 
 автор: АлексейAlex   (28.05.2009 в 08:17)   личное сообщение
 
 

N=номер записи которую покидать нельзя. Но принажатии кнопки перехода, N будет или +1 или -1

это в главной
If Me.CurrentRecord <> N Then DoCmd.GoToRecord , , acGoTo, N

а здесь ошибка
'If Forms![главная]![подчиненная].CurrentRecord <> N Then DoCmd.GoToRecord , , acGoTo, N

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