Microsoft Access 2002 и более поздней версии этой статьи см.
275085.Средний: Требует основные макрос, кодирования и навыки взаимодействия.

Эта статья относится только к базе данных Microsoft Access (MDB).

Симптомы

Можно заметить, что связанные таблицы в базе данных имеют быстродействие при открытии таблицы или выполнении обновления занимает больше времени, чем ожидалось.

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

Причина

База данных состоит из множества связанных таблиц, имеющих много связей и таблицы, открытии его Имя подтаблицы свойство имеет значение [Авто]. Это можно сделать при открытии таблицы. Подтаблиц являются новой возможностью в Microsoft Access 2000. Таким образом скорее всего проявляться после преобразования базы данных более ранней версии.

Решение

Для временного решения проблемы присвойте свойству Имя подтаблицы для каждой таблицы в серверной базе данных [NONE]. Это можно сделать вручную или с помощью кода.

Установка свойства Имя подтаблицы вручную

Чтобы задать свойство Имя подтаблицы вручную, выполните следующие действия.

  1. Откройте таблицу в режиме конструктора в серверную базу данных.

  2. В меню Вид выберите команду
    Свойства.

  3. Свойства Имя подтаблицы
    [Отсутствует].

  4. Сохраните и закройте таблицу.

Задание свойств для всех таблиц с помощью кода

Можно использовать Visual Basic для приложений функции автоматически задается свойство Имя подтаблицы для всех несистемных таблиц в базе данных [NONE]. Чтобы сделать это, выполните следующие действия.

  1. Откройте базу данных.

  2. В окне базы данных выберите модулии нажмите кнопку Создать.

  3. В меню Сервис выберите команду
    Ссылки. Убедитесь, что установлен флажок Библиотека объектов Microsoft DAO 3.6 , а затем нажмите кнопку ОК.

  4. Введите или вставьте следующий код в новый модуль.

    Sub TurnOffSubDataSheets()
    Dim MyDB As DAO.Database
    Dim MyProperty As DAO.Property
    Dim propName As String, propVal As String, rplpropValue As String
    Dim propType As Integer, i As Integer
    Dim intCount As Integer

    On Error GoTo tagError

    Set MyDB = CurrentDb
    propName = "SubDataSheetName"
    propType = 10
    propVal = "[None]"
    rplpropValue = "[Auto]"
    intCount = 0

    For i = 0 To MyDB.TableDefs.Count - 1
    If (MyDB.TableDefs(i).Attributes And dbSystemObject) = 0 Then
    If MyDB.TableDefs(i).Properties(propName).Value = rplpropValue Then
    MyDB.TableDefs(i).Properties(propName).Value = propVal
    intCount = intCount + 1
    End If
    End If
    tagFromErrorHandling:
    Next i

    MyDB.Close

    If intCount > 0 Then
    MsgBox "The " & propName & " value for " & intCount & " non-system tables has been updated to " & propVal & "."
    End If

    Exit Sub

    tagError:
    If Err.Number = 3270 Then
    Set MyProperty = MyDB.TableDefs(i).CreateProperty(propName)
    MyProperty.Type = propType
    MyProperty.Value = propVal
    MyDB.TableDefs(i).Properties.Append MyProperty
    intCount = intCount + 1
    Resume tagFromErrorHandling
    Else
    MsgBox Err.Description & vbCrLf & vbCrLf & " in TurnOffSubDataSheets routine."
    End If
    End Sub
  5. В окне интерпретации введите следующий текст и нажмите клавишу ВВОД, чтобы выполнить функцию:

    TurnOffSubDataSheets

    Обратите внимание, через некоторое время, если все таблицы, не обновляются, появится сообщение о том, что свойству SubDataSheetName для < Число_обновленных_таблиц > несистемных таблиц была обновлена [нет].

Корпорация Майкрософт предлагает примеры программного кода только для иллюстрации и без явных или подразумеваемых гарантий. Это включает, но не ограничиваясь, подразумеваемые гарантии товарной пригодности или пригодности для определенной цели. В данной статье предполагается, что вы знакомы с демонстрируемым языком программирования и средствами, которые используются для создания и отладки. Сотрудники службы поддержки Майкрософт могут объяснить возможности конкретной процедуры, но не выполнять модификации примеров для обеспечения дополнительных функциональных возможностей или создания процедур для определенных требований.

Статус

Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе "Относится к".

Нужна дополнительная помощь?

Совершенствование навыков

Перейти к обучению >

Первоочередный доступ к новым возможностям

Присоединение к программе предварительной оценки Майкрософт >

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?

Спасибо за ваш отзыв!

×