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

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

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

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

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

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

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

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

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

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

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

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

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

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

А вообще
автор"Необходимо сохранить тиекущее поле передвыполнением макрокоманды Обновление". C чем это может быть связано?
На gotfocus главной формы ничего не выполняется?
...
Рейтинг: 0 / 0
28.05.2004, 17:13
    #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
28.05.2004, 17:34
    #32539419
Invisible
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение области данных в рекордсете формы
Похоже просто идет самопроизвольное обновление все подчиненной формы.
...
Рейтинг: 0 / 0
28.05.2004, 19:20
    #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
28.05.2004, 19:22
    #32539553
Invisible
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение области данных в рекордсете формы
Спасибо!!!!! Это то, что надо!!! :)
...
Рейтинг: 0 / 0
28.05.2004, 21:33
    #32539644
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение области данных в рекордсете формы
извиняюсь перед paparome за опечатку.

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

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

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


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