Как связать формы Microsoft Access для наборов записей ADO

Переводы статьи Переводы статьи
Код статьи: 281998 - Vizualiza?i produsele pentru care se aplic? acest articol.
Дополнительно: Требует эксперта кодирования, взаимодействия и в многопользовательском навыки.

В данной статье относится к базе данных Microsoft Access (.mdb) и до Проект Microsoft Access (.adp).

Развернуть все | Свернуть все

В этой статье

Аннотация

В этой статье описываются необходимые для создания обновляемые формы, к которому привязан объектов данных ActiveX (ADO) Набор записей объект.

Дополнительная информация

Чтобы привязать набор записей формы Microsoft Access, необходимо выполнить Установка Набор записей свойство формы допустимые объекты доступа К данным (DAO) или ADO Набор записей объект.

В Набор записей свойство было введено в Microsoft Access 2000 и позволяет привязки формы к ADO или DAO Набор записей объекты. Однако формы в Microsoft Access 2000 поддерживает только обновлению Если открыть подключение ADO с помощью MSDataShape и SQL Server OLEDB Поставщики. Для получения дополнительных сведений об этом ограничение в Access 2000 щелкните следующий номер статьи для просмотра статьи в Microsoft Knowledge Base:
227053 ACC2000: Формы, основанные на наборах записей ADO, доступны только для чтения
В Microsoft Access 2002 или более поздней можно создать обновляемые формы, к которому привязан к набору записей ADO, использующего другие OLEDB Поставщики. Формы должны удовлетворять некоторые общие требования к форме, чтобы быть обновляемые, когда он привязан к набору записей ADO. Эти общие требования являются:
  1. Базовый набор записей ADO должен быть обновляемым.
  2. Набор записей должен содержать одно или несколько полей, которые являются однозначно индексируются, например первичного ключа таблицы.
Другие требования к обновлению различаться в зависимости от различных Поставщики. В данной статье описывается, Каковы другие требования при использовании Поставщики Microsoft SQL Server, ODBC, OLEDB для Oracle и Jet.

Требования для Microsoft SQL Server

Существуют два основных требования для поддержки обновлению при связать форму с помощью сервера Microsoft SQL набора записей ADO данные:
  • Набор записей ADO подключения необходимо использовать Microsoft Поставщик OLEDB 10.0 для Access как его поставщика услуг.
  • Набор записей ADO подключения необходимо использовать Microsoft SQL Поставщик OLEDB сервера как поставщик данных.
ПРИМЕЧАНИЕ: Поставщик OLE DB Microsoft Access 10.0 — это служба OLEDB Поставщик, который был написан специально для использования в Microsoft Access. Не было предназначены для использования в приложениях, отличных от Microsoft Access, а не поддерживается в других приложениях.

При создании наборов записей ADO в Microsoft Access имеется возможность как для будет подключения ADO используемый набор записей. Код ADO можно совместно использовать подключение ADO, Microsoft Access использует для базы данных SQL Server, открытые в данный момент Файл проекта (ADP); или можно программно создавать новые ADO подключение к другой базе данных SQL Server.

Совместное использование подключения ADO, используемые Microsoft Access

Если при использовании файла проекта Access (.adp) подключен к База данных Microsoft SQL Server возможна для совместного использования кода ADO Подключение ADO, с помощью Microsoft Access. Предоставляемые это подключение очередь CurrentProject.AccessConnection свойство.

В следующем примере демонстрируется способ связать форму набора записей ADO, основанный на данных SQL Server, использующей Подключение ADO с Microsoft Access.
  1. Открытие образца проекта Access NorthwindCS.adp.
  2. Откройте форму клиентов в режиме конструктора.
  3. Очистить Источник записей свойство формы для отмены привязки формы.
  4. Установка Открытие (OnOpen) свойство формы следующую процедуру обработки события:
    Private Sub Form_Open(Cancel As Integer)
       Dim cn As ADODB.Connection
       Dim rs As ADODB.Recordset
             
       'Use the ADO connection that Access uses
       Set cn = CurrentProject.AccessConnection
    
       'Create an instance of the ADO Recordset class, and
       'set its properties
       Set rs = New ADODB.Recordset
       With rs
          Set .ActiveConnection = cn
          .Source = "SELECT * FROM Customers"
          .LockType = adLockOptimistic
          .CursorType = adOpenKeyset
          .Open 
       End With
       
       'Set the form's Recordset property to the ADO recordset
       Set Me.Recordset = rs
    
       Set rs = Nothing
       Set cn = Nothing
    End Sub
    					
  5. Сохраните и закройте форму.
  6. Откройте форму клиентов в режиме формы.
  7. Добавить, изменить или удалить записи в форме.
Обратите внимание, что форма связана с обновляемый набор записей на основе данных SQL Server.

Открытие отдельных соединений ADO

В некоторый момент необходимо открыть и управлять собственной ADO подключение к SQL Server. Например нужно будет использовать этот подход, если вы писали код в базе данных Microsoft Access (.mdb) или проект Microsoft Access файл (.adp), который был подключен к другой базе данных SQL Server, чем ваш приложения. Обратите внимание, что при использовании этого подхода, корпорация Майкрософт рекомендует Закройте подключение ADO, которое открывается, когда он больше не нужен. Для пример, можно закрыть подключение ADO для события UnLoad форма.

В этом примере показано, как открыть собственные ADO подключение к базе данных Microsoft SQL Server и для привязки в форме:
  1. Откройте базу данных Northwind.mdb.
  2. Откройте форму клиентов в режиме конструктора.
  3. Очистить Источник записей свойство формы для отмены привязки формы.
  4. Установка Открытие (OnOpen) свойство формы следующую процедуру обработки события:
    Private Sub Form_Open(Cancel As Integer)
       Dim cn As ADODB.Connection
       Dim rs As ADODB.Recordset
             
       'Create a new ADO Connection object
       Set cn = New ADODB.Connection
    
       'Use the Access 10 and SQL Server OLEDB providers to
       'open the Connection
       'You will need to replace MySQLServer with the name
       'of a valid SQL Server
       With cn
          .Provider = "Microsoft.Access.OLEDB.10.0"
          .Properties("Data Provider").Value = "SQLOLEDB"
          .Properties("Data Source").Value = "MySQLServer"
          .Properties("User ID").Value = "sa"
          .Properties("Password").Value = ""
          .Properties("Initial Catalog").Value = "NorthwindCS"
          .Open
       End With
    
       'Create an instance of the ADO Recordset class, and
       'set its properties
       Set rs = New ADODB.Recordset
       With rs
          Set .ActiveConnection = cn
          .Source = "SELECT * FROM Customers"
          .LockType = adLockOptimistic
          .CursorType = adOpenKeyset
          .Open 
       End With
       
       'Set the form's Recordset property to the ADO recordset
       Set Me.Recordset = rs
       Set rs = Nothing
       Set cn = Nothing
    End Sub
    					
  5. Добавьте следующий код к событию выгрузки формы:
    Private Sub Form_Unload(Cancel As Integer)
       'Close the ADO connection we opened
       Dim cn As ADODB.Connection
       Set cn = Me.Recordset.ActiveConnection
       cn.Close
       Set cn = Nothing
    End Sub
    					
  6. Сохраните форму, а затем закройте его.
  7. Откройте форму клиентов в режиме формы.
  8. Добавить, изменить или удалить записи в форме.
Обратите внимание, что форма связана с обновляемый набор записей на основе данных SQL Server.

Требования для Microsoft Jet

Несмотря на то, что имеется возможность связать форму набора записей ADO использует данные из базы данных Jet, корпорация Майкрософт рекомендует использовать DAO Вместо этого. DAO оптимизирован для Jet и обычно выполняется быстрее, чем ADO При использовании базы данных Jet.

Если связать форму ADO набор записей с помощью данных Microsoft Jet, есть два варианта:
  • Набор записей ActiveConnection Свойство следует использовать службу Microsoft Access 10.0 OLEDB Поставщик, а также поставщика данных OLEDB Microsoft Jet 4.0 и набор записей должен быть серверного курсора.

    -ИЛИ-
  • Набор записей ActiveConnection Свойство следует использовать только для поставщика данных OLEDB Microsoft Jet 4.0 и набор записей должен быть клиентского курсора.
Примерно в разделе «Microsoft sql Server» ранее в этом статьи, который был какой ADO для подключения будет использоваться набор записей, при использовании базы данных Jet. Код ADO можно совместно использовать подключение ADO Использование, Microsoft Access в данный момент открыт файла базы данных Jet (.mdb) или можно программно создавать новое подключение ADO отдельной базы данных Jet файл базы данных.

Совместное использование подключения ADO, используемые Microsoft Access

При написании кода в той же базе данных Microsoft Access (.mdb), содержащий данные, которые требуется набор записей, возможно, код ADO для совместного использования подключения ADO, с помощью Microsoft Access. Это предоставляемые подключения CurrentProject.AccessConnection свойство. В этом примере демонстрируется способ привязки формы для набора записей ADO в базе данных Jet, совместное использование подключения ADO, Microsoft Access использует в настоящее время:
  1. Откройте базу данных Northwind.mdb.
  2. Откройте форму клиентов в режиме конструктора.
  3. Очистить Источник записей свойство формы для отмены привязки формы.
  4. Установка Открытие (OnOpen) свойство формы следующую процедуру обработки события:
    Private Sub Form_Open(Cancel As Integer)
       Dim cn As ADODB.Connection
       Dim rs As ADODB.Recordset
                    
       Set cn = CurrentProject.AccessConnection
    
       'Create an instance of the ADO Recordset class, and
       'set its properties
       Set rs = New ADODB.Recordset
       With rs
          Set .ActiveConnection = cn
          .Source = "SELECT * FROM Customers"
          .LockType = adLockOptimistic
          .CursorType = adOpenKeyset
          .CursorLocation = adUseServer
          .Open 
       End With
       
       'Set the form's Recordset property to the ADO recordset
       Set Me.Recordset = rs
       Set rs = Nothing
       Set cn = Nothing
    End Sub
    					
  5. Сохраните форму, а затем закройте его.
  6. Откройте форму клиентов в режиме формы.
  7. Добавить, изменить или удалить записи в форме.
Обратите внимание, что форма связана с обновляемый набор записей с помощью данных Jet.

Открытие отдельных соединений ADO

В некоторый момент необходимо открыть и управлять собственной ADO подключение к базе данных Jet. Например нужно будет использовать этот подход При написании кода в базе данных отдельно от базы данных содержащий данные, которые необходимо получить. Обратите внимание, что при использовании этого подход, рекомендуется закрыть подключение ADO, открывается, когда он больше не нужен. Например может потребоваться закрыть окно ADO подключение в событие выгрузки формы.

Следующий пример показано, как открыть подключение ADO для базы данных Microsoft Jet и для привязки в форме:
  1. Создайте новую пустую базу данных.
  2. Импорт формы Customers из учебной базы данных Northwind.mdb.
  3. Откройте форму клиентов в режиме конструктора.
  4. Очистить Источник записей свойство формы для отмены привязки формы.
  5. Установка Открытие (OnOpen) свойство формы следующую процедуру обработки события:
    Private Sub Form_Open(Cancel As Integer)
       Dim cn As ADODB.Connection
       Dim rs As ADODB.Recordset
             
       'Create a new ADO Connection object
       Set cn = New ADODB.Connection
    
       With cn
          .Provider = "Microsoft.Access.OLEDB.10.0"
          .Properties("Data Provider").Value = "Microsoft.Jet.OLEDB.4.0"
          .Properties("Data Source").Value = _
              "C:\Program Files\Microsoft Office\Office10" & _
              "\Samples\Northwind.mdb"
          .Open
       End With
    
       'Create an instance of the ADO Recordset class, and
       'set its properties
       Set rs = New ADODB.Recordset
       With rs
          Set .ActiveConnection = cn
          .Source = "SELECT * FROM Customers"
          .LockType = adLockOptimistic
          .CursorType = adOpenKeyset
          .Open 
       End With
       
       'Set the form's Recordset property to the ADO recordset
       Set Me.Recordset = rs
       Set rs = Nothing
       Set cn = Nothing
    End Sub
    					
  6. Добавьте следующий код к событию выгрузки формы:
    Private Sub Form_Unload(Cancel As Integer)
       'Close the ADO connection we opened
       Dim cn As ADODB.Connection
       Set cn = Me.Recordset.ActiveConnection
       cn.Close
       Set cn = Nothing
    End Sub
    					
  7. Сохраните форму, а затем закройте его.
  8. Откройте форму клиентов в режиме формы.
  9. Добавить, изменить или удалить записи в форме.
Обратите внимание, что форма связана с обновляемый набор записей с помощью данных Jet.

Требования для ODBC

Если связать форму с использованием данных из набора записей ADO База данных ODBC, существуют два основных требования:
  • Необходимо использовать подключение ADO, используемый для набора записей поставщика Microsoft OLE DB для ODBC.
  • Набор записей ADO должен быть клиентского курсора.
В этом примере показано, как открыть набор данных ADO подключение к базе данных ODBC и связать его форму.

ПРИМЕЧАНИЕ: Предполагается, что база данных ODBC содержит таблицу с именем КЛИЕНТЫ, идентична в структуре таблицы Customers в образце базы данных Northwind.mdb. Также предполагается, что вы создали ODBC DSN с именем MyDSN, использующий драйвер ODBC, необходимо подключиться к серверной части База данных.
  1. Откройте базу данных Northwind.mdb.
  2. Откройте форму клиентов в режиме конструктора.
  3. Очистить Источник записей свойство формы для отмены привязки формы.
  4. Установка Открытие (OnOpen) свойство формы следующую процедуру обработки события:
    Private Sub Form_Open(Cancel As Integer)
       Dim cn As ADODB.Connection
       Dim rs As ADODB.Recordset
       Dim strConnection As String
    
       strConnection = "ODBC;DSN=MyDSN;UID=sa;PWD=;DATABASE=Northwind"
       'Create a new ADO Connection object
       Set cn = New ADODB.Connection
    
       With cn
          .Provider = "MSDASQL"
          .Properties("Data Source").Value = strConnection
          .Open
       End With
    
       'Create an instance of the ADO Recordset class, and
       'set its properties
       Set rs = New ADODB.Recordset
       With rs
          Set .ActiveConnection = cn
          .Source = "SELECT * FROM Customers"
          .LockType = adLockOptimistic
          .CursorType = adOpenKeyset
          .CursorLocation = adUseClient
          .Open 
       End With
       
       'Set the form's Recordset property to the ADO recordset
       Set Me.Recordset = rs
       Set rs = Nothing
       Set cn = Nothing
    End Sub
    					
  5. Добавьте следующий код к событию выгрузки формы:
    Private Sub Form_Unload(Cancel As Integer)
       'Close the ADO connection we opened
       Dim cn As ADODB.Connection
       Set cn = Me.Recordset.ActiveConnection
       cn.Close
       Set cn = Nothing
    End Sub
    					
  6. Сохраните форму, а затем закройте его.
  7. Откройте форму клиентов в режиме формы.
  8. Добавить, изменить или удалить записи в форме.
Обратите внимание, что форма связана с обновляемый набор записей на основе данных ODBC.

Требования для Oracle

Если связать форму с использованием данных из набора записей ADO базы данных Oracle, существуют два основных требования:
  • Необходимо использовать подключение ADO, используемый для набора записей поставщика Microsoft OLE DB для Oracle.
  • Набор записей ADO должен быть клиентского курсора.
В этом примере показано, как открыть набор данных ADO подключение к базе данных Oracle и связать его форму.

ПРИМЕЧАНИЕ: Предполагается, что база данных Oracle содержит таблицу с именем CUSTOMERS, идентична в структуре таблицы Customers Образец базы данных Northwind.mdb.
  1. Откройте базу данных Northwind.mdb.
  2. Откройте форму клиентов в режиме конструктора.
  3. Очистить Источник записей свойство формы для отмены привязки формы.
  4. Установка Открытие (OnOpen) свойство формы следующую процедуру обработки события:
    Private Sub Form_Open(Cancel As Integer)
       Dim cn As ADODB.Connection
       Dim rs As ADODB.Recordset
             
       'Create a new ADO Connection object
       Set cn = New ADODB.Connection
    
       With cn
          .Provider = "MSDAORA"
          .Properties("Data Source").Value = "MyOracleServer"
          .Properties("User ID").Value = "username"
          .Properties("Password").Value = "password"          
          .Open
       End With
    
       'Create an instance of the ADO Recordset class, and
       'set its properties
       Set rs = New ADODB.Recordset
       With rs
          Set .ActiveConnection = cn
          .Source = "SELECT * FROM Customers"
          .LockType = adLockOptimistic
          .CursorType = adOpenKeyset
          .CursorLocation = adUseClient
    
          .Open 
       End With
      
       'Set the form's Recordset property to the ADO recordset
       Set Me.Recordset = rs
       Set rs = Nothing
       Set cn = Nothing
    End Sub
    					
  5. Добавьте следующий код к событию выгрузки формы:
    Private Sub Form_Unload(Cancel As Integer)
       'Close the ADO connection we opened
       Dim cn As ADODB.Connection
       Set cn = Me.Recordset.ActiveConnection
       cn.Close
       Set cn = Nothing
    End Sub
    					
  6. Сохраните форму, а затем закройте его.
  7. Откройте форму клиентов в режиме формы.
  8. Добавить, изменить или удалить записи в форме.
Обратите внимание, что форма связана с обновляемый набор записей на основе данных Oracle.

Ссылки

Для получения дополнительных сведений щелкните следующую статью номер статьи базы знаний Майкрософт:
281784Разница между Подключения и свойства AccessConnection
Продукты независимых производителей, которые являются в данной статье, производятся компаниями, независимыми от Корпорация Майкрософт. Корпорация Майкрософт не дает никаких гарантий, подразумеваемых или в противном случае относительно производительности или надежности этих продуктов.

Свойства

Код статьи: 281998 - Последний отзыв: 17 сентября 2011 г. - Revision: 5.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Ключевые слова: 
kbado kbdatabinding kbdatabase kbdesign kbprogramming kbhowto kbmt KB281998 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:281998

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com