Ako vytvoriť väzbu formuláre programu Microsoft Access na ADO skupín záznamov

Preklady článku Preklady článku
ID článku: 281998 - Zobraziť produkty, ktorých sa tento článok týka.
Rozšírené: Vyžaduje expertné kódovanie, interoperability a multiuser zručnosti.

Tento článok sa vzťahuje na databázy programu Microsoft Access (.mdb) a na Projekt programu Microsoft Access (.adp).

Rozbaliť všetko | Zbaliť všetko

Na tejto stránke

SUHRN

Tento článok popisuje, čo je potrebné vytvoriť Aktualizovateľný formulár, ktorý je viazaný na ActiveX Data Objects (ADO) Množina záznamov objekt.

DALSIE INFORMACIE

Naviazať formulára programu Microsoft Access na množine záznamov, musíte nastaviť Množina záznamov Vlastnosť formulára platné údaje Access Objects (DAO) alebo ADO Množina záznamov objekt.

V Množina záznamov Vlastnosť bola zavedená v programe Microsoft Access 2000 a umožňuje môžete naviazať formuláre na DAO alebo ADO Množina záznamov objekty. Formuláre v programe Access 2000, však podporuje iba updateability Ak ADO pripojenie je spustená pomocou MSDataShape a SQL Server OLEDB poskytovateľov. Ďalšie informácie o tomto obmedzenie v programe Access 2000, kliknite na nasledujúce číslo článku zobrazte článok v databáze Microsoft Knowledge Base:
227053 ACC2000: Formuláre založené na ADO skupín záznamov sú iba na čítanie
V programe Microsoft Access 2002 alebo novšej, môžete vytvoriť Aktualizovateľný formulár, ktorý je viazaný na množina záznamov súčasti ADO, ktorý používa iné OLEDB poskytovateľov. Formulár musí spĺňať niekoľko všeobecných požiadaviek pre formulár sa aktualizovateľný, keď je naviazaný na množina záznamov súčasti ADO. Tieto všeobecné požiadavky sú:
  1. Podkladové množina záznamov súčasti ADO musí byť aktualizovateľný.
  2. Množina záznamov musí obsahovať jedno alebo viacero polí, ktoré sú jednoznačne indexované, ako napríklad hlavný kľúč tabuľky.
Ostatné požiadavky na updateability líšia medzi rôznymi poskytovateľov. Tento článok popisuje, čo ostatné požiadavky sú pri používaní Microsoft SQL Server, Jet, ODBC a Oracle OLEDB poskytovateľov.

Požiadavky na server Microsoft SQL Server

Existujú dve hlavné požiadavky pre podporu updateability pri naviazanie formulár na množina záznamov súčasti ADO, ktorá používa server Microsoft SQL Server údaje:
  • Pripojenie množina záznamov súčasti ADO musí používať Microsoft OLEDB poskytovateľa prístupu 10.0 ako jeho poskytovateľ.
  • Pripojenie množina záznamov súčasti ADO musí používať Microsoft SQL OLEDB poskytovateľ servera ako jeho poskytovateľ údajov.
POZNÁMKA: Microsoft Access 10.0 OLEDB poskytovateľ je služba OLEDB poskytovateľa, ktorý bol napísaný špeciálne pre použitie v programe Microsoft Access. Nebolo to určené na použitie v aplikácie iné než Microsoft Access a nie je podporované v iných aplikáciách.

Pri vytváraní skupín záznamov ADO v rámci programu Microsoft Access, máte na výber ako ktoré ADO pripojenia budú použité skupiny záznamov. Váš ADO kód môžete zdieľať pripojenie ADO, Microsoft Access používa pre aktuálne otvorený v SQL Server databázu Súbor projektu (ADP) prístup; alebo môžete pomocou programovania vytvárať nové ADO pripojenie do odlišnej databázy servera SQL Server.

Pripojenie na ADO používajú program Microsoft Access

Ak používate súborom projektu programu Access (.adp), pripojený k Databáze Microsoft SQL Server, je možné pre váš ADO kód na zdieľanie ADO pripojenie, ktoré používa Microsoft Access. Toto pripojenie je vystavené The CurrentProject.AccessConnection Vlastnosť.

Následujúci príklad demonštruje ako naviazanie formulár na množina záznamov súčasti ADO, ktorý vychádza z údajov programu SQL Server, ktorý zdieľa ADO spojenie s Microsoft Access.
  1. Otvorte vzorky projekt NorthwindCS.adp.
  2. Otvorte formulár Zákazníci v návrhovom zobrazení.
  3. Jasné RecordSource Vlastnosť formulára sa odpojiť forme.
  4. Nastaviť PriOtvorení Vlastnosť formulára do udalostnej procedúry:
    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 zavrite formulár.
  6. Otvorte formulár Zákazníci vo formulárovom zobrazení.
  7. Pridanie, úprava alebo odstránenie záznamu vo formulári.
Všimnite si, že formulár je viazané na aktualizovateľný záznamov, ktorý je na základe údajov programu SQL Server.

Otvorenie samostatné pripojenie ADO

V určitý okamih, budete musieť otvoriť a spravovať svoje vlastné ADO pripojenie na server SQL Server. Napríklad by ste používať tento prístup, ak váš kód boli písomne v databáze programu Access (.mdb) alebo v projekte programu Access súbor (.adp), ktorý bol pripojený do odlišnej databázy SQL Server ako vaše aplikácia. Všimnite si, že keď použijete tento prístup, Microsoft odporúča, aby zatvoríte ADO pripojenie, ktoré ste otvorili, keď už nie sú potrebné. Pre napríklad chcete ukončiť ADO pripojenie v prípade uvoľniť formulár.

Nasledujúci príklad ukazuje ako otvoriť svoje vlastné ADO pripojenie k databáze Microsoft SQL Server a naviazať formulár na to:
  1. Otvorte ukážkovú databázu Northwind.mdb.
  2. Otvorte formulár Zákazníci v návrhovom zobrazení.
  3. Jasné RecordSource Vlastnosť formulára sa odpojiť forme.
  4. Nastaviť PriOtvorení Vlastnosť formulára do udalostnej procedúry:
    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. Uvoľniť udalosti formulára pridajte nasledujúci kód:
    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ár a potom ho zatvorte.
  7. Otvorte formulár Zákazníci vo formulárovom zobrazení.
  8. Pridanie, úprava alebo odstránenie záznamu vo formulári.
Všimnite si, že formulár je viazané na aktualizovateľný záznamov, ktorý je na základe údajov programu SQL Server.

Požiadavky pre Microsoft Jet

Hoci je možné naviazať formulár na množina záznamov súčasti ADO ktorý používa údaje z databázy Jet, spoločnosť Microsoft odporúča, aby ste používali DAO namiesto toho. DAO je optimalizovaný pre Jet a zvyčajne vykonáva rýchlejšie ako ADO pri použití s databázy Jet.

Keď prepojíte formulár na ADO množina záznamov pomocou Microsoft Jet údajov, sú tu dve alternatívy:
  • Množina záznamov ActiveConnection Nehnuteľnosť musí používať službu Microsoft Access 10.0 OLEDB poskytovateľ, ako aj poskytovateľ Microsoft Jet 4.0 OLEDB údajov a množina záznamov musí byť kurzor na strane servera.

    -alebo-
  • Množina záznamov ActiveConnection Nehnuteľnosť musí používať iba poskytovateľa Microsoft Jet 4.0 OLEDB údajov a množina záznamov musí byť kurzor na strane klienta.
Podobné sekcii "Microsoft SQL Server" skôr v tomto článok, máte na výber, ktoré ADO pripojenie bude používať podľa množina záznamov pri používaní databázy Jet. Váš ADO kód môžete zdieľať pripojenie ADO Microsoft Access pomocou Jet súboru databázy (.mdb) v súčasnosti otvorená, alebo môžete pomocou programovania vytvárať nové ADO pripojenie na samostatné Jet súbor databázy.

Pripojenie na ADO používajú program Microsoft Access

Ak ste písať kód v tej istej databáze programu Microsoft Access (.mdb), ktorá obsahuje údaje, ktoré vaša skupina záznamov potrebuje, je možné, váš ADO kód na zdieľanie ADO pripojenia, ktorý používa program Microsoft Access. Toto pripojenie je vystavené CurrentProject.AccessConnection Vlastnosť. Následujúci príklad demonštruje ako vytvoriť väzbu formulár na POVYKU záznamov v databáze Jet zdieľaním pripojenia ADO, Microsoft Access práve používa:
  1. Otvorte ukážkovú databázu Northwind.mdb.
  2. Otvorte formulár Zákazníci v návrhovom zobrazení.
  3. Jasné RecordSource Vlastnosť formulára sa odpojiť forme.
  4. Nastaviť PriOtvorení Vlastnosť formulára do udalostnej procedúry:
    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ár a potom ho zatvorte.
  6. Otvorte formulár Zákazníci vo formulárovom zobrazení.
  7. Pridanie, úprava alebo odstránenie záznamu vo formulári.
Všimnite si, že formulár je viazané na aktualizovateľný záznamov, ktorý je pomocou Jet údajov.

Otvorenie samostatné pripojenie ADO

V určitý okamih, budete musieť otvoriť a spravovať svoje vlastné ADO pripojenie k databáze Jet. Napríklad, budete musieť použiť tento prístup Ak ste písanie kódu v databáze, ktorá je oddelená od databázy obsahuje údaje, ktoré potrebujete na prístup. Všimnite si, že keď použijete toto prístup, spoločnosť Microsoft odporúča, že zavriete ADO pripojenie, otvorené, keď už nie sú potrebné. Napríklad, možno chcete zavrieť ADO pripojenia v prípade uvoľniť formulára.

Nasledujúci príklad ukazuje ako otvoriť svoje vlastné ADO pripojenie k databáze Microsoft Jet a naviazať formulár na to:
  1. Vytvoriť novú prázdnu databázu.
  2. Importovať formulár Zákazníci z databázy vzorky Databázu Northwind.mdb.
  3. Otvorte formulár Zákazníci v návrhovom zobrazení.
  4. Jasné RecordSource Vlastnosť formulára Vyraďovač pre formulár.
  5. Nastaviť PriOtvorení Vlastnosť formulára do udalostnej procedúry:
    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. Uvoľniť udalosti formulára pridajte nasledujúci kód:
    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ár a potom ho zatvorte.
  8. Otvorte formulár Zákazníci vo formulárovom zobrazení.
  9. Pridanie, úprava alebo odstránenie záznamu vo formulári.
Všimnite si, že formulár je viazané na aktualizovateľný záznamov, ktorý je pomocou Jet údajov.

Požiadavky na ODBC

Keď prepojíte formulár na množina záznamov súčasti ADO, ktorý používa údaje z Databáza ODBC existujú dve hlavné požiadavky:
  • Musíte použiť ADO pripojenie, ktoré používa množina záznamov Microsoft OLEDB provider for ODBC.
  • Množina záznamov súčasti ADO musí byť kurzor na strane klienta.
Nasledujúci príklad ukazuje ako otvoriť ADO pripojenie Databáza ODBC a naviazať formulár na to.

POZNÁMKA: Tieto kroky predpokladať, že databáza ODBC obsahuje tabuľku s názvom ZÁKAZNÍKOM, ktorá je identická štruktúre do tabuľky Zákazníci vo vzorke databázu Northwind.mdb. To tiež predpokladá, ste vytvorili ODBC DSN s názvom MyDSN, ktorý používa ovládač ODBC, že budete musieť pripojiť k back-end databáza.
  1. Otvorte ukážkovú databázu Northwind.mdb.
  2. Otvorte formulár Zákazníci v návrhovom zobrazení.
  3. Jasné RecordSource Vlastnosť formulára Vyraďovač pre formulár.
  4. Nastaviť PriOtvorení Vlastnosť formulára do udalostnej procedúry:
    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. Uvoľniť udalosti formulára pridajte nasledujúci kód:
    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ár a potom ho zatvorte.
  7. Otvorte formulár Zákazníci vo formulárovom zobrazení.
  8. Pridanie, úprava alebo odstránenie záznamu vo formulári.
Všimnite si, že formulár je viazané na aktualizovateľný záznamov, ktorý je na základe údajov ODBC.

Požiadavky na Oracle

Keď prepojíte formulár na množina záznamov súčasti ADO, ktorý používa údaje z databázy Oracle existujú dve hlavné požiadavky:
  • Musíte použiť ADO pripojenie, ktoré používa množina záznamov Microsoft OLEDB poskytovateľa pre Oracle.
  • Množina záznamov súčasti ADO musí byť kurzor na strane klienta.
Nasledujúci príklad ukazuje ako otvoriť ADO pripojenie k databáze Oracle a naviazať formulár na to.

POZNÁMKA: Tieto kroky predpokladať, že Oracle database obsahuje tabuľku s názvom Zákazníci, ktorá je identická štruktúre do tabuľky Zákazníci v ukážkovú databázu Northwind.mdb.
  1. Otvorte ukážkovú databázu Northwind.mdb.
  2. Otvorte formulár Zákazníci v návrhovom zobrazení.
  3. Jasné RecordSource Vlastnosť formulára sa odpojiť forme.
  4. Nastaviť PriOtvorení Vlastnosť formulára do udalostnej procedúry:
    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. Uvoľniť udalosti formulára pridajte nasledujúci kód:
    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ár a potom ho zatvorte.
  7. Otvorte formulár Zákazníci vo formulárovom zobrazení.
  8. Pridanie, úprava alebo odstránenie záznamu vo formulári.
Všimnite si, že formulár je viazané na aktualizovateľný záznamov, ktorý je na základe údajov Oracle.

ODKAZY

Ďalšie informácie, kliknite na tlačidlo nasledujúci článok číslo článku databázy Microsoft Knowledge Base:
281784Rozdiel medzi Pripojenie a AccessConnection vlastnosti
Produkty tretích strán, ktoré sú v tomto článku sú vyrobené spoločnosťami, ktoré sú nezávislé od Microsoft. Microsoft robí žiadnu záruku, implikovaných alebo inak, výkon a spoľahlivosť týchto výrobkov.
Note This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See Terms of Use for other considerations.

Vlastnosti

ID článku: 281998 - Posledná kontrola: 24. októbra 2011 - Revízia: 2.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Kľúčové slová: 
kbado kbdatabinding kbdatabase kbdesign kbprogramming kbhowto kbmt KB281998 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem:281998

Odošlite odozvu

 

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