Разработка баз данныхРазработка баз данных

 Программирование  Программы  Ссылки  Обратная связь
     
. . .
. . .
startpage.htm Новости
about.htm О сайте
fileformat.htm I. Выбор технологии
clientserver.htm Преимущества клиент-серверной технологи
prepare.htm Переход от MDB к ADP
upsizing.htm Инструменты переноса данных
setupserver.htm Выбор версии и установка сервера
selectclient.htm Выбор версии MSAccess
formsreports.htm II. Формы, Отчеты MSAccess
queries.htm Запросы / ADO
inputparameters.htm Передача входных параметров
data_drivers.htm Библиотеки доступа к данным
forms.htm Формы MSAccess
requery.htm Обновление данных в форме
updatableform.htm Обновляемость данных в форме
dialogform.htm Остановка кода пока открыта форма
formsaverecord.htm Сохранить текущую запись
formgotorecord.htm Переход по записям формы
sumform.htm Итоги в формах
serverfiltersample.htm Пример серверного фильтра
formerror.htm Причина Ошибки #Error
menubarevent.htm Перехват нажатия на кнопку меню
woconditionalformat.htm Раскраска строк ленточной формы без условного форматирования
currrec.htm Выделение цветом текущей записи
subform.htm Подчиненные Формы
textboxenter.htm Ввод перевода строки
twimagelistbug.htm treview + imagelist + подч. форма
reports.htm Отчеты, общие рекомендации
report_input_parameters.htm Входные параметры
vbaprog.htm III. Программирование VBA
dbpic.htm Картинки в базе данных
binbmp.htm Двоичные данные картинки в поле таблицы базы данных
piclink.htm Хранение ссылок на файлы
picjpg.htm Бинарное содержимое JPG, Gif файла в бинарном поле базы данных
playsound.htm Воспроизведение звуков
tv.htm Функции для тривью
restartaccess.htm Перезапуск Аксесса
publicvariables.htm Передача и хранение параметров и настроек
collectionfunctions.htm Коллекция полезных функций
datepicker.htm Всплывающий календарик
menuhummer.htm Меню и тулбары
padeg.htm Склонение по падежам
comborowsource.htm Источник данных для поля со списком
filedialog.htm Диалог выбора файла / папки
sendmapi.htm Отправка почты (4 способа) + архивация
autoupdateclient.htm Автоматическое обновление клиентской части
licenses.htm  Устранение проблем с регистрацией компонентов
uncommented.htm Без коментариев
filetime.htm Время и дата файла
reportsample.htm Пример настраивомого отчета
adpformfilter.htm Серверный Фильтр by GEO
tempmdb.htm ADP: Временный MDB для временных таблиц
mutex.htm Запрет запуска нескольких копий приложения
translit.htm Транслитерация всего проекта.
updateident.htm Изменение счетчика
webinterface.htm IV WEB
accessinternet.htm Работа с аксесс через интернет
webupdate.htm Обновление приложения аксесс через интернет
msiecom.htm Программное управление веббраузером
sqlserver.htm MS SQL
mssqltransfer2.htm Перенос/копирование баз
mssqlperm.htm Adp проверка прав пользователя перед открытием формы или управление доступностью полей формы
mssqlcrossdatabase.htm  Межбазовые разрешения
tsqlcollection.htm T-sql коллекция
similarity.htm Сортировка по созвучности
esp.htm расширенные хранимые процедуры
mssqloptimizing.htm Оптимизация быстродействия
    

Обновление данных в форме


Обновление данных на форме методом Refresh
В проектах ADP обновление формы методом Refresh проявляет себя так же, как и Requery

В качестве альтернативы можно выбрать один из способов
  • Обновление одной, текущей записи
    Me.Recordset.Resync adAffectCurrent, adResyncAllValues
    (Предварительно нужно корректно указать свойства «Однозначная таблица» UniqueTable и «Команда синхронизации» ResyncCommand)


  • Обновление всего набора с последуещей установкой текущей записи

    On error Resume Next
    Dim bm
    ' запоминаем положение указателя формы
    bm = Me.Bookmark
    Me.Requery
    ' Ждем пока закончится загрузка данных в рекордсет
    Do WhileMe.RecordsetClone.State And adStateFetching
    DoEvents
    Loop
    Me.Bookmark = bm

  • вариант более безглючный
    On error Resume Next
    Dim bm
    ' запоминаем положение указателя формы
    bm = Me.Bookmark
    Me.Requery
    ' Ждем пока закончится загрузка данных в рекордсет
    Dim rs
    'хитро но так надо для безглючности
    set rs = me.recordsetclone.clone

    WaitEndOfRequery RS 'Процедура приведена ниже

    Me.Bookmark = bm
    rs.close
    setrs = Nothing

  • Использовать пользовательскую функцию




    Обновление набора записей другими способами

    (формы, подчиненной формы, элементов управления список и поля со списком)

    Одно из:

  • Me.Requery
  • Me.Recordset.Requery
  • Me.Recordsource = Me.Recordsource
  • DoCmd.RunCommand acCmdRefresh
  • обновление значения главного поля для подчиненной формы
  • обновление значения поля - являющегося источником входного параметра

    после любого обновления желательно дождаться загрузки всех записей:
    Стандартный вариант:
    Do WhileMe.Recordset.State And adStateFetching
    DoEvents
    Loop

    Продвинутый вариант, работающий на медленных соединениях:(by Latuk)

    Public Sub WaitEndOfRequery(rs AsADODB.Recordset, Optional SleepTime Asinteger = 33)
    'Дождатся заполнения рекордсета
    'Public Declare Sub Sleep Lib "kernel32"(ByVal dwMilliseconds As Long)
    DimT As Single
    T = Timer
    Do
    DoEvents
    Sleep SleepTime
    Loop Until(rs.State = adStateOpen) OrTimer - T > GetOption("OLE/DDE Timeout (sec)")

    End Sub



    Прим. : не во всех случаях корректно выполняется обновление подчиненной формы без установки на нее фокуса. Поэтому всегда перед вызовом метода обновление объекта - установите на него фокус. Для подчиненных форм , которые вложены друг в друга фокус нужно устанавливать на все объекты последовательно 1 Главная форма.Setfocus, подчиненная главной формы.Setfocus , подчиенная подчиненной.Setfocus


  •  
    . . .
    . . .
    © 2000 - 2009 Алексей Козин эта вебстраница является зеркалом сайта www.msdatabase.ru Рейтинг@Mail.ru
    Hosted by uCoz