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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Вопрос для Snipe
 
 автор: zhebov_andrey   (26.05.2009 в 15:21)   личное сообщение
 
 

Как то Вы показали мне вот это...

Private Sub Умер_AfterUpdate()
If Me!Умер = True Then
Me![Дата смерти].Locked = False
Me![Дата смерти].BackColor = 16777215
Else
Me![Дата смерти] = ""
Me![Дата смерти].Locked = True
Me![Дата смерти].BackColor = -2147483633
End If
End Sub
В данном случае используется флажок...

Теперь я хочу сделать тоже самое для двух полей со списками, т е при выборе в поле "случаи обращения" - "травмы" поле со списком "Вид травмы" становилось бы активным и наоборот...

Делаю вот так...

Private Sub ПолеСоСписком107_AfterUpdate()
If Me![Случаи обращения] = "Травмы" Then
Me![Вид травмы].Locked = False
Me![Вид травмы].BackColor = 16777215
Else
Me![Вид травмы] = ""
Me![Вид травмы].Locked = True
Me![Вид травмы].BackColor = -2147483633
End If
End Sub

А он ругается и указывает на...
Me![Вид травмы].Locked = True

Что я делаю не так???

  Ответить  
 
 автор: osmor   (26.05.2009 в 18:23)   личное сообщение
 
 

в какое поле переходит курсор после выхода их поля [Случаи обращения] ?

  Ответить  
 
 автор: zhebov_andrey   (26.05.2009 в 19:47)   личное сообщение
 
 

Если [Случаи обращения] = "Травмы", то переходим в поле со списком [Вид травмы], если другое, то перескакиваем через поле со списком [Вид травмы] в поле[Время принятия]

  Ответить  
 
 автор: osmor   (26.05.2009 в 21:00)   личное сообщение
 
 

я намекаю, что у вас после обновления [Случаи обращения] курсор стоит в поле [Вид травмы] и сделать его looked не получится.
Скажите какое сообщение об ошибке вылезает

  Ответить  
 
 автор: zhebov_andrey   (26.05.2009 в 22:34)   личное сообщение
40 Кб.
 
 

При выборе значения в поле [Случаи обращения] вылезает такая ошибка (прикрепил в файл)...

  Ответить  
 
 автор: snipe   (27.05.2009 в 01:58)   личное сообщение
39 Кб.
 
 

Только сейчас до компа добрался......
А в каком виде(формате) хранится инфа в таблице в поле [случай обращения] - вполне вероятно что в числовом......
тогда нужно сравнивать не со словом "травмы" а с его числовым аналогом....
и еще меня не много смущает ПолеСоСписком107 это что за элемент.......
раньше я часто покупался на следующий прикол....
прописывал в VBA не имя поля а данные поля а получалось потому что в режиме конструктора формы смотрел не в то место (т.е прописывал то что написано в красном квадрате (см.рис) а нужно было то что в синем возможно что

Private Sub ПолеСоСписком107_AfterUpdate()
If Me![Случаи обращения] = "Травмы" The

а должно быть

Private Sub ПолеСоСписком107_AfterUpdate()
If Me![ПолеСоСписком107] = "Травмы" Then

  Ответить  
 
 автор: zhebov_andrey   (27.05.2009 в 08:47)   личное сообщение
57 Кб.
 
 

Пробовал и так и так не получается... Вот прикрепил часть базы...

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

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

Private Sub ПолеСоСписком71_AfterUpdate()
If Me![ПолеСоСписком71] = "Травмы" Then
Me![ПолеСоСписком73].Locked = False
Me![ПолеСоСписком73].BackColor = 16777215
Else
Me![ПолеСоСписком73] = ""
Me![ПолеСоСписком73].Locked = True
Me![ПолеСоСписком73].BackColor = -2147483633
End If

End Sub

  Ответить  
 
 автор: zhebov_andrey   (27.05.2009 в 11:09)   личное сообщение
 
 

Блин, а я [полесосписком71] пробовал подставить, а [полесосписком73] нет...Спасибо!!!

  Ответить  
 
 автор: zhebov_andrey   (28.05.2009 в 10:05)   личное сообщение
 
 

Вот еще вопрос нарисовался...
Нужно немного усложнить этот код

Private Sub ПолеСоСписком71_AfterUpdate()
If Me![ПолеСоСписком71] = "Травмы" Then
Me![ПолеСоСписком73].Locked = False
Me![ПолеСоСписком73].BackColor = 16777215
Else
Me![ПолеСоСписком73] = ""
Me![ПолеСоСписком73].Locked = True
Me![ПолеСоСписком73].BackColor = -2147483633
End If

End Sub


Хотелось бы чтобы при Locked=True, при нажатии Tab курсор переходил бы сразу из [ПолеСоСписком71] в [ПолеСоСписком75] проскакивая заблокированное [ПолеСоСписком73], а если Locked = False, то в [ПолеСоСписком73]...
Что нужно для этого сделать???

  Ответить  
 
 автор: osmor   (28.05.2009 в 10:25)   личное сообщение
 
 

Me![Поле].setfocus

  Ответить  
 
 автор: snipe   (28.05.2009 в 11:14)   личное сообщение
 
 

к сообщению osmor даже добавить нечего....

на событие ПоляСоСписком73 - Получение фокуса повесь вот это
If Me!ПолеСоСписком73.Locked=True Then Me!ПолеСоСписком75.SetFocus

  Ответить  
 
 автор: zhebov_andrey   (28.05.2009 в 11:22)   личное сообщение
 
 

Супер!!! Спасибо!!! Узнал новую функцию и как ей пользоваться...

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