Bagaimana untuk mengikat Microsoft Access bentuk untuk ADO recordsets

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 281998 - Melihat produk di mana artikel ini berlaku.
Lanjutan: Memerlukan ahli coding, interoperabilitas, dan multiuser keterampilan.

Artikel ini berlaku untuk Microsoft Access database (.mdb) dan untuk Microsoft Access proyek (.adp).

Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Artikel ini menjelaskan apa diperlukan untuk membuat bentuk updateable yang terikat untuk ActiveX Data objek (ADO) Recordset objek.

INFORMASI LEBIH LANJUT

Untuk mengikat Microsoft Access bentuk untuk recordset, Anda harus menetapkan Recordset properti dari bentuk untuk Data akses objek (DAO) yang valid atau ADO Recordset objek.

The Recordset properti diperkenalkan pada Microsoft Access 2000, dan memungkinkan Anda untuk mengikat bentuk DAO atau ADO Recordset objek. Namun, bentuk pada Access 2000 mendukung updateability hanya Jika koneksi ADO dibuka dengan menggunakan MSDataShape dan SQL Server OLEDB penyedia. Untuk informasi tambahan tentang ini keterbatasan pada Access 2000, klik nomor artikel di bawah ini untuk melihat artikel pada Basis Pengetahuan Microsoft:
227053 ACC2000: Bentuk berdasarkan ADO Recordsets hanya-baca
Pada tahun 2002 akses Microsoft atau kemudian, Anda dapat membuat bentuk updateable yang terikat untuk recordset ADO yang menggunakan OLEDB lain penyedia. Bentuk harus memenuhi beberapa persyaratan umum untuk formulir harus updateable ketika terikat untuk recordset ADO. Persyaratan ini umum adalah:
  1. ADO mendasari recordset harus updateable.
  2. Recordset harus berisi satu atau lebih bidang yang unik diindeks, seperti tabel kunci utama.
Persyaratan lain untuk updateability bervariasi antara berbeda penyedia. Artikel ini menjelaskan apa persyaratan lainnya adalah ketika Anda menggunakan Microsoft SQL Server, Jet, ODBC dan Oracle OLEDB penyedia.

Persyaratan untuk Microsoft SQL Server

Ada dua persyaratan utama untuk mendukung updateability ketika Anda mengikat bentuk recordset ADO yang menggunakan Microsoft SQL Server data:
  • ADO recordset koneksi harus menggunakan Microsoft Akses 10,0 OLEDB penyedia sebagai penyedia layanan.
  • ADO recordset koneksi harus menggunakan Microsoft SQL Penyedia server OLEDB sebagai penyedia data.
CATATAN: Penyedia Microsoft akses 10,0 OLEDB adalah layanan OLEDB penyedia yang ditulis secara khusus untuk digunakan dalam Microsoft Access. Itu bukan dirancang untuk digunakan dalam aplikasi selain Microsoft Access, dan tidak didukung di aplikasi lain.

Bila Anda membuat ADO recordsets dalam Microsoft Access, Anda memiliki pilihan untuk yang ADO sambungan akan digunakan oleh recordset. Kode ADO Anda dapat berbagi koneksi ADO yang Microsoft Access menggunakan database SQL Server saat ini terbuka di Akses file proyek (ADP); atau Anda dapat secara pemrograman membuat ADO baru koneksi ke SQL Server database yang berbeda.

Berbagi koneksi ADO yang digunakan oleh Microsoft Access

Jika Anda menggunakan akses file proyek (.adp) terhubung ke Microsoft SQL Server database, itu mungkin untuk kode ADO untuk berbagi ADO sambungan yang menggunakan Microsoft Access. Sambungan ini terkena oleh The CurrentProject.AccessConnection properti.

Contoh berikut menunjukkan cara mengikat bentuk recordset ADO yang didasarkan pada data SQL Server yang saham ADO hubungan dengan Microsoft Access.
  1. Membuka sampel proyek NorthwindCS.adp.
  2. Membuka formulir pelanggan dalam Design view.
  3. Jelas RecordSource properti dari bentuk untuk melepaskan bentuk.
  4. Menetapkan OnOpen properti dari bentuk untuk acara prosedur berikut:
    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. Simpan dan kemudian menutup formulir.
  6. Membuka formulir pelanggan dalam bentuk tampilan.
  7. Menambahkan, mengedit atau menghapus record dalam bentuk.
Perhatikan bahwa bentuk terikat untuk recordset updateable yang berdasarkan data SQL Server.

Membuka sambungan ADO terpisah

Di beberapa titik, Anda harus membuka dan mengelola ADO Anda sendiri koneksi ke SQL Server. Misalnya, Anda harus menggunakan pendekatan ini jika Anda sedang menulis kode dalam database Access (.mdb) atau proyek akses file (.adp) yang terhubung ke database SQL Server yang berbeda daripada Anda aplikasi. Perhatikan bahwa ketika Anda menggunakan pendekatan ini, Microsoft menyarankan Anda menutup koneksi ADO yang dibuka ketika itu tidak lagi diperlukan. Untuk contoh, Anda mungkin ingin menutup koneksi ADO dalam acara membongkar bentuk.

Contoh berikut menunjukkan cara buka ADO Anda sendiri koneksi ke database Microsoft SQL Server dan untuk mengikat bentuk untuk itu:
  1. Buka database contoh Northwind.mdb.
  2. Membuka formulir pelanggan dalam Design view.
  3. Jelas RecordSource properti dari bentuk untuk melepaskan bentuk.
  4. Menetapkan OnOpen properti dari bentuk untuk acara prosedur berikut:
    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. Tambahkan kode berikut untuk membongkar acara dalam bentuk:
    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. Menyimpan formulir, dan kemudian tutup.
  7. Membuka formulir pelanggan dalam bentuk tampilan.
  8. Menambahkan, mengedit atau menghapus record dalam bentuk.
Perhatikan bahwa bentuk terikat untuk recordset updateable yang berdasarkan data SQL Server.

Persyaratan untuk Microsoft Jet

Meskipun dimungkinkan untuk mengikat bentuk recordset ADO yang menggunakan data dari Jet database, Microsoft menyarankan agar Anda menggunakan DAO sebaliknya. DAO sangat dioptimalkan untuk Jet dan biasanya melakukan lebih cepat daripada ADO Ketika digunakan dengan Jet database.

Ketika Anda mengikat bentuk ADO Recordset menggunakan Microsoft Jet data, ada dua alternatif:
  • Recordset ActiveConnection properti harus menggunakan layanan Microsoft akses 10,0 OLEDB penyedia, serta Microsoft Jet 4.0 OLEDB Data provider dan recordset harus kursor sisi server.

    -atau-
  • Recordset ActiveConnection properti harus menggunakan hanya Microsoft Jet 4.0 OLEDB Data provider dan recordset harus kursor sisi klien.
Mirip dengan bagian "Microsoft SQL Server" pada awal ini Artikel, Anda memiliki pilihan untuk mana ADO sambungan akan digunakan oleh Recordset ketika menggunakan Jet database. Kode ADO Anda dapat berbagi koneksi ADO Microsoft Access menggunakan untuk Jet database file (.mdb) saat ini terbuka, atau Anda dapat secara pemrograman membuat sambungan ADO baru untuk Jet terpisah database file.

Berbagi koneksi ADO yang digunakan oleh Microsoft Access

Jika Anda menulis kode dalam Microsoft Access database yang sama (.mdb) yang berisi data yang Anda recordset kebutuhan, dimungkinkan untuk kode ADO untuk berbagi sambungan ADO yang Microsoft Access menggunakan. Ini sambungan terkena oleh CurrentProject.AccessConnection properti. Contoh berikut menunjukkan bagaimana untuk mengikat bentuk untuk recordset ADO dalam database Jet dengan berbagi koneksi ADO yang Microsoft Access saat ini menggunakan:
  1. Buka database contoh Northwind.mdb.
  2. Membuka formulir pelanggan dalam Design view.
  3. Jelas RecordSource properti dari bentuk untuk melepaskan bentuk.
  4. Menetapkan OnOpen properti dari bentuk untuk acara prosedur berikut:
    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. Menyimpan formulir, dan kemudian tutup.
  6. Membuka formulir pelanggan dalam bentuk tampilan.
  7. Menambahkan, mengedit atau menghapus record dalam bentuk.
Perhatikan bahwa bentuk terikat untuk recordset updateable yang menggunakan Jet data.

Membuka sambungan ADO terpisah

Di beberapa titik, Anda harus membuka dan mengelola ADO Anda sendiri koneksi ke Jet database. Misalnya, Anda harus menggunakan pendekatan ini Jika Anda menulis kode dalam database yang terpisah dari database yang berisi data yang Anda perlu untuk mengakses. Perhatikan bahwa ketika Anda menggunakan ini pendekatan, Microsoft menganjurkan bahwa Anda menutup koneksi ADO bahwa Anda dibuka ketika itu tidak lagi diperlukan. Sebagai contoh, Anda mungkin ingin menutup ADO sambungan dalam membongkar formulir.

Contoh berikut menunjukkan bagaimana untuk membuka koneksi ADO Anda sendiri ke Microsoft Jet database dan untuk mengikat bentuk untuk itu:
  1. Buat database kosong baru.
  2. Impor bentuk pelanggan dari database contoh Northwind.mdb.
  3. Membuka formulir pelanggan dalam Design view.
  4. Jelas RecordSource properti dari bentuk untuk melepaskan bentuk.
  5. Menetapkan OnOpen properti dari bentuk untuk acara prosedur berikut:
    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. Tambahkan kode berikut untuk membongkar acara dalam bentuk:
    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. Menyimpan formulir, dan kemudian tutup.
  8. Membuka formulir pelanggan dalam bentuk tampilan.
  9. Menambahkan, mengedit atau menghapus record dalam bentuk.
Perhatikan bahwa bentuk terikat untuk recordset updateable yang menggunakan Jet data.

Persyaratan untuk ODBC

Ketika Anda mengikat bentuk recordset ADO yang menggunakan data dari database ODBC, ada dua persyaratan utama:
  • ADO koneksi yang digunakan oleh recordset harus menggunakan Microsoft OLEDB penyedia untuk ODBC.
  • ADO recordset harus kursor sisi klien.
Contoh berikut menunjukkan cara buka ADO Koneksi ODBC database dan untuk mengikat bentuk untuk itu.

CATATAN: Langkah ini berasumsi bahwa ODBC database berisi sebuah tabel yang bernama PELANGGAN yang identik dalam struktur tabel pelanggan dalam sampel database Northwind.mdb. Hal ini juga menganggap Anda telah membuat DSN ODBC bernama MyDSN yang menggunakan ODBC pengandar yang Anda butuhkan untuk menyambung ke back-end database.
  1. Buka database contoh Northwind.mdb.
  2. Membuka formulir pelanggan dalam Design view.
  3. Jelas RecordSource properti dari bentuk untuk melepaskan bentuk.
  4. Menetapkan OnOpen properti dari bentuk untuk acara prosedur berikut:
    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. Tambahkan kode berikut untuk membongkar acara dalam bentuk:
    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. Menyimpan formulir, dan kemudian tutup.
  7. Membuka formulir pelanggan dalam bentuk tampilan.
  8. Menambahkan, mengedit atau menghapus record dalam bentuk.
Perhatikan bahwa bentuk terikat untuk recordset updateable yang berdasarkan ODBC data.

Persyaratan untuk Oracle

Ketika Anda mengikat bentuk recordset ADO yang menggunakan data dari Oracle database, ada dua persyaratan utama:
  • ADO koneksi yang digunakan oleh recordset harus menggunakan Microsoft OLEDB penyedia untuk Oracle.
  • ADO Recordset harus kursor sisi klien.
Contoh berikut menunjukkan cara buka ADO koneksi ke database Oracle dan untuk mengikat bentuk untuk itu.

CATATAN: Langkah ini berasumsi bahwa Oracle database berisi meja nama pelanggan yang identik dalam struktur pelanggan di meja database contoh Northwind.mdb.
  1. Buka database contoh Northwind.mdb.
  2. Membuka formulir pelanggan dalam Design view.
  3. Jelas RecordSource properti dari bentuk untuk melepaskan bentuk.
  4. Menetapkan OnOpen properti dari bentuk untuk acara prosedur berikut:
    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. Tambahkan kode berikut untuk membongkar acara dalam bentuk:
    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. Menyimpan formulir, dan kemudian tutup.
  7. Membuka formulir pelanggan dalam bentuk tampilan.
  8. Menambahkan, mengedit atau menghapus record dalam bentuk.
Perhatikan bahwa bentuk terikat untuk recordset updateable yang berdasarkan Oracle data.

REFERENSI

Untuk informasi tambahan, klik artikel berikut nomor ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
281784Perbedaan antara Sambungan dan AccessConnection properti
Produk pihak ketiga yang dibahas dalam artikel ini dibuat oleh perusahaan yang independen terhadap Microsoft. Microsoft membuat tidak ada jaminan tersirat atau sebaliknya, mengenai kinerja atau keandalan produk ini.
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.

Properti

ID Artikel: 281998 - Kajian Terakhir: 23 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Kata kunci: 
kbado kbdatabinding kbdatabase kbdesign kbprogramming kbhowto kbmt KB281998 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:281998

Berikan Masukan

 

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