dear satria,
di seminar microsoft sekian tahun lalu saya pernah buatkan sample form search .
nanti di rumah coba saya carikan kalau masih ada ya .. :)
aksan kurdin
On 10/29/2015 11:22 AM, satria kusuma satriauad@yahoo.co.id [belajar-access] wrote:
incredible bang aksansaya masih awam tentang class....., berarti perhitungan di atas bisa dilakukan oleh module function dan class
- Nah,yang lebih efektif digunakan yang mana ya?
- Dalam bayangan saya, contoh class yaitu seperti memanggil form pencarian/searching. Dimana didalam form pencarian tersebut ada misalnya :
Private Sub Close()Form_txthasilcari.Nama = Me.NamaEnd Subdimana textbox form induknya memanggil value dari form searching, masalahnya form induknya lebih dari satu form (waaah maaf nih jadi nglantur temanya...hehehe). Bang admin, lebih baik ganti tema atau gimana nih?
Pada Senin, 19 Oktober 2015 9:31, "Aksan Kurdin aksan.kurdin@gmail.com [belajar-access]" <belajar-access@yahoogroups.com> menulis:
Pelajaran singkat mengenai class di access
Access menganut hybrid oop
kita bisa membuat class di access (VBA) tetapi tidak full oop, karena class ini tidak bisa dibuat pewarisan.
class itu adalah 'cetak biru' dari obyek yang akan dibuat.
contoh dalam hal ini adalah notaris.
'obyek'nya adalah notaris
dari penjabaran bang satria, diketahui, notaris punya 'property' pengikatan dan besar plafon.
obyek selain punya properti, juga punya 'metode' (apa yang bisa dikerjakan obyek tersebut).
dalam hal ini, metode yang dibutuhkan baru satu, yaitu menghitung biaya.
kita buat definisi class nya dengan memilih menu new Class Module, dan simpan sebagai nama class nya.
Biasanya sebagai standarisasi, nama class diawali dengan huruf C, dari nama obyeknya.
Contoh: obyek notaris, maka nama classnya kita sebut CNotaris
setelah itu kita berikan dia properti pengikatan dan plafon. kita anggap properti ini bisa di baca dan bisa di tulis.
properti ini akan terkait dengan variable internal class (private yang hanya di kenal dalam class itu saja)
untuk properti pengikatan, sifatnya adalah integer, di class bisa didefinisikan:
Private int_pengikatan As Integer
Property Let Pengikatan(value As Integer)
int_pengikatan = value
End Property
Property Get Pengikatan() As Integer
Pengikatan = int_pengikatan
End Property
untuk properti plafon, sifatnya adalah double, di class di definisikan:
Private dbl_plafon AS Double
Property Let Plafon(value As Double)
dbl_plafon = value
End Property
Property Get Plafon() As Double
Plafon = dbl_plafon
End Property
Setiap class saat di instance kan (definisi dengan dim/private) akan membuat obyek baru dan menjalankan constructor (set nilai awal). di Access fungsi bawaannya adalah nama class _ intialize
Saat tidak dibutuhkan lagi, maka destructor nya pun di panggil untuk melepasnya dari memori, yang dijalankan adalah fungsi bawaan nama class _ terminate.
Definisi di classnya adalah:
Private Sub Class_Initialize()
int_pengikatan = 0
dbl_plafon = 0
End Sub
Private Sub Class_Terminate()
'destroy any defined object
End Sub
dan yang terakhir, class notaris ini membutuhkan satu metode menghitung biaya yang sifatnya public.
kita definisikan sebagai fungsi public:
Public Function Biaya() As Double
Dim dbl_result As Double
If int_pengikatan = 19 Then
Select Case dbl_plafon
Case Is < 10000000: dbl_result = 0
Case Is < 15000000: dbl_result = 7500
Case Is <= 20000000: dbl_result = 10000
Case Is > 20000000: dbl_result = 15000
End Select
Else
dbl_result = 0
End If
Biaya = dbl_result
End Function
Nah, class kita sudah jadi.
Untuk implementasinya bisa di form, bisa di module.
Saya contohkan yang sederhana saja dengan module.
Buat module baru, dan cukup tuliskan barisan instruksi berikut:
Sub testNotaris()
Dim notaris As New CNotaris
notaris.Plafon = 10000000
notaris.Pengikatan = 19
Debug.Print notaris.Biaya
Set notaris = Nothing
End Sub
Sekarang coba jalankan di Immediate Window (tekan Ctrl-G)
lalu ketikkan testNotaris [hit enter]
Silakan dipelajari.
Dalami dengan fungsi debug di VBA editor step into [F8] berkali-kali.
Regards,
Aksan Kurdin
On 10/19/2015 8:56 AM, Aksan Kurdin wrote:
Dear Bang Satria,
Tugasnya bikin class atau bikin module ?
Kalau bikin class, berarti anda bikin 'template' yang berisi properti seperti (pengikatan, plafon) dan metode seperti(Biaya).
jadi di implementasinya bisa berupa:
dim notaris as new CNotaris
notaris.pengikatan = Me.cboPengikatan
notaris.plafon = Me.txtPlafon
Me.txtBiayaNotaris = notaris.Biaya
set notaris = nothing
Regards,
Aksan Kurdin
Kalau yg saya buatin kemarin itu function bukan sub.
Function bisa dipanggil untuk menghasilkan nilai, kalau sub hanya menjalankan perintah.
Kalau memberi nilai kepada sebuah control (combo atau text box) via VBA, anda harus memberi identifier yang jelas.
Misal: me.pengikatan dan me.Plafon dan me.By_Notaris
Saran saya, pelajari identifier, hal ini fundamental.
Lalu pelajari pula expression, juga fundamental dalam programming.
Good luck!
Haer Talib
RumahAccess IndonesiaTempatnya Belajar Microsoft AccessArtikel | Forum | Milis | Download | Training | Links | Blog | Event
2015-10-05 16:13 GMT+07:00 satriauad@yahoo.co.id [belajar-access] <belajar-access@yahoogroups.com>:
Sudah saya coba...tapi masih bingung
Punya saya seperti ini
Modul modHitung
=================
Public Sub Notaris()
Dim Pengikatan As Integer
Dim Plafon As Currency
Dim By_Notaris As Currency
If Pengikatan = 19 And Plafon < 10000000 Then
By_Notaris = 0
ElseIf Pengikatan = 19 And Plafon < 15000000 Then
By_Notaris = 7500
ElseIf Pengikatan = 19 And Plafon < 20000000 Then
By_Notaris = 10000
ElseIf Pengikatan = 19 And Plafon > 20000000 Then
By_Notaris = 15000
ElseIf Pengikatan <> 19 Then
By_Notaris = 0
End If
End Sub
Terus di form saya 'Call Notaris' tetep ga keluar angkanya
Dimana pengikatan di form adalah combobox, Plafon itu textbox, By_notaris juga textbox
Maaf nih, baru belajar
__._,_.___
Posted by: Aksan Kurdin <aksan.kurdin@gmail.com>
Reply via web post | • | Reply to sender | • | Reply to group | • | Start a New Topic | • | Messages in this topic (10) |
SPAM IS PROHIBITED
.
__,_._,___
Tidak ada komentar:
Posting Komentar