Sabtu, 25 Februari 2012

Re: [belajar-access] ngecek anggaran dalam realisasi

berikut alternatif pilihan yang bisa dilakukan.
saya coba normalkan tabel-tabelnya dulu menjadi:




dengan tabel-tabel berikut:

t_anggaran:


t_realisasi:


m_kegiatan:



m_bidang:




Sekarang kita konsentrasi pada pengisian realisasi.
Rancang form berikut:



perhatikan sekarang untuk kegiatan dan bidang di wakili oleh tiga kontrol, combo box kegiatanID, textbox txtBidang dan txtKegiatan.

Kunci pengontrolan besaran realisasi ada pada combo box kegiatanID.
kita inginkan semua anggaran yang masih available masuk dalam combo box tersebut, sehingga pada pengoperasiannya hanya menampilkan sisa anggaran saja.
Perhatikan contoh berikut. Produksi Ikan anggaran 20 juta, tetapi karena sudah terpakai 2 juta, maka di combo tertera sisanya saja: 18 juta.




Nilai ini akan mengisi otomatis kolom realisasi, dan nilai tersebut bisa diubah sesuai kenyataannya. Perhatikan gambar di bawah.
Nilai available sisa anggaran ikut berkurang 4 juta.



Bagaimana melakukannya?
combo box kita atur agar based on pada query berikut:

qs_Realisasi1:



qu_Realisasi0:




Ada empat kolom pada combo box, sehingga property combo box harus diatur seperti:



text box txtBidang dan txtKegiatan pun mengambil nilai dari combo box, maka set control source nya menjadi:
txtBidang : =[kegiatanID].[column](1)
txtKegiatan: =[kegiatanID].[column](2)

lalu di interface form, jangan lupa selalu me-requery combo box setiap kali record di save dengan perintah:




Aksan Kurdin



On 2/22/2012 5:14 AM, Sumiyanto Surabaya wrote:
 
Koreksi mas Hanhan Hudaya, seharusnya event before update pada form realisasi di textbox realisasi spt ini:

Private Sub realisasi_BeforeUpdate(Cancel As Integer)

    'jika bidang, kegiatan, dan anggaran kurang dari limit maka
    If Me.bidang = DLookup("bidang", "anggaran", "bidang='" & Me.bidang & "'") _
        And Me.kegiatan = DLookup("kegiatan", "anggaran", "kegiatan='" & Me.kegiatan & "'") _
        And Me.realisasi <= (DLookup("anggaran", "anggaran", "kegiatan='" & Me.kegiatan & "'") _
        - DLookup("sumofrealisasi", "Query1", "kegiatan='" & Me.kegiatan & "'")) Then

        'pesan berikut ditampilkan
        MsgBox "masih dalam batas limit, sisa anggaran " & Format((DLookup("anggaran", _
        "anggaran", "kegiatan='" & Me.kegiatan & "'") - DLookup("sumofrealisasi", _
        "Query1", "kegiatan='" & Me.kegiatan & "'")), "CURRENCY") _
        & "", vbOKOnly, "Warning"
        Else

        'jika tidak maka pesan lainnya
        MsgBox "AHA... melebihi limit, sisa anggaran " & Format((DLookup("anggaran", _
        "anggaran", "kegiatan='" & Me.kegiatan & "'") - DLookup("sumofrealisasi", _
        "Query1", "kegiatan='" & Me.kegiatan & "'")), "CURRENCY") _
        & "", vbOKCancel, "Warning"
          
        DoCmd.CancelEvent
        Me.realisasi.Undo
      
    End If
End Sub
 
Thank you | Terima Kasih | Matur Suksema

Sumiyanto


From: Hanhan Hudaya <hanhan.hudaya@gmail.com>
To: belajar-access@yahoogroups.com
Sent: Sunday, 19 February 2012 7:06 PM
Subject: Re: [belajar-access] ngecek anggaran dalam realisasi

 
Terima kasih semuanya.
betul, saya sedang berusaha untuk melakukan pengendalian anggaran dengan realisasinya secara program.
Akan saya coba dulu.
Mohon bantuannya kembali apabila saya belum berhasil.
terima kasih

2012/2/17 Sumiyanto Surabaya <sumiyanto@yahoo.com>
 
lagi lagi kita perlu memainkan Dlookup untuk memvalidasi data yang di entry dan membandingkan jumlah (realisasi) dengan table sumber (anggaran)

pertama buat Query1 : (untuk menghitung summary realisasi yang di entry dan kemudian membandingkan dengan jumlah anggaran) 

SELECT realisasi.bidang, realisasi.kegiatan, Sum(realisasi.realisasi) AS SumOfrealisasi, anggaran.anggaran
FROM realisasi LEFT JOIN anggaran ON (realisasi.kegiatan = anggaran.kegiatan) AND (realisasi.bidang = anggaran.bidang)
GROUP BY realisasi.bidang, realisasi.kegiatan, anggaran.anggaran;


kedua buat event before update pada form realisasi di textbox realisasi :

Private Sub realisasi_BeforeUpdate(Cancel As Integer)

    'jika bidang, kegiatan, dan anggaran kurang dari limit maka
    If Me.bidang = DLookup("bidang", "anggaran", "bidang") _
        And Me.kegiatan = DLookup("kegiatan", "anggaran", "kegiatan") _
        And Me.realisasi <= (DLookup("anggaran", "Query1", "anggaran") - DLookup("sumofrealisasi", _
        "Query1", "sumofrealisasi")) Then

        'pesan berikut ditampilkan
        MsgBox "masih dalam batas limit, sisa anggaran " & Format((DLookup("anggaran", _
        "Query1", "anggaran") - DLookup("sumofrealisasi", "Query1", "sumofrealisasi")), "CURRENCY") _
        & "", vbYesNo, "Warning"
        Else
        'jika tidak maka pesan lainnya
        MsgBox "AHA... melebihi limit, sisa anggaran " & Format((DLookup("anggaran", "Query1", "anggaran") _
        - DLookup("sumofrealisasi", "Query1", "sumofrealisasi")), "CURRENCY") & "", vbYesNo, "Warning"
        DoCmd.CancelEvent
        Cancel = 1
    End If
End Sub

Saran saja, sebaiknya pada form realisasi, textbox bidang dan kegiatan di ganti dalam bentuk combo box, dengan data source bidang dan kegiatan dari table anggaran untuk menghindari salah ketik. Keep Spirit.
 
Thank you | Terima Kasih | Matur Suksema

Sumiyanto


From: Hanhan Hudaya <hanhan.hudaya@gmail.com>
To: belajar-access@yahoogroups.com
Sent: Tuesday, 14 February 2012 6:12 PM

Subject: [belajar-access] ngecek anggaran dalam realisasi [1 Attachment]

 
Selamat siang.

Mohon pencerahannya.

Saya sudah buat tabel dan form anggaran, tabel dan form realisasi.
Yang saya inginkan, ketika mengklik save dalam form realisasi, program
tersebut mengecek terlebih dahulu.
Apabila nilai realisasi untuk bidang dan kegiatan yang telah disimpan
dalam tabel realisasi ditambah yang akan diinput dalam form realisasi
masih di bawah anggarannya,
program memunculkan pesan "anggaran masih tersedia", lalu menyimpan.
namun apabila nilai realisasi untuk bidang dan kegiatan yang telah
disimpan dalam tabel realisasi ditambah yangakan diinput dalam form
realisasi telah melebihi anggarannya,
program memunculkan pesan "anggaran tidak mencukupi", lalu membatalkan
penyimpanan.
berikut saya sertakan filenya.
Mohon bantuan scriptnya.
atau kalau nggak, link yang bisa saya browse untuk enyelesaikan masalah ini.
Atas bantuan dan pencerahannya, saya ucapkan terima kasih.
Wassalam.

Hanhan Hudaya






1 komentar:

  1. bisa ngga mas kita minta file na tentang realisasi anggaran ini

    BalasHapus