|
Выборка из Источника строка комбобокса через Column(х, х) не всегда срабатывает. Почему?
|
|||
---|---|---|---|
#18+
Я VBA почти не пользуюсь (только макросами), поэтому тонкостей не знаю. В приведённом примере реализуется одна и та же задача двумя способами: 1. через свойство Column(х, х), 2. с помощью DFirst(). По событию 'после обновления' поля Цвет(1 или 2) вычисляется КодЦвета(1 или 2) и вставляется в соответствующее поле. Для контроля срабатывания события заполняется еще и поле Время(1 или 2). Пока выбираем значения из выпадающего списка комбобокса всё работает хорошо в обоих случаях. Если изменить значение текстового поля комбобоска (так чтоб получить не существующий вариант выпадающего списка), то должны получить пустое поле КодЦвета(1 или 2). 2-й способ очищает КодЦвета2 с первого раза, а 1-й способ очищает КодЦвета1 только со второго раза. Вопрос почему 1-й способ очищает КодЦвета1 со второго раза. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2020, 12:02 |
|
Выборка из Источника строка комбобокса через Column(х, х) не всегда срабатывает. Почему?
|
|||
---|---|---|---|
#18+
Да лучше добавлю сразу , для тех кто торопится. Если просто открыть форму Цвета и сразу изменить значение поля Цвет1 (на не существующее), то КодЦвета1 сотрётся. Но если сначала выбрать существующее значение, а потом изменить значение поля Цвет1 (на не существующее), то то КодЦвета1 не изменится. Но если еще раз изменить значение поля Цвет1 (на не существующее), то КодЦвета1 сотрётся. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2020, 12:10 |
|
Выборка из Источника строка комбобокса через Column(х, х) не всегда срабатывает. Почему?
|
|||
---|---|---|---|
#18+
Изменил с ' записываем Код из источника строк комбобокса, в поле КодЦвета1 формы Цвета, сохраняем запись Private Sub Цвет1_AfterUpdate() Dim КодЦвета1 As Integer Dim НомСтроки As Integer НомСтроки = Screen.ActiveControl.ListIndex [Forms]![Цвета]![КодЦвета1] = Screen.ActiveControl.Column(1, НомСтроки) ' . [Forms]![Цвета]![время1] = Now() DoCmd.RunCommand acCmdSaveRecord End Sub на Private Sub Цвет1_AfterUpdate() Dim КодЦвета1 As Integer Dim НомСтроки As Integer НомСтроки = Screen.ActiveControl.ListIndex If НомСтроки = -1 Then [Forms]![Цвета]![КодЦвета1] = Null Else [Forms]![Цвета]![КодЦвета1] = Screen.ActiveControl.Column(1, НомСтроки) End If [Forms]![Цвета]![время1] = Now() DoCmd.RunCommand acCmdSaveRecord End Sub и стало работать так как надо. Но причина для меня не понятна. Если кто знает отпишитесь, я думаю всем (простым читателям) полезно будет. Прикреплён обновлённый пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2020, 04:34 |
|
Выборка из Источника строка комбобокса через Column(х, х) не всегда срабатывает. Почему?
|
|||
---|---|---|---|
#18+
Geizer1 Если изменить значение текстового поля комбобоска (так чтоб получить не существующий вариант выпадающего списка) Есть еще вопросы (с учетом "Я VBA почти не пользуюсь"): 1. Если вас интересует значение выбранной строки, то попробуйте просто .Column(1) без всяких проверок ListIndex. 2. Если это процедура на событии конкретного поля конкретной формы, то зачем эти архитектурные излишества в виде Screen.ActiveControl? пишите явно Me.Цвет1 (а правильнее - Me![Цвет1]) 3. Вместо DoCmd.RunCommand acCmdSaveRecord тоже логичнее использовать Me.Refresh или Me.Dirty = False. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2020, 13:09 |
|
Выборка из Источника строка комбобокса через Column(х, х) не всегда срабатывает. Почему?
|
|||
---|---|---|---|
#18+
Со списками,когда хотят добавить новое значение, работают как-то так: ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2020, 21:18 |
|
Выборка из Источника строка комбобокса через Column(х, х) не всегда срабатывает. Почему?
|
|||
---|---|---|---|
#18+
sdku, У меня задача не ограничить вводимую информацию пользователем, а записать в другое поле формы свойство этой введённой информации (КодЦвета1). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2020, 09:11 |
|
Выборка из Источника строка комбобокса через Column(х, х) не всегда срабатывает. Почему?
|
|||
---|---|---|---|
#18+
Кривцов Анатолий, ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2020, 09:11 |
|
Выборка из Источника строка комбобокса через Column(х, х) не всегда срабатывает. Почему?
|
|||
---|---|---|---|
#18+
Кривцов Анатолий, Мой комбобокс действительно так настроен, чтобы пользователь мог ввести любое значение, так и задумано. 1 применение Column(1) ситуацию не меняет 2 применение полного пути вместо Screen.ActiveControl ситуацию не меняет 3 применение Me.Dirty = False ситуацию не меняет Пример с изменениями прилагается. Хочу напомнить, что вопрос касается свойства Column(1). Почему оно не всегда срабатывает? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2020, 09:45 |
|
Выборка из Источника строка комбобокса через Column(х, х) не всегда срабатывает. Почему?
|
|||
---|---|---|---|
#18+
Geizer1, извините за 2 лишних сообщения Control+Enter жму рефлекторно Вопрос решён! мешала строка НомСтроки = [Forms]![Цвета]![Цвет1].ListIndex - убрал её и заработало как надо. Хотя всё таки не понятно как строка НомСтроки = [Forms]![Цвета]![Цвет1].ListIndex мешает следующей строке [Forms]![Цвета]![КодЦвета1] = [Forms]![Цвета]![Цвет1].Column(1) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2020, 09:54 |
|
Выборка из Источника строка комбобокса через Column(х, х) не всегда срабатывает. Почему?
|
|||
---|---|---|---|
#18+
Geizer1 sdku, У меня задача не ограничить вводимую информацию пользователем, а записать в другое поле формы свойство этой введённой информации (КодЦвета1). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2020, 12:26 |
|
Выборка из Источника строка комбобокса через Column(х, х) не всегда срабатывает. Почему?
|
|||
---|---|---|---|
#18+
sdku,Так по-любому надо обрабатывать NotInList ведь заполнение "другого" поля зависит именно от наличия значения в списке,а не от AfterUpdate() которое произойдет совершенно независимо от того есть значение в списке или нет Я знаю когда возникает событие AfterUpdate(). И мне действительно нужно что бы в "другом" поле были пустые значения когда введено значение не из списка. Я просто хотел не много оптимизировать систему, заменив DFirst() на Column() и получил проблему которую даже не сразу обнаружил. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2020, 14:46 |
|
Выборка из Источника строка комбобокса через Column(х, х) не всегда срабатывает. Почему?
|
|||
---|---|---|---|
#18+
Geizer1 поля Цвет(1 или 2) вычисляется КодЦвета...(1 или 2) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2020, 16:00 |
|
Выборка из Источника строка комбобокса через Column(х, х) не всегда срабатывает. Почему?
|
|||
---|---|---|---|
#18+
sdkuи еще:как КОД(кодовое поле) может вычисляться(оно НИКАК,кроме специальных действий, не зависит от пользователя и вычисляться не может-только определяться-а ХДЕ Вы его храните?)-подумайте над логикой работы Вашей БД Это вопрос БОЛЬШОЙ и для отдельной темы. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2020, 18:20 |
|
|
start [/forum/topic.php?fid=45&msg=39954553&tid=1610111]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
207ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 334ms |
total: | 637ms |
0 / 0 |