powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Изменение области данных в рекордсете формы
20 сообщений из 20, страница 1 из 1
Изменение области данных в рекордсете формы
    #32538946
Invisible
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди, хочу изменить значение в рекордсете формы по отобранным данным. Как это сделать?

FindFirst наверное будет долго и глупо, а вот как-нить recordset where.
...
Рейтинг: 0 / 0
Изменение области данных в рекордсете формы
    #32538954
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
currentdb.execute "update ...",dbfailonerror
me.requery
...
Рейтинг: 0 / 0
Изменение области данных в рекордсете формы
    #32538966
Invisible
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
УГУ так сейчас и работает, а через рекордсет реально?
...
Рейтинг: 0 / 0
Изменение области данных в рекордсете формы
    #32538987
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем?
...
Рейтинг: 0 / 0
Изменение области данных в рекордсете формы
    #32538998
Invisible
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может это в отдельную тему надо, но вот вопрос по Requery. Есть форма, в ней вложенная ленточная. В главной форме Form_Activate() в которой Вложенная.requery. Ставлю галку во вложенной ленточной, потом если переключиться в другое окно, при возвращении он пишет - "Необходимо сохранить тиекущее поле передвыполнением макрокоманды Обновление". C чем это может быть связано?
...
Рейтинг: 0 / 0
Изменение области данных в рекордсете формы
    #32539005
Invisible
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 paparome: А действительно! :)
...
Рейтинг: 0 / 0
Изменение области данных в рекордсете формы
    #32539033
Invisible
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно, вот для чего. В форму идут преобразованные ID, поэтому в рекордсете формы будет легче выделить однородную группу по одному ID. Нсли идти по currentdb.execute, то это будет долго.

Хотелось бы через рекордсет. Это реально? или ничего не остается, кроме как findfirst?
...
Рейтинг: 0 / 0
Изменение области данных в рекордсете формы
    #32539134
Invisible
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди, ну неужели нельзя как-то хитро воспользоваться recordsetclone(where), потом синхронизировать(как?) как-нить эти рекордсеты.
...
Рейтинг: 0 / 0
Изменение области данных в рекордсете формы
    #32539240
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего не понял

авторВ форму идут преобразованные ID
Но почему бы не оставить в таком случае в форме скрытое поле с непреобразованным ид? В MDB этого делать даже не надо, просто пишем
me!ИмяПоляТаблицыИлиЗапроса
и получаем содержимое поля. Кстати, речь о mdb?

автор, поэтому в рекордсете формы будет легче выделить однородную группу по одному ID.
А что значит "легче выделить группу"?

авторНсли идти по currentdb.execute, то это будет долго.
Сомневаюсь я что-то...
...
Рейтинг: 0 / 0
Изменение области данных в рекордсете формы
    #32539283
Invisible
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 GEO
автор
Нсли идти по currentdb.execute, то это будет долго.

Сомневаюсь я что-то...

Каждый ID в таблице контекстно закодирован, поэтому нужно будет писать раскодировку на все записи, после чего уже делать что-либо - это долго (проверено).

Но почему бы не оставить в таком случае в форме скрытое поле с непреобразованным ид? В MDB этого делать даже не надо, просто пишем

В источнике данных формы уже есть раскодированное поле, именно поэтому и был задан вопрос по работе именно с данными формы, а не таблицы.

А что значит "легче выделить группу"?

вообще цель: очистить флаги у строк с определенным ID (Кстати, он не уникален)
...
Рейтинг: 0 / 0
Изменение области данных в рекордсете формы
    #32539313
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторочистить флаги у строк с определенным ID (Кстати, он не уникален)

Код: plaintext
1.
2.
Update tbl1
Set flag = false
where id = [ваш определенный ID]

ИМХО: будет быстрее чем по recordset'у лазить
...
Рейтинг: 0 / 0
Изменение области данных в рекордсете формы
    #32539333
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен с pararome.
Возьми да сделай таблицу с кучей строк и какими-нибудь данными.
Поменяй в ней несколько записей по условию посредством запроса, а потом через рекордсет. И сравни время.

А вообще
автор"Необходимо сохранить тиекущее поле передвыполнением макрокоманды Обновление". C чем это может быть связано?
На gotfocus главной формы ничего не выполняется?
...
Рейтинг: 0 / 0
Изменение области данных в рекордсете формы
    #32539378
Invisible
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет определенного ID таблице - он закодирован и его показывать, временно сохраняя где-либо, нельзя!!!

Получится так:
Update tbl1
Set flag = false
where id = [Раскодировка(ваш определенный ID)]

это долго. :)

Private Sub flag_AfterUpdate()
Dim prep As Long, s As Long
If flag Then
prep = [ Код ]
PredCena (prep)
With Me.Recordset
s = ![ Index ]
.FindFirst ("[ Код ]=" & prep & " and [ Флаг ]=true and Index <>" & s)
If Not (.NoMatch) Then
Do
.Edit
![ Флаг ] = False
.Update
.FindNext ("[ Код ]=" & prep & " and [ Флаг ]=true and Index <>" & s)
Loop Until .NoMatch
End If
End With
End If
End Sub

Все работает, но идет какое-то нелепое обновление формы, сразу по нескольким полям, хотя "я их нэ заказывал".

Index нужен только для того, чтобы не стирать флаг там, где мы его ставим(он уникален).
Код - это раскодированный ID в форме (он не уникален)
Флаг - цель всего. :)

1)Возможно, вместо Index как-то использовать Bookmark?
2)точно не знаю, но если проводить все на recordsetclone, наверное все будет быстрее. Как потом синхронизировать изменения флагов?
3)Возможно ли выделить как-то recordset(where) типа pr=[Код]: recordset("select * where [Код]=" & pr) и воспользоваться movenext. (Чтобы уйти от Find)?
4)Если по п.№3 будет отдельный рекордсет, то как потом синхронизировать?

Вот... Спасибо заранее.
...
Рейтинг: 0 / 0
Изменение области данных в рекордсете формы
    #32539419
Invisible
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже просто идет самопроизвольное обновление все подчиненной формы.
...
Рейтинг: 0 / 0
Изменение области данных в рекордсете формы
    #32539552
Invisible
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотри сюда:

Private Sub flag_AfterUpdate()
Dim prep As Long, s As Long, rec As DAO.Recordset
If flagThen
prep = [Код]
s = Me.Recordset![Index]
Me.RecordsetClone.Filter = "[Код]=" & prep & " and [Флаг]=true and Index<>" & s
Set rec = Me.RecordsetClone.OpenRecordset
While Not rec.EOF
rec.Edit
rec![Флаг] = False
rec.Update
rec.MoveNext
Wend
flag.Requery
End If
End Sub

И у тебя все работает. Чисто и аккуратно.
...
Рейтинг: 0 / 0
Изменение области данных в рекордсете формы
    #32539553
Invisible
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!!!!! Это то, что надо!!! :)
...
Рейтинг: 0 / 0
Изменение области данных в рекордсете формы
    #32539644
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
извиняюсь перед paparome за опечатку.

Зы. Из всего топика понял совсем мало. Ни что, ни почему не работает, ни почему заработало :(

:)
...
Рейтинг: 0 / 0
Изменение области данных в рекордсете формы
    #32539645
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Чем извиняться, взял бы да подправил... :^)
...
Рейтинг: 0 / 0
Изменение области данных в рекордсете формы
    #32539652
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:) неправильно это, имхо (хотя и употребляю иногда) Написал, так написал. Хотя раз удалил подряд два своих топика, часов в семь-восемь утра, когда просмотров почти не было, и мне вдруг опять случайно приспичило дополнить Serge Gavrilov. Как то неподрассчитал я :)) И через минут 5 удалил. :))
...
Рейтинг: 0 / 0
Изменение области данных в рекордсете формы
    #32539796
Invisible
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аай, люди, оказывается Recordsetclone в купе в requery не очень-то чисто и гладко работает.

Как можно синхронизировать изменения me.recordsetclone c me.recordset???
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Изменение области данных в рекордсете формы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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