Модераторы: Akina
  

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Переход по записи в форме 
:(
    Опции темы
Гость_Raina
Дата 14.2.2005, 22:26 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Форма создана по запросу на выборку, как отключить переход к следующей записи по Scroll, и сделать автоматический переход к записи по значению поля. При вводе номера сертификата перейти на эту записи. СПАСИБОЧКИ!!!
  Вверх
Akina
Дата 15.2.2005, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Вопрос непонятен. Какой скролл? что за значение поля? при чем тут сертификаты?



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Golden Hands
Дата 16.2.2005, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Золотой
****


Профиль
Группа: Участник Клуба
Сообщений: 2023
Регистрация: 23.1.2005
Где: Екатеринбург

Репутация: нет
Всего: 83



То есть тебе нужно ввести номер записи в каком-то текстовом поле и при нажатии кнопки - прыгнуть на запись под этим номером? smile
Совсем недавно я это программил. Покопаюсь в дебрях винта, напишу smile.

Это сообщение отредактировал(а) Golden Hands - 16.2.2005, 14:22


--------------------
Мы обречены... но только на победу!
Настанет день, и мы построим новый дом.
Внесем в него тепло, что сохранить сумели,
И воскресим все то, что в нас когда-то умерло... © Тень Света
PM MAIL ICQ   Вверх
Golden Hands
Дата 18.2.2005, 04:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Золотой
****


Профиль
Группа: Участник Клуба
Сообщений: 2023
Регистрация: 23.1.2005
Где: Екатеринбург

Репутация: нет
Всего: 83



Вот, держи:
Код

.........................
Dim a As String
Dim b As Integer
Dim cv As Integer
.........................
.........................
Private Sub Form_AfterDelConfirm(Status As Integer)
If c = 1 Then a = Form.CurrentRecord
End Sub

Private Sub Form_AfterInsert()
b = Form.CurrentRecord
End Sub

Private Sub Form_BeforeDelConfirm(Cancel As Integer, Response As Integer)
cv = Form.CurrentRecord
End Sub

Private Sub Form_Open(Cancel As Integer)
DoCmd.GoToRecord , , acLast
b = Form.CurrentRecord
DoCmd.GoToRecord , , acFirst
a = Form.CurrentRecord
numrec.SetFocus
numrec.Text = "1"
End Sub

Private Sub perehod_Click()
If (numrec.Value >= a) And (numrec.Value <= b) Then DoCmd.GoToRecord acForm, "redfor", acGoTo, numrec.Value Else MsgBox "Такой записи не существует", vbCritical, "Ошибка"
End Sub


P.S. numrec - это поле для ввода номера записи, redfor - имя формы, perehod - имя кнопки, на которую тычем :-). Написано кривовато, но уж сам поправишь. smile


--------------------
Мы обречены... но только на победу!
Настанет день, и мы построим новый дом.
Внесем в него тепло, что сохранить сумели,
И воскресим все то, что в нас когда-то умерло... © Тень Света
PM MAIL ICQ   Вверх
Lavda
Дата 22.2.2005, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 4.11.2004

Репутация: 2
Всего: 3



Единственный способ как отключить переход по Скролу отключить его нафиг в винде smile
Новомодные способы от Майкрософта не работают или очень глючат, да и свободной реализации толковой нет. (Scroll - даже событие такое есть Akina)
PM MAIL   Вверх
Impulse
Дата 22.2.2005, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 5.1.2005
Где: г. Чита

Репутация: нет
Всего: нет



А я вот не понял, номер записи это что? по таблице номер записи что ли?(которого быть не может, это не реляционные базы данных, а х какая-то)
PM MAIL ICQ   Вверх
Golden Hands
Дата 23.2.2005, 01:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Золотой
****


Профиль
Группа: Участник Клуба
Сообщений: 2023
Регистрация: 23.1.2005
Где: Екатеринбург

Репутация: нет
Всего: 83



Цитата
Единственный способ как отключить переход по Скролу отключить его нафиг в винде

Можно событию scroll назначить следующее - запомнить номер текущей записи и переходить на эту запись. Т.е. перехода вперед/назад по записям не будет.

Цитата
А я вот не понял, номер записи это что? по таблице номер записи что ли?

У каждой записи есть номер. Он отображается, например, возле кнопок перехода в форме. Не знал? smile

Это сообщение отредактировал(а) Golden Hands - 23.2.2005, 01:33


--------------------
Мы обречены... но только на победу!
Настанет день, и мы построим новый дом.
Внесем в него тепло, что сохранить сумели,
И воскресим все то, что в нас когда-то умерло... © Тень Света
PM MAIL ICQ   Вверх
Lavda
Дата 23.2.2005, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 4.11.2004

Репутация: 2
Всего: 3



2Golden Hands можно и назначить переход к текущей записи, хи , а ты попробуй, а потом подергай туда суда колёсиком, оно проскакивать умудряеться.

Есть ещё пример от Микрософта с субклассированием но он тож глючит и проскакивает
PM MAIL   Вверх
Golden Hands
Дата 23.2.2005, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Золотой
****


Профиль
Группа: Участник Клуба
Сообщений: 2023
Регистрация: 23.1.2005
Где: Екатеринбург

Репутация: нет
Всего: 83



Цитата
можно и назначить переход к текущей записи, хи , а ты попробуй, а потом подергай туда суда колёсиком, оно проскакивать умудряеться.

Попробую. smile


--------------------
Мы обречены... но только на победу!
Настанет день, и мы построим новый дом.
Внесем в него тепло, что сохранить сумели,
И воскресим все то, что в нас когда-то умерло... © Тень Света
PM MAIL ICQ   Вверх
Impulse
Дата 23.2.2005, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 5.1.2005
Где: г. Чита

Репутация: нет
Всего: нет



Цитата(Golden @ 23.2.2005, 07:30)
У каждой записи есть номер. Он отображается, например, возле кнопок перехода в форме. Не знал? 

ФИГНЯ! Почитай теорию.
Простой пример отсортируй любой атрибут по возрастанию, а потом наоборот и посмотри что получится.
PM MAIL ICQ   Вверх
Akina
Дата 24.2.2005, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(Lavda @ 22.2.2005, 10:55)
(Scroll - даже событие такое есть Akina)

У формы??? Может речь о MouseWheel? или о каком-то конкретном контроле? все-таки...

Golden Hands
Impulse
Хотите поругаться - шагайте в Аську.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Golden Hands
Дата 25.2.2005, 01:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Золотой
****


Профиль
Группа: Участник Клуба
Сообщений: 2023
Регистрация: 23.1.2005
Где: Екатеринбург

Репутация: нет
Всего: 83



Цитата
Может речь о MouseWheel?

Да, и это единственное прямое событие, выполняющееся при манипуляциях с колесиком.
Цитата
Хотите поругаться - шагайте в Аську.

Че уж сразу поругаться? smile
Цитата
Цитата

У каждой записи есть номер. Он отображается, например, возле кнопок перехода в форме. Не знал?

ФИГНЯ! Почитай теорию.
Простой пример отсортируй любой атрибут по возрастанию, а потом наоборот и посмотри что получится.

Ага, посмотрел, и правильней будет сказать - каждой записи при загрузке (и не только) формы присваивается фиктивный номер. Но, когда частенько с этим работаешь, уже на автомате считаешь, что
Цитата
У каждой записи есть номер.
smile

Это сообщение отредактировал(а) Golden Hands - 25.2.2005, 01:43


--------------------
Мы обречены... но только на победу!
Настанет день, и мы построим новый дом.
Внесем в него тепло, что сохранить сумели,
И воскресим все то, что в нас когда-то умерло... © Тень Света
PM MAIL ICQ   Вверх
Golden Hands
Дата 25.2.2005, 02:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Золотой
****


Профиль
Группа: Участник Клуба
Сообщений: 2023
Регистрация: 23.1.2005
Где: Екатеринбург

Репутация: нет
Всего: 83



Итак, вот код для отключения перехода по записям по Scroll'у:

Код

Option Compare Database
Dim a As Integer, b As Integer, c As Integer, d As Integer, e As Integer
............................................................................

Private Sub Form_Current()
If b = 1 Then DoCmd.GoToRecord acForm, "form1", acGoTo, a
End Sub

Private Sub Form_MouseWheel(ByVal Page As Boolean, ByVal Count As Long)
b = 1
a = Form.CurrentRecord
End Sub


Значение b=1 означает, что колесико мыши крутилось. smile
Замечание: При b=1 использование стандартных кнопок перехода по записям формы невозможно (то есть возможно, но результат будет - выбор одной и той же записи (текущей)smile).

При создании собственных кнопок примерный код такой:

Код

Private Sub Form_Load()
DoCmd.GoToRecord acForm, "form1", acLast
d = Form.CurrentRecord
DoCmd.GoToRecord acForm, "form1", acFirst
c = Form.CurrentRecord
e = 3
End Sub

Private Sub Next_1_Click()
b = 0
If Form.CurrentRecord < d Then DoCmd.GoToRecord acForm, "form1", acNext
End Sub

Private Sub GoTo_1_Click()
b = 0
If (e >= c) And (e <= d) Then DoCmd.GoToRecord acForm, "form1", acGoTo, e
End Sub


А вот при b=0 событие Form_Current не происходит, и кнопки работают как часы smile.

Ну и установка переменной b в значение 0 (для нормальной работы стандартных кнопок обработки записей):

Код

Private Sub Form_Timer()
If b <> 0 Then b = 0
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If b <> 0 Then b = 0
End Sub

Private Sub ЗаголовокФормы_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If b <> 0 Then b = 0
End Sub

Private Sub ОбластьДанных_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If b <> 0 Then b = 0
End Sub

Private Sub ПримечаниеФормы_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If b <> 0 Then b = 0
End Sub


Естественно, из всех этих событий хватит и одного Timer'а. Я выставил его интервал - 100. Но это - кто как. Вобще хватит и 1 секунды.

Цитата
можно и назначить переход к текущей записи, хи , а ты попробуй, а потом подергай туда суда колёсиком, оно проскакивать умудряеться.

Я крутил колесико с максимальной скоростью, какую только может развить мой палец smile. Проскоков не было. Не думаю, что часто встречаются люди, палец которых обладает поистине скоростью истребителя, тем более - специально бешено раскручивающие колесико мыши. Это уже - зоофилия. smile



--------------------
Мы обречены... но только на победу!
Настанет день, и мы построим новый дом.
Внесем в него тепло, что сохранить сумели,
И воскресим все то, что в нас когда-то умерло... © Тень Света
PM MAIL ICQ   Вверх
Akina
Дата 25.2.2005, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Код

If b <> 0 Then b = 0

Это вообще достойно музея юмора! smile smile


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Golden Hands
Дата 26.2.2005, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Золотой
****


Профиль
Группа: Участник Клуба
Сообщений: 2023
Регистрация: 23.1.2005
Где: Екатеринбург

Репутация: нет
Всего: 83



Цитата
If b <> 0 Then b = 0
Это вообще достойно музея юмора! 

Ну и что - мелочь. smile


--------------------
Мы обречены... но только на победу!
Настанет день, и мы построим новый дом.
Внесем в него тепло, что сохранить сумели,
И воскресим все то, что в нас когда-то умерло... © Тень Света
PM MAIL ICQ   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.1297 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.