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
(http://support.microsoft.com/kb/227053/EN-US/
)
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:
- ADO mendasari recordset harus updateable.
- 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.
- Membuka sampel proyek NorthwindCS.adp.
- Membuka formulir pelanggan dalam Design view.
- Jelas RecordSource properti dari bentuk untuk melepaskan bentuk.
- 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
- Simpan dan kemudian menutup formulir.
- Membuka formulir pelanggan dalam bentuk tampilan.
- 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:
- Buka database contoh Northwind.mdb.
- Membuka formulir pelanggan dalam Design view.
- Jelas RecordSource properti dari bentuk untuk melepaskan bentuk.
- 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
- 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
- Menyimpan formulir, dan kemudian tutup.
- Membuka formulir pelanggan dalam bentuk tampilan.
- 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:
- Buka database contoh Northwind.mdb.
- Membuka formulir pelanggan dalam Design view.
- Jelas RecordSource properti dari bentuk untuk melepaskan bentuk.
- 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
- Menyimpan formulir, dan kemudian tutup.
- Membuka formulir pelanggan dalam bentuk tampilan.
- 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:
- Buat database kosong baru.
- Impor bentuk pelanggan dari database contoh
Northwind.mdb.
- Membuka formulir pelanggan dalam Design view.
- Jelas RecordSource properti dari bentuk untuk melepaskan bentuk.
- 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
- 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
- Menyimpan formulir, dan kemudian tutup.
- Membuka formulir pelanggan dalam bentuk tampilan.
- 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.
- Buka database contoh Northwind.mdb.
- Membuka formulir pelanggan dalam Design view.
- Jelas RecordSource properti dari bentuk untuk melepaskan bentuk.
- 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
- 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
- Menyimpan formulir, dan kemudian tutup.
- Membuka formulir pelanggan dalam bentuk tampilan.
- 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.
- Buka database contoh Northwind.mdb.
- Membuka formulir pelanggan dalam Design view.
- Jelas RecordSource properti dari bentuk untuk melepaskan bentuk.
- 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
- 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
- Menyimpan formulir, dan kemudian tutup.
- Membuka formulir pelanggan dalam bentuk tampilan.
- Menambahkan, mengedit atau menghapus record dalam bentuk.
Perhatikan bahwa bentuk terikat untuk recordset updateable yang
berdasarkan Oracle data.
Untuk informasi tambahan, klik artikel berikut
nomor ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
281784
(http://support.microsoft.com/kb/281784/
)
Perbedaan 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
(http://go.microsoft.com/fwlink/?LinkId=151500)
for other considerations.