Свойство TableDef.ReplicaFilter (DAO)
Область применения: Access 2013, Office 2013
Задает или возвращает значение объекта TableDef в пределах частичного реплика, указывающее, какое подмножество записей реплицируется в таблицу из полного реплика. (Только для рабочих областей Microsoft Access.)
Синтаксис
expression . ReplicaFilter
выражение: переменная, представляющая объект TableDef.
Комментарии
Параметр или возвращаемое значение — это строка или логическое значение, указывающее, какое подмножество записей реплицируется, как указано в следующей таблице:
Значение |
Описание |
---|---|
Строка |
Условие, которому должна соответствовать запись в таблице частичного реплика для репликации из полной реплика. |
True |
Реплицирует все записи. |
False |
(по умолчанию) Не реплицирует записи. |
Это свойство аналогично предложению SQL WHERE (без слова WHERE), но в рамках условий нельзя указать вложенные запросы, агрегатные функции (например, Count) или определяемые пользователем функции.
Данные можно синхронизировать только между полной реплика и частичной реплика. Невозможно синхронизировать данные между двумя частичными репликами. Кроме того, при частичной репликации можно задать ограничения на реплицируемые записи, но нельзя указать, какие поля реплицируются.
Обычно фильтр реплика сбрасывается при репликации другого набора записей. Например, когда торговый представитель временно берет на себя регион другого торгового представителя, приложение базы данных может временно реплицировать данные для обоих регионов, а затем вернуться к предыдущему фильтру. В этом сценарии приложение сбрасывает свойство ReplicaFilter, а затем повторно повторяет частичную реплика.
Если приложение изменяет фильтры реплика, выполните следующие действия.
Используйте метод Synchronize, чтобы синхронизировать полный реплика с частичным реплика, в котором изменяются фильтры.
Используйте свойство ReplicaFilter, чтобы внести необходимые изменения в фильтр реплика.
Используйте метод PopulatePartial для удаления всех записей из частичного реплика и передачи всех записей из полного реплика, соответствующих новым условиям фильтра реплика.
Чтобы удалить фильтр, задайте для свойства ReplicaFilterзначение False. Если удалить все фильтры и вызвать метод PopulatePartial, записи не будут отображаться в реплицированных таблицах в частичном реплика.
Примечание.
Если фильтр реплика изменился и метод Synchronize вызывается без предварительного вызова PopulatePartial, возникает перехватываемая ошибка.
Пример
В следующем примере свойство ReplicaFilter используется для репликации только записей клиентов из региона Калифорнии.
Sub ReplicaFilterX()
' This example assumes the current open database
' is the replica.
Dim tdfCustomers As TableDef
Dim strFilter As String
Dim dbsTemp As Database
Set dbsTemp = OpenDatabase("Northwind.mdb")
Set tdfCustomers = dbsTemp.TableDefs("Customers")
' Synchronize with full replica
' before setting replica filter.
dbsTemp.Synchronize "C:\SALES\FY96.MDB"
strFilter = "Region = 'CA'"
tdfCustomers.ReplicaFilter = strFilter
dbsTemp.PopulatePartial "C:\SALES\FY96.MDB"
' Now remove the replica filter (for example purposes
' only).
tdfCustomers.ReplicaFilter = False
' Repopulate the database.
dbsTemp.PopulatePartial "C:\SALES\DATA96.MDB"
End Sub