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


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

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

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

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

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

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

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

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

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

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

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

Единственное - придется сделать управление доп. таблицей (очистить всю, удалить одну или несколько из выбранных записей)...
Так... по быстрому пришло на ум... тонну кирпичей с места не сдвинешь, а по одному да еще по хитрому, - вполне...
...
Рейтинг: 0 / 0
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
    #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
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
    #39572192
guest_rusimport, да, оно. Спасибо!
...
Рейтинг: 0 / 0
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
    #39572246
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну почему Майкрософт до сих пор не сделал так, чтобы можно было выделить любые записи,
используя чекбоксы, не обновляя весь рекордсет?

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

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

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

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

Не обновляется-то сама ячейка в таблице.
...
Рейтинг: 0 / 0
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
    #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
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
    #39572362
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделал и вот что пишет
...
Рейтинг: 0 / 0
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
    #39572364
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а так?,

Что подкрутить?
...
Рейтинг: 0 / 0
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
    #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
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
    #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
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
    #39572374
а так?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я всегда все открываю с adOpenStatic и adLockBatchOptimistic
...
Рейтинг: 0 / 0
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
    #39572378
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а так?,

Вы наверное с SQL сервером работаете?

А у меня просто mdb файл в качестве базы.

Может поэтому у меня не работает?
...
Рейтинг: 0 / 0
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
    #39572384
а так?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вроде, работает
...
Рейтинг: 0 / 0
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
    #39572387
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а так?,

Вот на этом я застопорился:

Me.ResyncCommand = "select top 1 t.*,tt.ss from t left join tt on t.id=tt.t_id where t.id=?"


У меня есть свой запрос с параметром. Там id = [parId]

Как его правильно указать здесь, чтобы id строки был передан в запрос?
...
Рейтинг: 0 / 0
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
    #39572388
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот, что у меня сейчас после клика на поле:
...
Рейтинг: 0 / 0
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
    #39572392
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно вот так запрос указать? Но так не работает. А как тогда?

Me.Form.ResyncCommand = "{qryBookID (?)}"


В этом запросе должны быть все поля строчки в таблице, или можно пару полей в запросе только указать?
...
Рейтинг: 0 / 0
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
    #39572401
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а так?,

Если на поле повесить условное форматирование то команда
ресинк дёргает весь экран.

Но всё равно спасибо за подсказки.
Никогда не работал с ADO в таком ключе.
Очень интересно)

Вопрос: У меня есть сохранённый запрос. Как его подставить сюда? И должен ли этот запрос содержать все поля из которых состоит строчка на экране?

Me.ResyncCommand = "select top 1 t.*,tt.ss from t left join tt on t.id=tt.t_id where t.id=?"
...
Рейтинг: 0 / 0
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
    #39572638
а так?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторИ должен ли этот запрос содержать все поля из которых состоит строчка на экране?
Да, обязательно. Сам запрос может быть другой - проще (см вложение).
К сожелению, при работе с табл. акцесса не получается просто указать имя сохраненного запроса, как при обр. к базе МС СКЛ.
...
Рейтинг: 0 / 0
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
    #39572748
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а так?,

Заработало! Потрясающе! )
Не знал до этого, что так можно.

Как же теперь убрать подёргивания экрана?
Есть условия на полях, которые раскрашивают поля.
Если их убрать. пострадает юзабилити)

Ресинк дёргает всю условную раскраску.
...
Рейтинг: 0 / 0
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
    #39573205
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Осподе, зомбированные жертвы кодирования.

1. У тредстартера MS SQL - "200 тысяч записей" для него - пустое место.
2. Не надо бороться с Access-ом. В неравной борьбе победит Access.
3. Тредстартер брешет, яко сивый мерин. При постановке галочки в форме - обновляется ОДНА запись и НИЧЕГО с сервера не тянется.
4. При условии, что сам "программизд" не вызывает Requery/Refresh.
5. Если ужо у тредстартера фсе так печально с рассудком - пущай задействует временную таблицу.
...
Рейтинг: 0 / 0
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
    #39573207
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222У тредстартера MS SQL - "200 тысяч записей" для него - пустое место
Для сети не пустое место, тормозить будет
aleks222При постановке галочки в форме - обновляется ОДНА запись и НИЧЕГО с сервера не тянется.
У человека кроме всего прочего условное форматирование, из-за него может быть дополнительный трафик и мерцание. В формах Акс вообще "дергает" бэкенд плохо предсказуемо

Ну и выражения выбирайте, хамить не надо
...
Рейтинг: 0 / 0
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
    #39573319
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222Осподе, зомбированные жертвы кодирования.

1. У тредстартера MS SQL - "200 тысяч записей" для него - пустое место.
2. Не надо бороться с Access-ом. В неравной борьбе победит Access.
3. Тредстартер брешет, яко сивый мерин. При постановке галочки в форме - обновляется ОДНА запись и НИЧЕГО с сервера не тянется.
4. При условии, что сам "программизд" не вызывает Requery/Refresh.
5. Если ужо у тредстартера фсе так печально с рассудком - пущай задействует временную таблицу.

Уважаемый Коллега!

1. У меня не SQL сервер. А обычный mdb файл в качестве базы.
200 тысяч записей - это пустое место. Но для акса - это уже не пустое место.

2. Здесь мне всё равно кто победит.

3. Ничего у Вас не обновится, если у Вас статик рекордсет или даже динамик. Запрос с джойнами, с группировками. Поэтому ставь галочку сколько хочешь, сама она не обновится.

Более я того я применил ресинк c ADO и всё работает (НО не работает под рантайм 2016).
Также условное форматирование дёргает экран.

4. При условии, что сам "программизд" не вызывает Requery/Refresh.
Эти команды приходится давать, потому что статик рекордсет

5. Если ужо у тредстартера фсе так печально с рассудком - пущай задействует временную таблицу.[/quot]

))))))))))
...
Рейтинг: 0 / 0
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
    #39573323
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShinaleks222У тредстартера MS SQL - "200 тысяч записей" для него - пустое место
Для сети не пустое место, тормозить будет
aleks222При постановке галочки в форме - обновляется ОДНА запись и НИЧЕГО с сервера не тянется.
У человека кроме всего прочего условное форматирование, из-за него может быть дополнительный трафик и мерцание. В формах Акс вообще "дергает" бэкенд плохо предсказуемо

Ну и выражения выбирайте, хамить не надо


С ADO всё работает. Но происходит мерцание экрана. Ну как обычно, одно заработало, зато другое точно уже никак не сделать.
...
Рейтинг: 0 / 0
Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
    #39573326
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну собственно, чтобы обойти проблемы, я решил поменять реализацию бизнес-логики.
Акс действительно дёргает условную раскраску.
...
Рейтинг: 0 / 0
38 сообщений из 38, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Каким образом в табличке на форме отметить нужные записи, без обновления запроса?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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