Access
 sql >> Teknologi Basis Data >  >> RDS >> Access

Kelas Dasar dan Varian Objek Turunan

Pengantar.

Minggu lalu kami telah mencoba contoh untuk melewatkan Objek Kelas Dasar, melalui Set Property Procedure, untuk menjadi bagian dari Object di memori. Obyek yang dilewatkan menjadi perpanjangan atau Obyek anak dari Obyek Utama di memori. Dalam program kami sebelumnya, melewatkan Objek anak ke Objek Target dilakukan pada fase pembuatan contoh program pengujian kami. Kami telah menetapkan nilai ke Properti Objek yang diteruskan di bagian akhir program. Contoh selanjutnya sedikit berbeda.

Bagi mereka yang ingin membaca Artikel sebelumnya tentang Modul Kelas MS-Access, tautannya diberikan di bawah ini:

  • Modul Kelas MS-Access dan VBA
  • Array Objek Kelas VBA MS-Access
  • Kelas Dasar MS-Access dan Objek Turunannya
  • Kelas Dasar VBA dan Objek Turunan-2

Kali ini kita akan membuka kedua Objek (ClsArea – kelas dasar, ClsVolume2 – Kelas target) secara terpisah dalam program pengujian kami. Tetapkan nilai ke dalam Properti ClsArea Kelas Dasar, sebelum meneruskannya ke Objek Kelas ClsVolume2 target. Ingat Kelas Volume2 hanya memiliki satu Properti sendiri, p_Height Properti, dan Metodenya Volume() membutuhkan Panjang dan Lebar Nilai ClsArea Kelas Dasar untuk menghitung Volume.

  1. Copy dan Paste contoh Kode Tes berikut ini ke dalam Modul Standar.

    Prosedur SetNewVol2_2.

    Public Sub SetNewVol2_2()
    'Method 2/2
    Dim CA As ClsArea
    Dim Vol As ClsVolume2
    
    Set CA = New ClsArea
    Set Vol = New ClsVolume2
    
    CA.strDesc = "Bed Room"
    CA.dblLength = 90
    CA.dblWidth = 10
    Stop
    
    
    'Here ClsArea class Object CA is passed to the 
    ‘Property procedure Set CArea of ClsVolume2 object Vol
    Set Vol.CArea = CA 'Pass ClsArea obj to ClsVolume2
    
    Vol.dblHeight = 10 'assign height to ClsVolume2
    
    
    Debug.Print "Description", "Length", "Width", "Area", "Height", "Volume"
    With Vol.CArea
      Debug.Print .strDesc, .dblLength, .dblWidth, .Area(), Vol.dblHeight, Vol.Volume()
    End With
    Stop
    
    Set CA = Nothing
    Set Vol = Nothing
    
    End Sub
    

    Ulasan Kode VBA.

    Dalam Redup pertama pernyataan, CA didefinisikan sebagai Objek ClsArea dan Vol sebagai Objek ClsVolume2. Dua pernyataan berikutnya menginstansiasi kedua objek dalam memori.

    Tiga pernyataan berikutnya memberikan nilai pada properti Objek Kelas ClsArea.

    Berhenti pernyataan memberikan jeda dalam eksekusi Kode sehingga kami dapat memverifikasi nilai Properti Objek di Jendela Lokal.

    Tetapkan Vol.CAArea =CA pernyataan menetapkan ClsArea Class Object CA, sebagai objek anak ke dalam Vol (ClsVolume2) Objek.

    Pada langkah Berikutnya dblHeight Properti Objek Kelas ClsVolume2 ditetapkan dengan nilai 10.

    Pernyataan berikutnya sebelum pernyataan Stop mencetak Nilai dari memori ke Jendela Debug.

    Dua Setel berikutnya Pernyataan menghapus Objek dari memori, sebelum mengakhiri program.

    Menampilkan Jendela Lokal.

  2. Pilih Jendela Lokal Opsi dari Menu Tampilan.
  3. Klik di suatu tempat di tengah Kode dan tekan F5 untuk menjalankan kode hingga program berhenti di Stop penyataan. Atau, Anda dapat menekan F8 untuk menjalankan kode selangkah demi selangkah untuk memeriksa Perubahan di Jendela Lokal, di setiap langkah.
  4. Klik [+] Simbol untuk memperluas dan menampilkan Properti dan nilai Objek.
  5. Periksa Area CA dan p_Area Referensi objek di Nilai kolom Vol Objek. Nilai di sana ditampilkan sebagai Tidak Ada karena kita belum melewati Object CA ke Object Vol.
  6. Jika Anda telah selesai melihat konten Locals Window, jalankan kode tersebut hingga Stop berikutnya penyataan. Sekarang, Area CA Dapatkan Prosedur Properti dan p_Area Objek ditetapkan dengan Objek Kelas ClsArea.

Kami akan mencoba contoh Varian lain dari kedua Kelas ini ClsArea dan ClsVolume2.

Modul Kelas Baru ClsVolume3.

1. Masukkan Modul Kelas baru dan ubah namanya Nilai Properti menjadi ClsVolume3 .

2. Salin dan Tempel Kode VBA berikut ke dalam Modul Kelas ClsVolume3:

Option Compare Database
Option Explicit
'Method three 
Private p_Height As Double
Public p_Area As ClsArea

Public Property Get dblHeight() As Double
    dblHeight = p_Height
End Property

Public Property Let dblHeight(ByVal dblNewValue As Double)
    p_Height = dblNewValue
End Property

Public Function Volume() As Double
    Volume = p_Area.dblLength * p_Area.dblWidth * Me.dblHeight
End Function

Private Sub Class_Initialize()
    Set p_Area = New ClsArea
End Sub

Private Sub Class_Terminate()
    Set p_Area = Nothing
End Sub

Periksa Kode dari awal:p_Height dinyatakan sebagai milik pribadi. Area p_ Properti Kelas ClsVolume3 dinyatakan sebagai Publik Objek ClsArea. Artinya p_Area akan muncul sebagai Properti Kelas ClsVolume3 dengan propertinya sendiri yang dapat ditampilkan untuk Dapatkan/Biarkan langsung operasi di Program Pengguna di Modul Standar. Meskipun Objek Kelas ClsArea telah dinyatakan sebagai Properti Umum Kelas ClsVolume3, Propertinya dienkapsulasi dalam Kelas ClsArea itu sendiri.

Periksa Class_Initialize() dan Kelas_Terminasi() Sub-rutin. Objek ClsArea dibuat dalam Kode Class_Initialize() dan menghapus Objek dari memori dalam Kode Class_Terminate(), ketika program pengguna berakhir.

Program Pengujian.

Contoh Kode VBA Uji diberikan di bawah ini.

Salin dan Tempel kode ke Modul Standar.

Public Sub SNewVol3()
'Here ClsArea class is declared as a Public Property of ClsVolume3
Dim volm As ClsVolume3

Set volm = New ClsVolume3

volm.p_Area.strDesc = "Bed Room"
volm.p_Area.dblLength = 15 'assign length
volm.p_Area.dblWidth = 10 'assign width in clsArea
volm.dblHeight = 10 'assign height to ClsVolume2

Debug.Print "Description", "Length", "Width", "Area", "Height", "Volume"
With volm.p_Area
   Debug.Print .strDesc, .dblLength, .dblWidth, .Area, volm.dblHeight, volm.Volume
End With
Set volm = Nothing

End Sub

Tampilkan Jendela Lokal (Lihat - -> Jendela Lokal), jika belum terbuka.

Klik di suatu tempat di tengah kode dan tekan F8 untuk mengeksekusi Kode VBA satu baris pada satu waktu dan melihat Jendela Lokal untuk melacak apa yang terjadi pada setiap langkah.

Semua varian Kelas ClsVolume di atas telah ditulis dengan Kode yang lebih sedikit, kecuali contoh pertama Kelas ClsVolume.

Bekerja dengan Objek Recordset.

Minggu depan kita akan bekerja dengan Object bawaan DAO.Recordset dan buat Modul Kelas ke:

  1. Menghitung dan memperbarui Bidang,
  2. Urutkan Data,
  3. Cetak data yang diurutkan ke dalam Jendela Debug,
  4. dan Buat Klon Tabel dengan data yang Diurutkan.

Itu banyak aksi minggu depan.

Daftar Semua Tautan pada Topik ini.

  1. Modul Kelas MS-Access dan VBA
  2. Array Objek Kelas VBA MS-Access
  3. Kelas Dasar MS-Access dan Objek Turunannya
  4. Kelas Dasar VBA dan Objek Turunan-2
  5. Varian Kelas Dasar dan Objek Turunan
  6. Set Rekaman Ms-Access dan Modul Kelas
  7. Mengakses Modul Kelas dan Kelas Pembungkus
  8. Transformasi Fungsionalitas Kelas Wrapper
  9. Dasar-dasar Ms-Access dan Objek Koleksi
  10. Modul Kelas Ms-Access dan Objek Koleksi
  11. Rekaman Tabel dalam Objek dan Formulir Koleksi
  12. Dasar-dasar Objek Kamus
  13. Dasar-Dasar Objek Kamus-2
  14. Mengurutkan Kunci Objek dan Item Kamus
  15. Menampilkan Rekaman dari Kamus ke Formulir
  16. Menambahkan Objek Kelas sebagai Item Kamus
  17. Memperbarui Item Kamus Objek Kelas pada Formulir


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Access berbicara dengan sumber data ODBC? Bagian 2

  2. Produk Microsoft Office yang Menolak Mati

  3. 5 Tips dan Trik Microsoft Access

  4. Bagaimana Indeks Mempengaruhi Kinerja Basis Data?

  5. Microsoft Access DevCon di Wina Austria 1 – 2 April 2017