Подскажите, пожалуйста, как правильно сделать выделение в списке после requery.
Есть список, заполняемый через запрос. По клику на линии, данные подставляются в текстовые поля ниже, где редактируются и сохраняются, также может создаваться новая запись. Все работает, но хочется немного улучшить юзабилити, чтобы поле обновления списка при сохранении, выделялась либо так линия, которая редактировалась, либо последняя добавленная (не последняя/первая в списке, а по Id, полагаю через DMax, увы, руки кривы ) ).
Что-то вроде [vba]
Код
Private Sub btnSave_Click() Dim LineEdited As Integer Dim LineLastByID As Integer
If Me.txtIdLine <> "" Then 'если это редактируемая запись, то это поле не пустое (оно заполняется через Me.IdLine.Column(0) при requery) Set LineEdited = Me.txtIdLine Call Save Call Requery Me.lst.Selected(LineEdited) = True Else 'иначе это новая запись и выделяем строку с последним IdLine Call Save Call Requery Set LineLastByID = DMax("[IdLine]", "People") Me.lst.Selected(LineLastByID) = True End If End Sub
[/vba]ps: подозреваю что и без переменных можно обойтись..
Доброго дня,
Подскажите, пожалуйста, как правильно сделать выделение в списке после requery.
Есть список, заполняемый через запрос. По клику на линии, данные подставляются в текстовые поля ниже, где редактируются и сохраняются, также может создаваться новая запись. Все работает, но хочется немного улучшить юзабилити, чтобы поле обновления списка при сохранении, выделялась либо так линия, которая редактировалась, либо последняя добавленная (не последняя/первая в списке, а по Id, полагаю через DMax, увы, руки кривы ) ).
Что-то вроде [vba]
Код
Private Sub btnSave_Click() Dim LineEdited As Integer Dim LineLastByID As Integer
If Me.txtIdLine <> "" Then 'если это редактируемая запись, то это поле не пустое (оно заполняется через Me.IdLine.Column(0) при requery) Set LineEdited = Me.txtIdLine Call Save Call Requery Me.lst.Selected(LineEdited) = True Else 'иначе это новая запись и выделяем строку с последним IdLine Call Save Call Requery Set LineLastByID = DMax("[IdLine]", "People") Me.lst.Selected(LineLastByID) = True End If End Sub
[/vba]ps: подозреваю что и без переменных можно обойтись..user0
Сообщение отредактировал user0 - Воскресенье, 19.02.2017, 10:16