Skip to main content

Membuat Fungsi Untuk Membuka Recordset di Access VBA

Kita dapat membuat fungsi sendiri yang digunakan untuk membuka sekumpulan recordset. Sekumpulan recordset itu mungkin bisa berasal dari sebuah tabel atau query yang dibentuk dari satu atau beberapa tabel sekaligus.

Dalam posting ini, kita dapat memberi nama fungsi itu membukaRecordset, menggunakan metode pada VBA yang disebut OpenRecordset. Jadi, fungsi membukaRecordset digunakan untuk membuka sekumpulan record yang berasal dari sebuah tabel atau query. Sekumpulan recordset yang terbuka itu kemudian bisa ditampilkan di layar komputer, Selain itu, kita juga bisa mengatur recordset yang terbuka sebagai sekumpulan record yang hanya bisa dibaca saja atau sekaligus bisa diedit.

Ada dua parameter yang digunakan pada fungsi membukaRecordset. Kedua parameter itu adalah strSql dan boolUntukEdit. Parameter strSql adalah pernyataan SQL yang bertipe data string, sifatnya wajib untuk diisi. Sedangkan parameter boolUntukEdit bersifat opsional, dengan nilai defaultnya False. Artinya, sekumpulan record yang terbuka ditampilkan hanya untuk dibaca saja. Jika sekumpulan record itu ingin dibaca dan diedit, maka kita memberi nilai True untuk parameter boolUntukEdit.

Fungsi membukaRecordset adalah sebagai berikut:
  1. Function membukaRecordset(strSql As StringOptional boolUntukEdit As BooleanAs DAO.Recordset 'OK  
  2. ' Parameter:  
  3. ' strSql      = merupakan query SELECT (SELECT query) yang digunakan untuk membuka recordset  
  4. ' boolUntukEdit = Opsional, ekspresi boolean yang menunjukkan apakah  
  5. '               SELECT query hanya digunakan untuk membaca record  
  6. '               atau untuk mengedit dan menyimpan record.  
  7. '  
  8. ' Jika boolUntukEdit = True maka record bisa diedit atau disimpan.  
  9.   Dim rst As DAO.Recordset  
  10. On Error GoTo Err_Msg  
  11.   If boolUntukEdit Then  
  12.     Set rst = daoDbs.OpenRecordset(strSql, dbOpenDynaset)  
  13.   Else  
  14.     Set rst = daoDbs.OpenRecordset(strSql, dbOpenSnapshot)  
  15.   End If  
  16.   Set membukaRecordset = rst  
  17. Exit_Function:  
  18.   Exit Function  
  19. Err_Msg:  
  20.   MsgBox "Function membukaRecordset, Error # " & str(Err.Number) & ", source: " & Err.Source & _  
  21.   Chr(13) & Err.description  
  22.   Resume Exit_Function  
  23. End Function  
Fungsi membukaRecordset hanya bisa dijalankan bila fungsi membukaDbs dijalankan terlebih dahulu. Jadi, kita harus memastikan bahwa fungsi membukaDbs sudah dijalankan. Dengan demikian, urutannya adalah sebagai berikut:
  1. membukaDbs
  2. membukaRecordset
Dalam fungsi membukaRecordset, ada objek database yang bernama daoDbs yang harus diatur dengan menggunakan fungsi membukaDbs. Jika objek daoDbs tidak diatur terlebih dahulu, Access akan menampilkan pesan kesalahan "run-time error #91", yang menyatakan bahwa nilai objek daoDbs belum diset (diatur).

Implementasi:


Kita dapat mengaplikasikan fungsi membukaRecordset di database front-end yang tidak memiliki sebuah tabel atau query di dalamnya. Contoh berikut ini adalah fungsi membukaRecordset yang digunakan untuk menampilkan sepuluh record pertama dari field yang bernama KodeRek pada tabel tblRekUtama.  
  1. Function contohMembukaRecordset()  
  2.   Dim strSql As String  
  3.   Dim rst As DAO.Recordset  
  4.   Dim fld As DAO.Fields  
  5.     
  6.   strSql = "SELECT * FROM tblRekUtama"  
  7.     
  8.   membukaDbs  
  9.     
  10.   Set rst = membukaRecordset(strSql)  
  11.   Do While Not rst.EOF  
  12.     Debug.Print "Record Number: " & rst.AbsolutePosition + 1 & ", " & _  
  13.       rst.Fields(0).name & ": " & rst.Fields(0).Value  
  14.     If rst.AbsolutePosition = 9 Then Exit Function  
  15.     rst.MoveNext  
  16.   Loop  
  17. rst.Close  
  18.   Set rst = Nothing  
  19.     
  20.   menutupDbs  
  21. End Function  
Saat dijalankan di Immediate Window, hasilnya adalah sebagai berikut:
Gambar 2 Simulasi membuka recordset

Ingat, sebelum membuka recordset dengan menggunakan fungsi membukaRecordset, database harus dibuka lebih dahulu dengan menggunakan fungsi membukaDbs seperti contoh di atas.

Comments

Posting Terpopuler

Cara Mengatur dan Menggunakan ODBC untuk Mengakses Data Eksternal

Fungsi Untuk Membuka Database di Access VBA

Format Untuk Field Dengan Tipe Data Number dan Currency di MS Access