Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема с Requery / 23 сообщений из 23, страница 1 из 1
01.07.2002, 13:25
    #32034496
Zenia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Requery
У меня подключена MsAccess база!!!
MyDB = OpenDatabase(C:\....\aaa.mdb)
....
....
....Здесь я делаю с ней операции добавления и тд
....
....
Подформа должна обновляться по идее после команды
Me!AAASub.Form. Requery
Но ничего не помогает...
...
Рейтинг: 0 / 0
01.07.2002, 13:45
    #32034505
Алексей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Requery
А если Requery сделать секунд через 10 - 20 после внесения данных ?
...
Рейтинг: 0 / 0
01.07.2002, 14:03
    #32034511
Zenia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Requery
А как лучше задать этот интервал
...
Рейтинг: 0 / 0
01.07.2002, 14:18
    #32034516
Алексей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Requery
я не стал выяснять этот вопрос , просто при таком обновлении вставил задержку...
...
Рейтинг: 0 / 0
01.07.2002, 14:24
    #32034517
Zenia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Requery
Спасбо Алексей программа заработала, но я задал интервал FOR...NEXTтом те компьютер считает до 50000000. Это правильно?
...
Рейтинг: 0 / 0
01.07.2002, 15:03
    #32034531
Алексей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Requery
если программа будет работать на компах с одинаковым быстродействием и загруженностью то можно и так
а если нужна фиксированная задержка то лучше запоминать значение timer() и ждать пока он дорастет до нужного значения

а вообще -то подход не совсем корректный. Правильнее было бы заставить аксес обновить данные в пилинкованных таблицах, я пока не знаю как
...
Рейтинг: 0 / 0
01.07.2002, 16:31
    #32034559
sFx
sFx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Requery
Вообще то, для завершения незавершенных команд в том числе внесений и выполнения других команд ОС используется DoEvents и DBEngine.idle, посмотрите хелп по этим словам
...
Рейтинг: 0 / 0
15.07.2002, 12:49
    #32036701
Doc
Doc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Requery
Надо закомитить измененные данные (закрыть измененный рекордсет предварительно вызвав необходимые методы для коммитов) а потом requery.
...
Рейтинг: 0 / 0
15.07.2002, 16:52
    #32036757
Zenia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Requery
Что такое КОМИТЕТЬ и КОММИТЫ
...
Рейтинг: 0 / 0
15.07.2002, 16:56
    #32036758
sFx_2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Requery
Commit - выполнение. используется например для транзакций. в данномслучае, я думаю, имеется ввиду принудительное сохранение изменений.
...
Рейтинг: 0 / 0
15.07.2002, 20:54
    #32036814
Zenia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Requery
Можно обьяснить как пользоваться этим Commit'ом? ПОЖАЛУЙСТА. У меня англ. хелп я ничего там не понял
...
Рейтинг: 0 / 0
16.07.2002, 09:57
    #32036846
sFx_2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Requery
Вот выжимки из хелпа :

Данные методы позволяют управлять выполнением транзакции во время сеанса, определяемого объектом Workspace:

· BeginTrans открывает новую транзакцию.
· CommitTrans завершает текущую транзакцию и сохраняет изменения.
· Rollback отменяет текущую транзакцию и восстанавливает базы данных, принадлежащие объекту Workspace, в том состоянии, в котором они находились перед началом текущей транзакции.

Синтаксис

рабочаяОбласть.BeginTrans | CommitTrans [dbFlushOSCacheWrites] | Rollback

Прототип рабочаяОбласть представляет объектную переменную, задающую объект Workspace, содержащий базы данных, которые используют транзакции.


Кстати, DoEvents и Idle не помогли?
...
Рейтинг: 0 / 0
16.07.2002, 12:23
    #32036888
Zenia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Requery
Нифига... DoEvents и Idle засовывал куда угодно, они работают сами посебе, а должного результата не дают...
Кароче коллеги, ТОВАРИЩИ я борюсь с этим обновлением записи уже 2 месяца и мне уже не смешно (...)
Если уже этот Commit не поможет, то (...)
СПАСИБО ВСЕМ ЗА HELP...
PS (...) - матюкальник
...
Рейтинг: 0 / 0
16.07.2002, 16:30
    #32036986
sFx
sFx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Requery
Если хочешь, пришли свою базу в урезанном виде, и я посмотрю, что можно сделать.
мыло realgraf@hotmail.com
...
Рейтинг: 0 / 0
19.07.2002, 10:54
    #32037663
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Requery
если разберетесь дайте знать ...

мысль .. а если после обновления данных рекорсетом запустить локальное обновление в прилинкованную таблицу через docmd.runsql или DAO.recordset какого -нибудь temp - поля - может после этого аксесс поймет что надо перезапросить исходную таблицу?

я к сожалению грохнул проблемную базу и сейчас проверить не могу но вопрос остался...
...
Рейтинг: 0 / 0
19.07.2002, 11:28
    #32037678
Toking
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Requery
Обновить форму можно просто
RecordSource = RecordSource
...
Рейтинг: 0 / 0
19.07.2002, 11:48
    #32037695
sFx
sFx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Requery
Разобрались:
код который был
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
 Dim Mydb As Database, MyTable As Recordset

        Set Mydb = OpenDatabase( "C:\TEMP\aaa1.mdb" )
        Set MyTable = Mydb.OpenRecordset( "Table1" , dbOpenDynaset)
        
          With MyTable
   
            .AddNew
            !bbbb = Int(Timer)
            .Update
            .Bookmark = .LastModified
        End With
        me.list0.requery

        MyTable.Close
        Mydb.Close
    
End Sub 

вот решение:
при использовании методов Addnew и update, Jet не сразу заносит данные в таблицу, поэтому после закрытия рекордсета надо ставить DBEngine.Idle dbRefreshCache
в принципе этот параметр можно и не использовать, ноон принуждает запись из кэша данных в mdb.
И так вот результат:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Private Sub Command2_Click()

Dim Mydb As Database, MyTable As Recordset

        Set Mydb = OpenDatabase( "C:\TEMP\aaa1.mdb" )
        Set MyTable = Mydb.OpenRecordset( "Table1" , dbOpenDynaset)
        
        DBEngine.Idle
        With MyTable
   
            .AddNew
            !bbbb = Int(Timer)
            .Update
            .Bookmark = .LastModified
        End With
        
        MyTable.Close
        Mydb.Close
    DBEngine.Idle dbRefreshCache
    Me.Refresh
End Sub
...
Рейтинг: 0 / 0
25.07.2002, 12:59
    #32038734
Zenia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Requery
НАЧНЕМ СНОВА!!!
Ситуация:
У меня есть форма "Оплата счетов" на ней три подформы "Счета не оплаченые", "Счета которые хочет оплатить бухгалтер" и "Оплаченые счета" те DoubleClick на не оплаченом счете он от туда пропадает и появляется во второй подформе нажав на "оплатить" счета попадают в третию подформу... КАРОЧЕ ОДНИ ОБНОВЛЕНИЯ
Система которая предьявлена через "Idle" работает, но когда в базе появляется много записей не хочет!!!
Решение:
Пока что база обновляется через таймер, время которого растет в математической прогрессии, но это порнография...
И что самое смешное менять систему нельзя, по другому они работать не умеют и не ХОТЯТ
Базу я уже много раз переделывал
...
Рейтинг: 0 / 0
25.07.2002, 14:04
    #32038772
sFx
sFx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Requery
Я уже писал, но повторюсь:
Добавлять записи в таблицу через рекордсет, это как автогеном через кое-что зубы лечить.. Надо использовать SQL запросы на обновление, добавление и т.д. работают быстро, добавляют и обновляют сразу много записей(если нужно конечно) и задержек с записью строк нет.
Попробуй использовать запросы:
currenDB.Execute("SQL-запрос на добавление")
...
Рейтинг: 0 / 0
26.07.2002, 15:30
    #32039137
Zenia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Requery
А не могли бы подсказать где взять примерчик с SQL-запросом на добавление?
...
Рейтинг: 0 / 0
26.07.2002, 17:58
    #32039210
sFx
sFx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Requery
Дык эта..... делаем в конструкторе запрос на добавление, потом переходим в SQL выражение, копируем его и вставляем в CurrentDB.Execute("SQL")... и все.. получается, что мы выполняет просто запрос.
...
Рейтинг: 0 / 0
26.07.2002, 18:01
    #32039211
Maxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Requery
ну насколко мне известно типа -того(синтаксии лучше проверь в хелпе):)))
Код: plaintext
1.
insert into Table values(value1,value2....)
insert into Table(field1,field2.....) values(value1,value2....)

Good Luck
...
Рейтинг: 0 / 0
26.07.2002, 18:30
    #32039215
Zenia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Requery
И так все просто решается?
А я лапух по балотам ходил и вам мозги пудрил!!!
Спасибо!!!
P.S. Гляжу, может настоящим програмером стану?
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема с Requery / 23 сообщений из 23, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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