Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Неправильно выделяются строчки в списке / 16 сообщений из 16, страница 1 из 1
23.03.2016, 10:00
    #39198531
redfenix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильно выделяются строчки в списке
Имеется некоторый список АС(автоматизированная система) при выборе значения из которого из базы данных подгружается
список зданий и помещений.Из них выделяются те, которые принадлежат данной АС.
Так вот..при первом клике на список АС все нормально выделяется,а после если кликать 2,3 раз и т.д. выделяется неправильно.

Список строчек которые нужно выделять загружается из запроса в белый список справа(ListSelection).
Код изменения выделения списка помещений:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Private Sub AC_Click()
Me.[Buildings].Requery
For i = 0 To Me![Buildings].ListCount
Me![Buildings].Selected(i) = False
Next

For i = 0 To Me![Buildings].ListCount
For j = 0 To Me![ListSelection].ListCount
If Me![Buildings].Column(1, i) = Me![ListSelection].Column(1, j) Then
Me![Buildings].Selected(i) = True
End If
Next
Next
...
Рейтинг: 0 / 0
23.03.2016, 11:01
    #39198586
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильно выделяются строчки в списке
Процедуру можно упростить
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Private Sub AC_Click()
  For i = 0 To Me.[Buildings].ListCount
    For j = 0 To Me.[ListSelection].ListCount
      Me.[Buildings].Selected(i) = Me.[Buildings].Column(1, i) = Me.[ListSelection].Column(1, j)
    Next
  Next
................
...
Рейтинг: 0 / 0
23.03.2016, 12:57
    #39198723
redfenix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильно выделяются строчки в списке
__Michelle,присваивание неправильное,типы данных разные
Код: vbnet
1.
Me.[Buildings].Selected(i) = Me.[Buildings].Column(1, i)
...
Рейтинг: 0 / 0
23.03.2016, 13:07
    #39198735
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильно выделяются строчки в списке
redfenix,

)))
Это не присваивание.
Присваивается результат сравнения.
Зачем кусок оторвали?)))

Скопируйте то, что Вам предложено, полностью и вставьте в код.
Выполните.
Ну и как?)))
...
Рейтинг: 0 / 0
23.03.2016, 13:08
    #39198739
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильно выделяются строчки в списке
Вот Вам скобки для ясности
Код: vbnet
1.
Me.[Buildings].Selected(i) = (Me.[Buildings].Column(1, i) = Me.[ListSelection].Column(1, j))
...
Рейтинг: 0 / 0
23.03.2016, 13:24
    #39198755
redfenix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильно выделяются строчки в списке
__Michelle,тем не менее данный код выдает ошибку type mismatch.
...
Рейтинг: 0 / 0
23.03.2016, 14:54
    #39198823
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильно выделяются строчки в списке
Вношу две поправки:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub AC_Click()
  For i = 0 To Me.Buildings.ListCount - 1
    For j = 0 To Me.ListSelection.ListCount - 1
      Me.Buildings.Selected(i) = Me.Buildings.Column(1, i) = Me.ListSelection.Column(1, j)
      If Me.Buildings.Selected(i) Then
        Exit For
      End If
    Next
  Next
................

Попробуйте.
...
Рейтинг: 0 / 0
23.03.2016, 15:47
    #39198874
redfenix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильно выделяются строчки в списке
__Michelle,да, так работает.Теперь осталось разобраться что не так со списком...
...
Рейтинг: 0 / 0
23.03.2016, 15:52
    #39198882
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильно выделяются строчки в списке
redfenix,
А что именно непонятно?
...
Рейтинг: 0 / 0
24.03.2016, 09:18
    #39199285
redfenix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильно выделяются строчки в списке
__Michelle,в архиве рисунки прикреплены.Если на одно и тоже поле в списке АС кликать,то сначала все нормально выделяется.Потом выделение начинает пропадать если кликать еще раз.
...
Рейтинг: 0 / 0
24.03.2016, 09:56
    #39199313
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильно выделяются строчки в списке
Покажите полный текст процедуры AC_Click().
...
Рейтинг: 0 / 0
25.03.2016, 09:29
    #39200336
redfenix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильно выделяются строчки в списке
__Michelle,поменял название списка помещений с buildings на rooms более подходящее.А список зданий теперь называется buildings
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
Me![ListSelection].Requery
Dim i As Integer
Dim j As Integer
If Me![ListSelection].ListCount > 0 Then
For i = 0 To Me![Buildings].ListCount
For j = 0 To Me![ListSelection].ListCount
If Me![Buildings].Column(1, i) = Me![ListSelections].Column(1, j) Then
Me![Buildings].Selected(i) = True
End If
Next
Next
Me![ID] = Me.Buildings.Column(1)
Me.Rooms.Requery

For i = 0 To Me![Rooms].ListCount - 1
For j = 0 To Me![ListSelection].ListCount - 1
Me![Rooms].Selected(i) = Me![Rooms].Column(1, i) = Me![ListSelection].Column(0, j)
If Me![Rooms].Selected(i) Then
 Exit For
End If
Next
Next
Else
  For i = 0 To Me![Buildings].ListCount
  If (Me![Buildings].Column(1, i) = "не выбрано") Then
  Me![Buildings].Selected(i) = True
  Me![ID] = Me.Buildings.Column(1)
  Me![Rooms].Requery
  For j = 0 To Me![Rooms].ListCount
  Me![Rooms].Selected(j) = False
  Next
  Exit For
  End If
  Next
End If
...
Рейтинг: 0 / 0
25.03.2016, 14:14
    #39200622
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильно выделяются строчки в списке
1. Конечное значение счетчика цикла For везде должно быть .... ListCount - 1, так как отсчет с 0.
2. Все эти Requery, они зачем?
3. Нет очистки ранее выбранных Buildings.
4. Квадратные скобки зачем, без них не воспринимается?
5. Код все же желательно структурировать отступами во избежание каши.
6. Dim обычно идет самой первой строкой.
7. Ответ раз в сутки - это занятно.)))
...
Рейтинг: 0 / 0
25.03.2016, 15:18
    #39200737
redfenix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильно выделяются строчки в списке
__Michelle,
1)Поправил
2)При выборе АС мы выделяем здание которое принадлежит АС в списке buildings и помещения в списке rooms.Но у каждого здания разный список помещений поэтому список обновляется заново.
3)Там нету мультивыбора и все работает без очистки
4)На всякий случай)
5)тут есть какая-нибудь функция автоматического форматирования?
6)учту,на C# программирую в основном,а там объявление переменных идет непосредственно перед их использованием.
7)на работе нету прямого выхода в интернет,приходится ходить на отдельный компьютер плюс не всегда есть время.
...
Рейтинг: 0 / 0
25.03.2016, 15:44
    #39200760
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильно выделяются строчки в списке
redfenix,

Ну, ладно.
После 1) ничего в лучшую сторону не изменилось?

5) Кажется, только автоотступы по умолчанию (повторяет отступ предыдущей строки).
Я делаю вручную.
Если пользоваться Notepad++, там можно больше.
Но мне и так привычно.
...
Рейтинг: 0 / 0
25.03.2016, 16:33
    #39200803
redfenix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильно выделяются строчки в списке
__Michelle,после всех изменений стал меньше этот баг проявляться,но никуда не пропал.Решил проверить значение поля Me![Rooms].Selected(i) для всех строчек по отдельности.Результаты в архиве
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Неправильно выделяются строчки в списке / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]