Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Каким образом в табличке на форме отметить нужные записи, без обновления запроса? / 25 сообщений из 38, страница 1 из 2
19.12.2017, 13:08
    #39571951
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
Есть форма. В ней таблица (динамический recordset на основе тяжёлого запроса).
Каким образом в табличке отметить нужные записи, без обновления запроса?
Нагляднее всего ставить галочки, но при этом приходится обновлять весь Recorset, чтобы увидеть эти галочки.
И это получается долго.
Пока ничего не могу придумать.
Хочется быстро поставить галочки в нужные записи.
...
Рейтинг: 0 / 0
19.12.2017, 13:52
    #39571982
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
Вы хотите ставить галочки прямо в форме? А что мешает? Или запрос не обновляемый?
Для какой цели это вам нужно?
На этом сайте демонстрировалось решение с отвязанными флажками. Возможно коллеги вам кинут ссылку.
Также, возможно, подойдет элемент "Список" с мультивыделением.
...
Рейтинг: 0 / 0
19.12.2017, 14:06
    #39572003
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
Анатолий ( Киев )Вы хотите ставить галочки прямо в форме? А что мешает? Или запрос не обновляемый?
Для какой цели это вам нужно?
На этом сайте демонстрировалось решение с отвязанными флажками. Возможно коллеги вам кинут ссылку.
Также, возможно, подойдет элемент "Список" с мультивыделением.


В таблице за сотню тысяч записей. Часть выбирается тяжёлым запросом и отобранные записи показываю на форме в таблице.

Запрос обновляемый. Если ставлю галочки - долго перерисовывается табличка.

Цель: отобрать, пометить нужные записи.

Список с мультивыделением - он может быть многоколоночный ? Его можно раскрашивать?
...
Рейтинг: 0 / 0
19.12.2017, 14:06
    #39572004
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
Анатолий ( Киев )Вы хотите ставить галочки прямо в форме? А что мешает? Или запрос не обновляемый?
Для какой цели это вам нужно?
На этом сайте демонстрировалось решение с отвязанными флажками. Возможно коллеги вам кинут ссылку.
Также, возможно, подойдет элемент "Список" с мультивыделением.
Это было произведение уважаемого qwerty112
http://www.sql.ru/forum/1060183/multivaluecombo-filtr-kak-v-eksele-primer?mid=15153525#15153525
...
Рейтинг: 0 / 0
19.12.2017, 14:16
    #39572012
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
guest_rusimport,

Спасибо за ссылку)

Для моей задачи, пометить записи в таблице, нужно что-то другое)
Хотя вряд ли получится. Пометить записи это половина дела.
Потом ещё например отфильтровать такие записи.
Тоесть недостаточно только на экране как-то пометить. В базе тоже нужно.

Идеально было бы по щелчку мыши подкрасить поле на экране, и запросом обновить одну запись.
И так следующую.
И не обновлять в момент пометки всю таблицу на экране.

Наверное, такое невозможно сделать. Хотя кто знает.
...
Рейтинг: 0 / 0
19.12.2017, 14:27
    #39572021
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
Например сделать выделение записей в таблице в броузере. Вообще не проблема.
Нажал мышку, улетел запрос на сервер, пришёл ответ - подкрасил только одну запись.
Работа c DOM моделью.

А сделать подобное с табличкой на форме в Accesse, когда за кадром больше 200 тысяч записей - целое дело.

Хотя я может чего-то не умею)
...
Рейтинг: 0 / 0
19.12.2017, 14:44
    #39572041
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
guest_rusimportЭто было произведение уважаемого qwerty112
http://www.sql.ru/forum/1060183/multivaluecombo-filtr-kak-v-eksele-primer?mid=15153525#15153525 Хорошая штучка, но не оно.
Там дополнительный флажок на записи ленточной/табличной формы. У него источник данных - функция, возвращающая True, если ID (или BookMark) записи есть в коллекции в модуле формы. На DblClick флажка значение заносится в коллекцию или удаляется оттуда.
Как-то так. Пример скачивал, но недавно вирус Петя сильно насрал...
...
Рейтинг: 0 / 0
19.12.2017, 14:46
    #39572042
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
Анатолий ( Киев )guest_rusimportЭто было произведение уважаемого qwerty112
http://www.sql.ru/forum/1060183/multivaluecombo-filtr-kak-v-eksele-primer?mid=15153525#15153525 Хорошая штучка, но не оно.
Там дополнительный флажок на записи ленточной/табличной формы. У него источник данных - функция, возвращающая True, если ID (или BookMark) записи есть в коллекции в модуле формы. На DblClick флажка значение заносится в коллекцию или удаляется оттуда.
Как-то так. Пример скачивал, но недавно вирус Петя сильно насрал...


Спасибо) Попробую) Знаю, что коллеги помогут на этом форуме!
...
Рейтинг: 0 / 0
19.12.2017, 15:23
    #39572076
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
NeboЕсть форма. В ней таблица (динамический recordset на основе тяжёлого запроса).
Каким образом в табличке отметить нужные записи, без обновления запроса?
Нагляднее всего ставить галочки, но при этом приходится обновлять весь Recorset, чтобы увидеть эти галочки.
И это получается долго.
Пока ничего не могу придумать.
Хочется быстро поставить галочки в нужные записи.

Можно сделать так (немного жертвуя наглядностью, но без компромиссов трудно):
1. В основной таблице должен быть ID (возможно скрыт) и например Наименование.
2. Делаем локальную вспомогательную таблицу юзера из двух полей ID и Наименование и показываем её в списке на форме.
3. Когда тыкаем в основную таблицу, ID и Наименование добавляются во вспомогательный список,
таким образом обновление нужно делать не на основную таблицу, а на вспомогательную...
4. Когда все выбрали нажимаем кнопочку и за один раз в основной таблице все что выбрано помечается и фильтруется...

Единственное - придется сделать управление доп. таблицей (очистить всю, удалить одну или несколько из выбранных записей)...
Так... по быстрому пришло на ум... тонну кирпичей с места не сдвинешь, а по одному да еще по хитрому, - вполне...
...
Рейтинг: 0 / 0
19.12.2017, 15:49
    #39572105
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
Анатолий ( Киев )guest_rusimportЭто было произведение уважаемого qwerty112
http://www.sql.ru/forum/1060183/multivaluecombo-filtr-kak-v-eksele-primer?mid=15153525#15153525 Хорошая штучка, но не оно.
Там дополнительный флажок на записи ленточной/табличной формы. У него источник данных - функция, возвращающая True, если ID (или BookMark) записи есть в коллекции в модуле формы. На DblClick флажка значение заносится в коллекцию или удаляется оттуда.
Как-то так. Пример скачивал, но недавно вирус Петя сильно насрал...
Тогда, вы, возможно имели ввиду этот пример :)
http://am.rusimport.ru/MsAccess/topic.aspx?ID=187
...
Рейтинг: 0 / 0
19.12.2017, 17:24
    #39572192
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
guest_rusimport, да, оно. Спасибо!
...
Рейтинг: 0 / 0
19.12.2017, 19:14
    #39572246
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
Ну почему Майкрософт до сих пор не сделал так, чтобы можно было выделить любые записи,
используя чекбоксы, не обновляя весь рекордсет?

Почему нельзя обновить, отдельную запись на экране даже если это статический Recordset
...
Рейтинг: 0 / 0
19.12.2017, 22:07
    #39572317
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
Нажал рядом с флажком - все флажки во всех записях вдруг установились.
...
Рейтинг: 0 / 0
19.12.2017, 22:08
    #39572318
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
Пардон)
понял
это двойной щелчок)
...
Рейтинг: 0 / 0
19.12.2017, 22:09
    #39572319
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
Вопрос: почему флажок устанавливается не быстро с задержкой, а снимается быстро ?
...
Рейтинг: 0 / 0
19.12.2017, 22:23
    #39572325
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
Когда ставлю флажки, то наблюдается сильное мерцание, там где идёт закраска оранжевым цветом.
Оно и понятно. Там условие.

Можно ли как-то сделать, чтобы не мерцало?
...
Рейтинг: 0 / 0
19.12.2017, 22:24
    #39572326
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
Мерцание в 2016 рантайме.
...
Рейтинг: 0 / 0
19.12.2017, 22:36
    #39572330
а так?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
авторПочему нельзя обновить, отдельную запись на экране даже если это статический Recordset
Это можно в АДО-рекордсете
...
Рейтинг: 0 / 0
19.12.2017, 23:13
    #39572354
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
а так?авторПочему нельзя обновить, отдельную запись на экране даже если это статический Recordset
Это можно в АДО-рекордсете

https://msdn.microsoft.com/en-us/vba/access-vba/articles/bind-a-form-to-an-ado-recordset

попробовал сделать как в этой ссылке.

Не обновляется-то сама ячейка в таблице.
...
Рейтинг: 0 / 0
19.12.2017, 23:30
    #39572360
а так?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
по двойному клику можно выполнить запрос на изменение значения поля (флажка), а потом - метод Resync рекордсета формы с параметром adAffectCurrent

Код: vbnet
1.
2.
3.
4.
5.
Public Function GetRecalcArtADO() As Boolean
    RecalcArtADO NewTGoods.Form.COD_ARTIC, NewTGoods.Form.ID_SCLAD
    MsgBox "OK!", vbInformation, "УФО+"
    NewTGoods.Form.Recordset.Resync 1
End Function
...
Рейтинг: 0 / 0
19.12.2017, 23:35
    #39572362
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
сделал и вот что пишет
...
Рейтинг: 0 / 0
19.12.2017, 23:36
    #39572364
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
а так?,

Что подкрутить?
...
Рейтинг: 0 / 0
19.12.2017, 23:42
    #39572366
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
вот так открываю:
сам запрос, его тип (Динамический набор)

с ADO я работал мало)

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Private Sub Form_Open(Cancel As Integer)

    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset

    'Use the ADO connection that Access uses
    Set cn = CurrentProject.AccessConnection
    'Create an instance of the ADO Recordset class,
    'and set its properties
    Set rs = New ADODB.Recordset
    With rs
    Set .ActiveConnection = cn
        .Source = "Books"
        .LockType = adLockOptimistic
    .CursorType = adOpenDynamic
    .Open
    End With
    'Set the form's Recordset property to the ADO recordset
    Set Me.Recordset = rs
    Set rs = Nothing
    Set cn = Nothing

End Sub
...
Рейтинг: 0 / 0
19.12.2017, 23:48
    #39572372
а так?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
Сначала после присвоения рекордсета форме - указать уникальную таблицу.
Если не поможет - то еще ресинккомманд
Код: vbnet
1.
2.
3.
    Set Me.NewTGoods.Form.Recordset = Rst
    Me.NewTGoods.Form.UniqueTable = "scl_artc"
    Me.NewTGoods.Form.ResyncCommand = "{call Artc_view25_Resync (?,?)}"
...
Рейтинг: 0 / 0
19.12.2017, 23:51
    #39572374
а так?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
я всегда все открываю с adOpenStatic и adLockBatchOptimistic
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Каким образом в табличке на форме отметить нужные записи, без обновления запроса? / 25 сообщений из 38, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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