Microsoft Access formları için ADO kayıt kümesi bağlamak hakkında

Makale çevirileri Makale çevirileri
Makale numarası: 281998 - Bu makalenin geçerli olduğu ürünleri görün.
Gelişmiş: Uzman kodlama, birlikte çalışabilirlik ve çok kullanıcılı becerileri gerektirir.

Bu makale, Microsoft Access veritabanı (.mdb) ve Microsoft Access projesi (.adp) için geçerlidir.

Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu makalede, bir ActiveX Data Objects (ADO) Recordset nesnesine bağlanır, güncelleştirilebilir bir form oluşturmak için gerekli.

Daha fazla bilgi

Microsoft Access formu, bir kayıt kümesine bağlamak için <a0></a0>, geçerli bir veri erişim nesneleri (DAO) veya ADO Recordset nesnesine formun <a1>Recordset</a1> özelliğini ayarlamanız gerekir.

Recordset özelliği Microsoft Access 2000'de kullanılmaya başlanan ve formlar için DAO veya ADO Recordset nesneleri bağlamak sağlar. Ancak, yalnızca ADO bağlantısı MSDataShape ve SQL Server OLEDB Sağlayıcısı kullanılarak açıldığında, Access 2000'de form updateability destekler. Access 2000'de bu kısıtlamayla ilgili ek bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
227053ACC2000: Üzerinde ADO Recordset'i temel alan formlar salt okunur
Microsoft Access 2002 veya sonraki sürümlerde, diğer OLEDB kullanan bir ADO kayıt kümesine bağlı güncelleştirilebilir bir form oluşturma sağlayıcısı. Form, form, bir ADO kayıt kümesine bağlı olduğunda, güncelleştirilebilir olması için birkaç genel gereksinimleri karşılaması gerekir. Bu genel gereksinimleri şunlardır:
  1. Temel ADO recordset, güncelleştirilebilir olması gerekir.
  2. Kayıt kümesi, benzersiz, tablonun birincil anahtarı gibi dizine eklenen bir veya daha fazla veri alanı içermesi gerekir.
Diğer gereksinimlerini updateability farklı sağlayıcılar arasında değişir. Bu makalede, Microsoft SQL Server, Jet, ODBC ve Oracle OLEDB Sağlayıcısı'nı kullandığınızda, diğer gereksinimleri nelerdir açıklanır.

Microsoft SQL Server gereksinimleri

Microsoft SQL Server'ı kullanarak bir ADO kayıt formu bağladığınızda updateability destekleyen iki ana gereksinimleri vardır veri:
  • ADO kayıt kümesinin bağlantısı, kendi hizmet sağlayıcı olarak Microsoft Access 10.0 OLEDB Sağlayıcısı kullanmanız gerekir.
  • ADO kayıt kümesinin bağlantı kullanmanız Microsoft SQL Server OLEDB Sağlayıcısı, bir veri sağlayıcısı.
Not:Microsoft Access 10.0 OLEDB Sağlayıcısı, Microsoft Access'te kullanılmak üzere özel olarak yazılmış bir OLEDB hizmet sağlayıcısıdır. Uygulamaların Microsoft Access dışında kullanılmak üzere tasarlanmamıştır ve diğer uygulamalarda desteklenmiyor.

Microsoft Access içinde ADO kayıt kümesi oluşturduğunuzda, olduğu gibi ADO bağlantısı kayıt kümesi tarafından kullanılacak bir seçenek vardır. ADO kodunuzu, Microsoft Access kullanan bir Access projesi (ADP) dosyasında; şu anda açık SQL sunucusu veritabanı için ADO bağlantısı paylaşabilir veya yeni bir ADO programlama oluşturabileceğiniz farklı bir SQL Server veritabanına bir bağlantı.

Microsoft Access tarafından kullanılan <a1>ADO</a1> bağlantı paylaşımı

Microsoft SQL Server veritabanına bağlı bir Access projesinin (.adp) kullanıyorsanız, Microsoft Access'i kullanarak bir ADO bağlantısını paylaşmak, ADO kodunuz için olasıdır. Bu bağlantı CurrentProject.AccessConnection özelliğinde gösterilir.

Aşağıdaki örnek, Microsoft Access ile bir ADO bağlantısı paylaşan bir SQL Server verisine dayalı bir ADO kayıt kümesi formun bağlanacak gösterilmiştir.
  1. Örnek Proje NorthwindCS.adp açın.
  2. Müşteriler formu Tasarım görünümünde açın.
  3. Formun, form unbind <a1>RecordSource</a1> özelliğini temizleyin.
  4. Olay yordamını formunun OnOpen özelliğini ayarlayın:
    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. Kaydetmek ve formu kapatın.
  6. Müşteriler formu Form görünümünde açın.
  7. Ekleme, düzenleme veya formdaki bir kaydı silmek.
SQL Server verisine dayalı, güncelleştirilebilir bir recordset için formun bağlı olduğunu unutmayın.

Ayrı bir ADO Connection'ı açma

Herhangi bir aşamada, açın ve kendi ADO yönetmek gerekebilir SQL Server bağlantısı. Örneğin, bir Access veritabanında (.mdb) veya uygulama'den farklı bir SQL Server veritabanına bağlı bir Access projesinin (.adp) kod yazma bu yaklaşım kullanmanız gerekir. Bu yöntemi kullandığınızda, Microsoft artık gerekli olmadığında açtığınız bir ADO bağlantısı kapatmak önerir unutmayın. Örneğin, formun UnLoad olayı içinde ADO bağlantıyı kapatmak isteyebilirsiniz.

Aşağıdaki örnek, kendi ADO açmaya gösterilmiştir form bağlamak ve bir Microsoft SQL Server veritabanına bir bağlantı:
  1. Northwind.mdb örnek veritabanını açın.
  2. Müşteriler formu Tasarım görünümünde açın.
  3. Formun, form unbind <a1>RecordSource</a1> özelliğini temizleyin.
  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. Formun UnLoad olayı aşağıdaki kodu ekleyin:
    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. Formu kaydedin ve sonra kapatın.
  7. Müşteriler formu Form görünümünde açın.
  8. Ekleme, düzenleme veya formdaki bir kaydı silmek.
SQL Server verisine dayalı, güncelleştirilebilir bir recordset için formun bağlı olduğunu unutmayın.

Microsoft Jet için gereksinimler

Jet veritabanındaki verileri kullanarak bir ADO kayıt kümesi formun bağlanacak mümkün olsa da, Microsoft, bunun yerine DAO kullanmanızı önerir. DAO, Jet için yüksek oranda getirilmiştir ve genellikle bir Jet veritabanı ile kullanıldığında bir ADO daha hızlı yapar.

Bir form için bir ADO bağlama Microsoft Jet veri kullanarak kayıt kümesi iki seçenekleri vardır:
  • Kayıt kümesinin ActiveConnection özelli?i, Microsoft Access 10.0 OLEDB hizmet sağlayıcısı, bir sunucu tarafı imleci olmalıdır, Microsoft Jet 4.0 OLEDB veri sağlayıcısı ve kayıt kümesinin yanı kullanmalısınız.

    -VEYA-
  • Yalnızca, Microsoft Jet 4.0 OLEDB veri sağlayıcısı ve recordset, istemci tarafı imleç olmalıdır kayıt kümesinin ActiveConnection özelliğini kullanmanız gerekir.
Benzer şekilde bu makalenin "Microsoft SQL Server" bölümünde, olduğu gibi ADO bağlantısı tarafından kayıt Jet veritabanının kullanırken kullanılacak bir seçenek vardır. ADO kodunuz için Jet veritabanı dosyası (.mdb) şu anda açık Microsoft Access kullanan ADO bağlantısı paylaşabilir veya programlı olarak ayrı bir Jet yeni bir ADO bağlantısı oluşturma veritabanı dosyası.

Microsoft Access tarafından kullanılan <a1>ADO</a1> bağlantı paylaşımı

Aynı Microsoft Access veritabanında yazıyorsanız kod gerektiren, kayıt, veri içeren (.mdb), Microsoft Access'i kullanarak bir ADO bağlantısını paylaşmak, ADO kodunuz için olanaklıdır. Bu bağlantı CurrentProject.AccessConnection özelliğinde gösterilir. Aşağıdaki örnek, bir form Jet veritabanındaki bir ADO kayıt kümesini Microsoft Access kullanmakta olduğu ADO bağlantısı paylaşarak bağlanacak gösterilmiştir:
  1. Northwind.mdb örnek veritabanını açın.
  2. Müşteriler formu Tasarım görünümünde açın.
  3. Formun, form unbind <a1>RecordSource</a1> özelliğini temizleyin.
  4. Olay yordamını formunun OnOpen özelliğini ayarlayın:
    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. Formu kaydedin ve sonra kapatın.
  6. Müşteriler formu Form görünümünde açın.
  7. Ekleme, düzenleme veya formdaki bir kaydı silmek.
Form Jet veri kullanılarak güncelleştirilebilir bir recordset bağlı olduğunu unutmayın.

Ayrı bir ADO Connection'ı açma

Herhangi bir aşamada, açın ve kendi ADO yönetmek gerekebilir Jet veritabanı bağlantısı. Örneğin, veritabanından erişmeniz gereken verileri içeren ayrı bir veritabanında kod yazıyorsanız, bu yaklaşımı kullanmak gerekir. Bu yöntemi kullandığınızda, Microsoft artık gerekli olmadığında açtığınız bir ADO bağlantısı kapatmak önerir unutmayın. Örneğin, ADO'ı kapatmak isteyebilirsiniz formun UnLoad olayı bağlantı.

Aşağıdaki örnek bir Microsoft Jet veritabanı kendi ADO Bağlantısı'nı açın ve form bağlamak gösterilmiştir:
  1. Yeni bir boş veritabanı oluşturun.
  2. Müşteriler formundaki örnek alma Northwind.mdb veritabanı.
  3. Müşteriler formu Tasarım görünümünde açın.
  4. Formun, form unbind <a1>RecordSource</a1> özelliğini temizleyin.
  5. Olay yordamını formunun OnOpen özelliğini ayarlayın:
    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. Formun UnLoad olayı aşağıdaki kodu ekleyin:
    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. Formu kaydedin ve sonra kapatın.
  8. Müşteriler formu Form görünümünde açın.
  9. Ekleme, düzenleme veya formdaki bir kaydı silmek.
Form Jet veri kullanılarak güncelleştirilebilir bir recordset bağlı olduğunu unutmayın.

ODBC için gereksinimler

Bir <a0>ODBC</a0> veritabanındaki verileri kullanarak bir ADO kayıt kümesi için bir form bağladığınızda, iki ana gereksinimleri şunlardır:
  • ADO kayıt kümesi tarafından kullanılan bağlantı, ODBC için Microsoft OLEDB Sağlayıcısı kullanmanız gerekir.
  • ADO recordset, istemci tarafı imleç olması gerekir.
Aşağıdaki örnek, bir ADO açmaya gösterilmiştir form bağlamak ve bir ODBC veritabanına bağlantı.

Not: Bu adımları ODBC veritabanı yapısında Northwind.mdb örnek veritabanını <a3>Müşteriler</a3> tablosunda aynı olan MÜŞTERILERE adlı bir tablo içerdiğini varsayalım. Ayrıca oluşturduğunuz arka uç veritabanına bağlanmak için gereken ODBC sürücüsünü kullanan MyDSN adlı bir ODBC DSN varsayar.
  1. Northwind.mdb örnek veritabanını açın.
  2. Müşteriler formu Tasarım görünümünde açın.
  3. Formun, form unbind <a1>RecordSource</a1> özelliğini temizleyin.
  4. Olay yordamını formunun OnOpen özelliğini ayarlayın:
    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. Formun UnLoad olayı aşağıdaki kodu ekleyin:
    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. Formu kaydedin ve sonra kapatın.
  7. Müşteriler formu Form görünümünde açın.
  8. Ekleme, düzenleme veya formdaki bir kaydı silmek.
ODBC verisine dayalı, güncelleştirilebilir bir recordset için formun bağlı olduğunu unutmayın.

Oracle için gereksinimler

Bir Oracle veritabanından verileri kullanarak bir ADO kayıt kümesi için bir form bağladığınızda, iki ana gereksinimleri şunlardır:
  • Kayıt kümesi tarafından kullanılan bir ADO bağlantısı, Oracle için Microsoft OLEDB Sağlayıcısı kullanmanız gerekir.
  • ADO Recordset, istemci tarafı imleç olması gerekir.
Aşağıdaki örnek, bir ADO açmaya gösterilmiştir bağlantı, bir Oracle veritabanını ve form bağlayın.

Not: Adımları, Oracle veritabanı yapısında Northwind.mdb örnek veritabanını <a3>Müşteriler</a3> tablosunda aynı olan MÜŞTERILERE adlı bir tablo içerdiğini varsayalım.
  1. Northwind.mdb örnek veritabanını açın.
  2. Müşteriler formu Tasarım görünümünde açın.
  3. Formun, form unbind <a1>RecordSource</a1> özelliğini temizleyin.
  4. Olay yordamını formunun OnOpen özelliğini ayarlayın:
    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. Formun UnLoad olayı aşağıdaki kodu ekleyin:
    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. Formu kaydedin ve sonra kapatın.
  7. Müşteriler formu Form görünümünde açın.
  8. Ekleme, düzenleme veya formdaki bir kaydı silmek.
Oracle verisine dayalı, güncelleştirilebilir bir recordset için formun bağlı olduğunu unutmayın.

Referanslar

Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
281784Arasındaki fark Bağlantı ve AccessConnection özellikleri
Bu makalede açıklanan üçüncü taraf ürünleri Microsoft'tan bağımsız şirketler tarafından üretilmektedir. Microsoft bu ürünlerin performans veya güvenilirliğiyle ilgili hiçbir garanti vermemektedir.

Özellikler

Makale numarası: 281998 - Last Review: 7 Haziran 2004 Pazartesi - Gözden geçirme: 4.3
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Anahtar Kelimeler: 
kbmt kbado kbdatabinding kbdatabase kbdesign kbprogramming kbhowto KB281998 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:281998

Geri Bildirim Ver

 

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