Jak vytvořit vazbu formuláře aplikace Microsoft Access sady záznamů ADO

Překlady článku Překlady článku
ID článku: 281998 - Produkty, které se vztahují k tomuto článku.
Upřesnit: Vyžaduje poradce kódování, spolupráce a víceuživatelském dovednosti.

Tento článek se týká databází aplikace Microsoft Access (MDB) a projektů aplikace Microsoft Access (ADP).

Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento článek popisuje, co je nutné vytvořit aktualizovatelný formulář, který je vázán k objektu ActiveX Data Objects (ADO) Recordset.

Další informace

Formulář bude vázat na sadu záznamů, nastavte vlastnost Recordset formuláře platný objekt Data Access Objects (DAO) nebo ADO Recordset.

Vlastnost Recordset byl zaveden v aplikaci Access 2000 a umožňuje svázat formulářů objekty DAO nebo ADO Recordset. Formuláře v aplikaci Access 2000 však podporují updateability, pouze pokud je otevřeno připojení ADO pomocí zprostředkovatele MSDataShape a SQL Server OLEDB. Další informace o tomto omezení v aplikaci Access 2000 získáte v článku číslo článku databáze Microsoft Knowledge Base:
227053ACC2000: Formuláře na základě sady záznamů ADO jsou jen pro čtení
V aplikaci Microsoft Access 2002 nebo novější, můžete vytvořit aktualizovatelný formulář, který je vázán na sadu záznamů ADO používající jiné OLEDB zprostředkovatelů. Formuláře musí splňovat několik obecné požadavky pro formulář být aktualizovatelný při vázán na sadu záznamů ADO. Tyto obecné požadavky jsou:
  1. Podkladové sadu záznamů ADO musí být možné aktualizovat.
  2. Sada záznamů musí obsahovat jeden nebo více polí jsou jedinečně indexována, jako je například primární klíč tabulky.
Ostatní požadavky pro updateability lišit mezi různých zprostředkovatelů. Tento článek popisuje, co ostatní požadavky při použití jsou zprostředkovatelé Microsoft SQL Server, Jet, ODBC a Oracle OLEDB.

Požadavky pro Microsoft SQL Server

Existují dva hlavní požadavky pro podporu updateability po svázání formuláře sadu záznamů ADO využívající Microsoft SQL Server dat:
  • Připojení sadu záznamů ADO musí zprostředkovatel bude 10.0 OLEDB slouží jako jeho poskytovatel metadat.
  • Připojení sadu záznamů ADO musí jako jeho zprostředkovatele dat použít zprostředkovatele Microsoft SQL Server OLEDB.
Poznámka:Zprostředkovatel Microsoft Access 10.0 OLEDB je poskytovatel metadat OLEDB napsané specificky pro použití v Microsoft Access. Není určen k použití v jiných aplikací než Microsoft Access a není podporován v jiných aplikacích.

Vytvoření sady záznamů ADO v rámci bude máte voleb jako k připojení ADO použito podle sady záznamů. Kód ADO můžete sdílet připojení ADO, které bude používat pro databázi SQL Server aktuálně otevřené v souboru projektu (ADP) Access; nebo programově můžete vytvořit nové ADO připojení k jiné databázi SQL Server.

Sdílení připojení ADO používaná aplikace

Pokud používáte soubor aplikace Access projektu (ADP) připojen k databázi Microsoft SQL Server, je možné pro kód ADO sdílet připojení ADO, které bude používat. Toto připojení je vystavena podle vlastnosti CurrentProject.AccessConnection.

Následující příklad demonstruje svázání formuláře sadu záznamů ADO, který je založen na datech SQL Server, který sdílí připojení ADO s Microsoft Access.
  1. Otevřete ukázkový projekt projektu NorthwindCS.adp.
  2. Otevřete formulář Zákazníci v návrhovém zobrazení.
  3. Vlastnost RecordSource formuláře zrušit vazbu formuláře zrušte.
  4. Nastavte vlastnost Při otevření formuláře následující proceduru události:
    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. Uložte a zavřete formulář.
  6. Otevřete formulář Zákazníci ve formulářovém zobrazení.
  7. Přidat, upravit nebo odstranit záznam ve formuláři.
Všimněte si, že je formulář svázán aktualizovatelné sady záznamů, která je založena na datech SQL Server.

Otevírání připojení odděleném ADO

V určitém okamžiku můžete otevřít a spravovat vlastní ADO mít připojení k serveru SQL. Například musel použít tuto metodu, pokud byly psaní kódu v databázi aplikace Access (MDB) nebo soubor aplikace Access projektu (ADP), který byl připojen k jiné databázi SQL Server, než aplikace. Poznámka: Při použití tento přístup Microsoft doporučuje ukončit připojení ADO, které jste otevřeli při již potřebné. Chcete například zavřít připojení ADO v události UnLoad formuláře.

Následující příklad ukazuje, jak otevřít vlastní ADO připojení databáze Microsoft SQL Server a svázat formuláře:
  1. Otevřete ukázkovou databázi Northwind.mdb.
  2. Otevřete formulář Zákazníci v návrhovém zobrazení.
  3. Vlastnost RecordSource formuláře zrušit vazbu formuláře zrušte.
  4. Set the OnOpen property of the form to the following event procedure:
    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. Přidejte následující kód události UnLoad formuláře:
    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. Uložte formulář a poté zavřete.
  7. Otevřete formulář Zákazníci ve formulářovém zobrazení.
  8. Přidat, upravit nebo odstranit záznam ve formuláři.
Všimněte si, že je formulář svázán aktualizovatelné sady záznamů, která je založena na datech SQL Server.

Požadavky for Microsoft Jet

Přestože je možné vytvořit vazbu formuláře na sadu záznamů ADO, který používá data z databáze Jet, společnost Microsoft doporučuje použít místo DAO. DAO vysoce optimalizována pro Jet a obvykle provádí rychleji než ADO při použití databáze Jet.

Svázání formuláře do ADO recordset pomocí Microsoft Jet dat existují dvě alternativy:
  • Vlastnost ActiveConnection sadě záznamů musí používat poskytovatel metadat Microsoft Access 10.0 OLEDB stejně jako Microsoft Jet 4.0 OLEDB data zprostředkovatele a záznamů musí být kurzor na straně serveru.

    Nebo
  • Vlastnost ActiveConnection sadě záznamů musí použít pouze Microsoft Jet 4.0 OLEDB zprostředkovatele dat a záznamů musí být kurzor na straně klienta.
Podobně jako v části "Microsoft_SQL_Server" dříve v tomto článku, jste voleb jako k připojení ADO bude používán záznamů při používání databáze Jet. Kód ADO můžete sdílet připojení ADO, bude pomocí Jet souboru databáze (MDB) aktuálně otevřeného nebo programově můžete vytvořit nové připojení ADO k samostatné Jet souboru databáze.

Sdílení připojení ADO používaná aplikace

Pokud vytváříte kód v stejné databáze (MDB), který obsahuje data, která potřebuje vaše záznamů, je možné pro kód ADO sdílet připojení ADO, které bude používat. Toto připojení je vystavena podle vlastnosti CurrentProject.AccessConnection. Následující příklad ukazuje, jak vytvořit vazbu formuláře sadu záznamů ADO v databázi Jet pomocí sdílení připojení ADO, bude aktuálně používáte:
  1. Otevřete ukázkovou databázi Northwind.mdb.
  2. Otevřete formulář Zákazníci v návrhovém zobrazení.
  3. Vlastnost RecordSource formuláře zrušit vazbu formuláře zrušte.
  4. Nastavte vlastnost Při otevření formuláře následující proceduru události:
    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. Uložte formulář a poté zavřete.
  6. Otevřete formulář Zákazníci ve formulářovém zobrazení.
  7. Přidat, upravit nebo odstranit záznam ve formuláři.
Všimněte si, že je formulář svázán aktualizovatelné sady záznamů, které pomocí dat Jet.

Otevírání připojení odděleném ADO

V některých okamžicích může máte otevřít a spravovat vlastní ADO připojení databáze Jet. Například musel použít tuto metodu, pokud jsou psaní kódu v databázi, která je oddělená od obsahující data, která potřebujete získat přístup k databázi. Poznámka: Při použití tento přístup Microsoft doporučuje ukončit připojení ADO, které jste otevřeli při již potřebné. Například můžete chtít zavřít ADO připojení v události UnLoad formuláře.

Následující příklad znázorňuje, jak otevřít vlastní ADO připojení databáze Microsoft Jet a svázat formuláře:
  1. Vytvořte novou, prázdnou databázi.
  2. Import formuláře Zákazníci z ukázkové databáze Northwind.mdb.
  3. Otevřete formulář Zákazníci v návrhovém zobrazení.
  4. Vlastnost RecordSource formuláře zrušit vazbu formuláře zrušte.
  5. Nastavte vlastnost Při otevření formuláře následující proceduru události:
    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. Přidejte následující kód události UnLoad formuláře:
    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. Uložte formulář a poté zavřete.
  8. Otevřete formulář Zákazníci ve formulářovém zobrazení.
  9. Přidat, upravit nebo odstranit záznam ve formuláři.
Všimněte si, že je formulář svázán aktualizovatelné sady záznamů, které pomocí dat Jet.

Požadavky pro ODBC

Po svázání formuláře na sadu záznamů ADO, který používá data z databáze ODBC jsou dva hlavní požadavky:
  • Zprostředkovatel Microsoft OLEDB pro ODBC musí používat připojení ADO používaný v sadě záznamů.
  • Sadu záznamů ADO musí být kurzor na straně klienta.
Následující příklad ukazuje, jak otevřít ADO připojení k databázi ODBC a svázat formuláře.

Poznámka: Tyto kroky předpokládají databáze ODBC obsahuje tabulku s názvem ZÁKAZNÍCI, která je identická ve struktuře tabulky Zákazníci v ukázkové databázi Northwind.mdb. Předpokládá také vytvořen DSN ODBC s názvem MyDSN používá ovladač ODBC, které potřebujete k připojení databáze back-end.
  1. Otevřete ukázkovou databázi Northwind.mdb.
  2. Otevřete formulář Zákazníci v návrhovém zobrazení.
  3. Vlastnost RecordSource formuláře zrušit vazbu formuláře zrušte.
  4. Nastavte vlastnost Při otevření formuláře následující proceduru události:
    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. Přidejte následující kód události UnLoad formuláře:
    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. Uložte formulář a poté zavřete.
  7. Otevřete formulář Zákazníci ve formulářovém zobrazení.
  8. Přidat, upravit nebo odstranit záznam ve formuláři.
Všimněte si, že je formulář svázán aktualizovatelné sady záznamů, která je na základě dat ODBC.

Požadavky pro Oracle

Po svázání formuláře na sadu záznamů ADO, je použití dat z databáze Oracle jsou dva hlavní požadavky:
  • Zprostředkovatel Microsoft OLEDB pro Oracle musí používat připojení ADO používaný v sadě záznamů.
  • Kurzor na straně klienta musí být ADO Recordset.
Následující příklad ukazuje, jak otevřít ADO připojení k databázi Oracle a svázat formuláře.

Poznámka: Tyto kroky předpokládají databáze Oracle obsahuje tabulku s názvem ZÁKAZNÍCI, která je identická ve struktuře tabulky Zákazníci v ukázkové databázi Northwind.mdb.
  1. Otevřete ukázkovou databázi Northwind.mdb.
  2. Otevřete formulář Zákazníci v návrhovém zobrazení.
  3. Vlastnost RecordSource formuláře zrušit vazbu formuláře zrušte.
  4. Nastavte vlastnost Při otevření formuláře následující proceduru události:
    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. Přidejte následující kód události UnLoad formuláře:
    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. Uložte formulář a poté zavřete.
  7. Otevřete formulář Zákazníci ve formulářovém zobrazení.
  8. Přidat, upravit nebo odstranit záznam ve formuláři.
Všimněte si, že je formulář svázán aktualizovatelné sady záznamů, která je na základě dat Oracle.

Odkazy

Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
281784Rozdíl mezi připojení a vlastnosti AccessConnection
Produkty jiných výrobců popisované v tomto článku vyrábějí společnosti, které jsou nezávislé na společnosti Microsoft. Společnost Microsoft neposkytuje žádnou záruku (implicitně předpokládanou ani jinou) týkající se výkonu a spolehlivosti těchto produktů.

Vlastnosti

ID článku: 281998 - Poslední aktualizace: 7. června 2004 - Revize: 4.3
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Klíčová slova: 
kbmt kbado kbdatabinding kbdatabase kbdesign kbprogramming kbhowto KB281998 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:281998

Dejte nám zpětnou vazbu

 

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