Het Microsoft Access-formulieren koppelen aan ADO-recordsets

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 281998 - Bekijk de producten waarop dit artikel van toepassing is.
Geavanceerd: Vereist expert codering, interoperabiliteit en intervals kwalificaties.

Dit artikel geldt voor een Microsoft Access-database (. mdb) en op een Microsoft Access-project (. adp).

Alles uitklappen | Alles samenvouwen

Op deze pagina

Samenvatting

In dit artikel wordt beschreven wat is vereist voor het maken een bijgewerkt formulier dat is gebonden aan een ActiveX Data Objects (ADO)Record setobject.

Meer informatie

Een Microsoft Access-formulier om een record set binden, moet u Stel deRecord seteigenschap van het formulier geldig ADO of DAO (Data Access Objects)Record setobject.

HetRecord seteigenschap werd geïntroduceerd in Microsoft Access 2000 en kan u kunt formulieren koppelen aan DAO of ADORecord setobjecten. Formulieren in Access 2000 ondersteunen echter alleen worden bestuurd Als u de ADO-verbinding wordt geopend met de MSDataShape en SQL Server OLEDB providers.Voor meer informatie over deze beperking in Access 2000, klikt u op het volgende artikelnummer om het artikel te bekijken in de Microsoft Knowledge Base:
227053ACC2000: Formulieren op basis van een ADO-Recordsets worden alleen-lezen
In Microsoft Access 2002 of hoger, kunt u een bijgewerkt formulier dat afhankelijk is van een ADO-recordset met andere OLEDB providers. Een formulier moet voldoen aan enkele algemene eisen voor het formulier bijgewerkt wanneer deze is gebonden aan een ADO-recordset. Deze algemene eisen zijn:
  1. De onderliggende ADO-recordset moet worden bijgewerkt.
  2. De record set moet een of meer velden bevatten een unieke index, zoals de primaire sleutel van een tabel.
De andere vereisten voor worden bestuurd variëren tussen verschillende providers. In dit artikel wordt beschreven wat de andere vereisten zijn wanneer u de Microsoft SQL Server, Jet, ODBC en Oracle OLEDB-providers.

Vereisten voor Microsoft SQL Server

Er zijn twee hoofd vereisten voor bewijs worden bestuurd wanneer u koppelt een formulier aan een ADO-recordset die van Microsoft SQL Server gebruikmaakt gegevens:
  • De ADO-recordset verbinding moet Microsoft gebruiken Toegang tot 10,0 OLEDB-provider als de serviceprovider.
  • De ADO-recordset verbinding moet Microsoft SQL gebruiken Als de gegevens aanbieder server OLEDB-provider.
OPMERKING:De Microsoft Access 10. 0 OLEDB-provider is een OLEDB-service provider die is geschreven voor gebruik in Microsoft Access. Het was niet ontworpen voor gebruik in andere toepassingen dan Microsoft Access en is niet ondersteund in andere toepassingen.

Wanneer u ADO-recordsets maken in Microsoft Access hebt u de keuze welke ADO-verbinding zal worden gebruikt door de record set. De ADO-code de ADO-verbinding kunt delen die Microsoft Access wordt gebruikt voor de SQL Server-database geopend in een Access-projectbestand (ADP); of u kunt een nieuw ADO via programmering maken verbinding met een andere SQL Server-database.

Delen van de ADO-verbinding wordt gebruikt door Microsoft Access

Wanneer u een Access-projectbestand (. adp gebruikt) aangesloten op een Microsoft SQL Server-database, is het mogelijk uw ADO-code voor het delen van de ADO-verbinding die van Microsoft Access gebruikmaakt. Deze verbinding wordt weer gegeven door hetCurrentProject.AccessConnectioneigenschap.

In het volgende voorbeeld wordt gedemonstreerd hoe u een formulier koppelen aan een ADO-recordset die is gebaseerd op SQL Server-gegevens die u deelt een ADO-verbinding met Microsoft Access.
  1. Open het voorbeeldproject NorthwindCS. adp.
  2. Open het formulier Klanten in de ontwerpweergave.
  3. Schakel deRecord bronde eigenschap van het formulier wilt losmaken van de vorm.
  4. Stel deOnOpende eigenschap van het formulier op de volgende gebeurtenisprocedure:
    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. Opslaan en sluit vervolgens het formulier.
  6. Open het formulier Klanten in de formulier weergave.
  7. Toevoegen, bewerken of verwijderen van een record in het formulier.
Houd er rekening mee dat het formulier afhankelijk is van een bij te werken record set die is gebaseerd op SQL Server-gegevens.

Een afzonderlijke ADO-verbinding openen

Op een bepaald moment wellicht openen en beheren van uw eigen ADO verbinding met SQL Server. U moet bijvoorbeeld gebruik deze aanpak als u schrijft de code in een Access-database (. mdb) of een Access-project bestand (. adp) dat is verbonden met een andere SQL Server-database dan uw toepassing. Houd er rekening mee dat wanneer u deze methode gebruikt, Microsoft raadt aan dat u sluit de ADO-verbinding die u hebt geopend wanneer het niet langer nodig is. Voor voorbeeld, kunt u in de gebeurtenis UnLoad van de ADO-verbinding sluit de met dit formulier.

In het volgende voorbeeld wordt gedemonstreerd hoe u uw eigen ADO opent verbinding met een Microsoft SQL Server-database en een formulier maken:
  1. Open de voorbeeld data base Noordenwind. mdb.
  2. Open het formulier Klanten in de ontwerpweergave.
  3. Schakel deRecord bronde eigenschap van het formulier wilt losmaken van de vorm.
  4. Stel deOnOpende eigenschap van het formulier op de volgende gebeurtenisprocedure:
    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. Voeg de volgende code aan de gebeurtenis UnLoad van het formulier:
    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. Sla het formulier op en sluit het.
  7. Open het formulier Klanten in de formulier weergave.
  8. Toevoegen, bewerken of verwijderen van een record in het formulier.
Houd er rekening mee dat het formulier afhankelijk is van een bij te werken record set die is gebaseerd op SQL Server-gegevens.

Vereisten voor Microsoft Jet

Hoewel het is mogelijk een formulier koppelen aan een ADO-recordset die gegevens uit een Jet-database wordt gebruikt, wordt aangeraden dat u DAO gebruiken in plaats daarvan. DAO is geoptimaliseerd voor Jet en voert meestal sneller dan ADO in combinatie met een Jet-database.

Wanneer u een formulier koppelt aan een ADO record set met gegevens van Microsoft Jet, zijn er twee alternatieven:
  • De record setActiveConnectioneigenschap moet de service Microsoft Access 10. 0 OLEDB gebruiken provider, alsmede de gegevens voor Microsoft Jet 4. 0 OLEDB-providerende record set moet een cursor aan de server zijde.

    - of -
  • De record setActiveConnectioneigenschap moet alleen gegevens voor Microsoft Jet 4. 0 OLEDB-provider gebruikenende record set moet een cursor aan de client zijde.
Vergelijkbaar met de sectie 'Microsoft sql Server' eerder in dit artikel, hebt u de keuze om welke ADO verbinding wordt gebruikt door de record set als een Jet-database. De ADO-code kunt de ADO-verbinding delen die door Microsoft Access wordt gebruikt voor de Jet-databasebestand (. mdb) geopend, of u kunt een nieuwe ADO-verbinding met een afzonderlijke Jet via programmering maken data base bestand.

Delen van de ADO-verbinding wordt gebruikt door Microsoft Access

Als u de code in dezelfde Microsoft Access-database schrijft (. mdb) dat de gegevens bevat die de record set nodig heeft, is het mogelijk de ADO-code voor het delen van de ADO-verbinding die van Microsoft Access gebruikmaakt. Dit verbinding wordt weer gegeven door deCurrentProject.AccessConnectioneigenschap. In het volgende voorbeeld wordt gedemonstreerd hoe een formulier binden met een ADO-recordset in een Jet-database door de ADO-verbinding delen die Microsoft Access gebruikt momenteel:
  1. Open de voorbeeld data base Noordenwind. mdb.
  2. Open het formulier Klanten in de ontwerpweergave.
  3. Schakel deRecord bronde eigenschap van het formulier wilt losmaken van de vorm.
  4. Stel deOnOpende eigenschap van het formulier op de volgende gebeurtenisprocedure:
    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. Sla het formulier op en sluit het.
  6. Open het formulier Klanten in de formulier weergave.
  7. Toevoegen, bewerken of verwijderen van een record in het formulier.
Houd er rekening mee dat het formulier afhankelijk is van een bij te werken record set die is Jet-gegevens gebruiken.

Een afzonderlijke ADO-verbinding openen

Op een bepaald moment wellicht openen en beheren van uw eigen ADO verbinding met een Jet-database. Bijvoorbeeld, zou u moeten gebruiken deze aanpak Als u de code schrijft in een data base die losstaat van de data base bevat de gegevens die u nodig hebt. Houd er rekening mee dat wanneer u dit aanpak, Microsoft adviseert dat u de ADO-verbinding sluit u Wanneer het niet langer nodig is geopend. U wilt bijvoorbeeld de ADO sluiten de gebeurtenis UnLoad verbinding van het formulier.

In het volgende voorbeeld laat zien hoe u uw eigen ADO-verbinding met een Microsoft Jet-database openen en een formulier binden:
  1. Maak een nieuwe lege data base.
  2. Het formulier Customers uit de voorbeeld data base importeren Noordenwind. mdb.
  3. Open het formulier Klanten in de ontwerpweergave.
  4. Schakel deRecord bronde eigenschap van het formulier formulier losmaken.
  5. Stel deOnOpende eigenschap van het formulier op de volgende gebeurtenisprocedure:
    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. Voeg de volgende code aan de gebeurtenis UnLoad van het formulier:
    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. Sla het formulier op en sluit het.
  8. Open het formulier Klanten in de formulier weergave.
  9. Toevoegen, bewerken of verwijderen van een record in het formulier.
Houd er rekening mee dat het formulier afhankelijk is van een bij te werken record set die is Jet-gegevens gebruiken.

Vereisten voor ODBC

Wanneer u een formulier koppelt aan een ADO-recordset die gebruikmaakt van gegevens uit een ODBC-database, zijn er twee hoofd vereisten:
  • De ADO-verbinding die wordt gebruikt door de record set moet gebruiken. de Microsoft OLEDB-provider voor ODBC.
  • De ADO-recordset moet een cursor aan de client zijde.
Het volgende voorbeeld wordt het openen van een ADO verbinding met een ODBC-database en een formulier maken.

OPMERKING:Deze stappen wordt ervan uitgegaan dat de ODBC-database een tabel met de naam bevat KLANTEN die identiek zijn met de structuur van de tabel Customers in de voorbeeld data base Noordenwind. mdb. Het ook wordt ervan uitgegaan dat u een benoemde ODBC DSN hebt gemaakt MyDSN die gebruikmaakt van de ODBC-stuurprogramma dat u wilt verbinden met de back-end de data base.
  1. Open de voorbeeld data base Noordenwind. mdb.
  2. Open het formulier Klanten in de ontwerpweergave.
  3. Schakel deRecord bronde eigenschap van het formulier formulier losmaken.
  4. Stel deOnOpende eigenschap van het formulier op de volgende gebeurtenisprocedure:
    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. Voeg de volgende code aan de gebeurtenis UnLoad van het formulier:
    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. Sla het formulier op en sluit het.
  7. Open het formulier Klanten in de formulier weergave.
  8. Toevoegen, bewerken of verwijderen van een record in het formulier.
Houd er rekening mee dat het formulier afhankelijk is van een bij te werken record set die is gebaseerd op ODBC-gegevens.

Vereisten voor Oracle

Wanneer u een formulier koppelt aan een ADO-recordset die gebruikmaakt van gegevens uit een Oracle-database, zijn er twee hoofd vereisten:
  • De ADO-verbinding die wordt gebruikt door de record set moet gebruiken. de Microsoft OLEDB-provider voor Oracle.
  • De ADO-Recordset moet een cursor aan de client zijde.
Het volgende voorbeeld wordt het openen van een ADO verbinding met een Oracle-database en een formulier maken.

OPMERKING:Deze stappen wordt ervan uitgegaan dat de Oracle data base een tabel bevat met de naam klanten die identiek zijn met de structuur van de tabel Klanten in de voorbeeld data base Noordenwind. mdb.
  1. Open de voorbeeld data base Noordenwind. mdb.
  2. Open het formulier Klanten in de ontwerpweergave.
  3. Schakel deRecord bronde eigenschap van het formulier wilt losmaken van de vorm.
  4. Stel deOnOpende eigenschap van het formulier op de volgende gebeurtenisprocedure:
    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. Voeg de volgende code aan de gebeurtenis UnLoad van het formulier:
    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. Sla het formulier op en sluit het.
  7. Open het formulier Klanten in de formulier weergave.
  8. Toevoegen, bewerken of verwijderen van een record in het formulier.
Houd er rekening mee dat het formulier afhankelijk is van een bij te werken record set die is gebaseerd op gegevens van Oracle.

Referenties

Klik op het volgende artikel voor meer informatie nummer naar het artikel in de Microsoft Knowledge Base:
281784Verschil tussen AccessConnection eigenschappen en verbinding
De producten van andere leveranciers die zijn in dit artikel besproken worden geproduceerd door bedrijven die onafhankelijk van zijn Microsoft. Microsoft biedt geen enkele garantie, impliciet of anderszins, met betrekking tot de prestaties of betrouwbaarheid van deze producten.

Eigenschappen

Artikel ID: 281998 - Laatste beoordeling: zaterdag 17 september 2011 - Wijziging: 3.0
De informatie in dit artikel is van toepassing op:
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Trefwoorden: 
kbado kbdatabinding kbdatabase kbdesign kbprogramming kbhowto kbmt KB281998 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.
De Engelstalige versie van dit artikel is de volgende:281998

Geef ons feedback

 

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