Access Terapan adalah sebuah blog yang dibuat untuk memberikan pengetahuan, apa itu Microsoft Access dan Visual Basic for Application (VBA) yang ada ada di Access. Blog ini disusun berdasarkan pengalaman pribadi, saat pemilik blog bekerja sebagai staff akuntansi di sebuah perusahaan, di mana pada saat itu, perusahaan belum memiliki software akuntansi yang baku.
Di dalam blog ini, kita banyak menjumpai kode VBA. Tidak seperti Excel atau Word, Access yang merupakan salah satu aplikasi perkantoran yang dibuat oleh Microsoft, bagi kebanyakan orang terlihat rumit. Apalagi orang yang tidak memahami logika pemrograman. Bila di Excel atau Word, pengguna hanya menekan tombol seperlunya, semua bentuk laporan sudah dapat disajikan. Di Access, kita harus membuat semacam perlakuan agar data yang ditampilkan bisa sesuai dengan keinginan. Perlakuan inilah yang banyak melibatkan VBA/Macro, yang bagi kebanyakan orang tampak memusingkan.
Untuk lebih mudah bagi kita dalam memahami apa itu VBA, maka kita dapat mengaplikasikannya langsung dalam pembuatan program akuntansi seperti telah tersedia di Daftar Isi. Bila mengalami kesulitan dalam memperoleh kode VBA, maka pembaca blog Access Terapan dipersilakan untuk memperoleh kode VBA dengan membaca buku Membuat Program Akuntansi dengan MS Access VBA + CD
Di dalam blog ini, kita banyak menjumpai kode VBA. Tidak seperti Excel atau Word, Access yang merupakan salah satu aplikasi perkantoran yang dibuat oleh Microsoft, bagi kebanyakan orang terlihat rumit. Apalagi orang yang tidak memahami logika pemrograman. Bila di Excel atau Word, pengguna hanya menekan tombol seperlunya, semua bentuk laporan sudah dapat disajikan. Di Access, kita harus membuat semacam perlakuan agar data yang ditampilkan bisa sesuai dengan keinginan. Perlakuan inilah yang banyak melibatkan VBA/Macro, yang bagi kebanyakan orang tampak memusingkan.
Untuk lebih mudah bagi kita dalam memahami apa itu VBA, maka kita dapat mengaplikasikannya langsung dalam pembuatan program akuntansi seperti telah tersedia di Daftar Isi. Bila mengalami kesulitan dalam memperoleh kode VBA, maka pembaca blog Access Terapan dipersilakan untuk memperoleh kode VBA dengan membaca buku Membuat Program Akuntansi dengan MS Access VBA + CD
halo,
ReplyDeletesaya mau tanya file akuntansi yang final.
apalagi yang harus saya lakukan setelah mengisi administrasi sistem?
saya melihat, pada jurnal sudah ada angka saldo akhir, dimana saya bisa mengubahnya?
terima kasih.
Harlen
Terima kasih sudah membeli buku saya. Software yang ada di Bonus CD itu murni untuk proses belajar. Setelah administrasi sistem, pengisian kode rekening yang dibutuhkan, dan periode akuntansi, kita bisa memasukkan saldo awal untuk setiap rekening yang ada melalui jurnal temporer.
DeleteKalau mau digunakan serius, sebaiknya bagian table dikosongkan lebih dahulu (tanpa data), terus login dengan menggunakan Id Pengguna=admin dan password dikosongkan. Nah, dari sini kita benar2 mulai dari awal,
Bila ada kendala lebih detail, silakan ajukan pertanyaan di sini atau lewat email spt tertulis di buku saya.
Terima kasih.
Slm kenal pak yanto
ReplyDeleteMau izin download filenya
Mohon dibalas emailnya pak
Sudah. Silakan buka Collection-nya. Selamat mencoba
ReplyDeleteYa tar sy coba pelajari...
ReplyDeleteMaaf pak daftar isi blog ini memang sampai bab itu saja ya (tidak sampai artikel yg terakhir)
Daftar isi sementara ini cuma untuk buku saja. Saya memang ada rencana membuat daftar isi yang lain, tetapi karena belum sepenuhnya lengkap, jadi belum dipublish. Masih sedikit isinya.
Deletesekarang saya sudah beli bukunya pak... nanti mohon bimbingannya bila masih bingung.
ReplyDeletesaya compile tidak bisa ya ( error di frmResponBiaya ada combo12 di VBA tapi di form combonya tidak ada) apa namanya diganti/gmn?
Terima kasih sudah membeli buku saya dan terima kasih juga masukannya. Itu "Private Sub Command14_Click" pada frmResponBiaya dihapus saja, tidak ada gunanya. (Saya lupa menghapus)
DeleteSilakan kalau ada yang perlu ditanyakan, bisa nulis komen di post yg relevan atau di page ini bila tidak tahu persis.
Salam kenal,saya lagi cari buku bpk di toko,
ReplyDeletemau nanya lansung saja:
Transaksi Debet. Kredit. Sisa akhir
1.Saldo. 10000. 0. 10000
2.beli. 2000. 9000
3.jual. 500. 0. 9500
Saldo akhir=saldo akhir+(debet-kredit)
Bagaimana cara menuliskan rumus saldo akhir di query
Di excel ini gampang, apa bisa di query,atau form, mohon bantuannya pak, sebelumnya saya ucapkan trimakasih
Perbaikan posting saya:
ReplyDeleteTransaksi........Debet........Kredit.....Saldo akhir
Saldo. ........10000...................10000
Beli1. .........0 ........5000..... ..9500
Jual1. .........2000..........0........11000
Saldo akhir= saldo akhir+(debet-kredit)
Bagaimana pak cara menuliskan rumus saldo akhir di kolom query atau di form pak, terimakasih pak
Perbaikan posting saya:
ReplyDeleteTransaksi........Debet........Kredit.....Saldo akhir
Saldo. ........10000...................10000
Beli1. .........0 ........5000..... ..9500
Jual1. .........2000..........0........11000
Saldo akhir= saldo akhir+(debet-kredit)
Bagaimana pak cara menuliskan rumus saldo akhir di kolom query atau di form pak, terimakasih pak
Bu Amelia,
DeleteAccess beda dengan Excel. Di Access, untuk membuat saldo akhir seperti yang ibu inginkan (seperti di Excel) tidak bisa langsung menggunakan select query, tetapi harus menggunakan Insert Query plus menggunakan kode VBA dalam modul.
Insert query ini juga harus dibuat dengan menggunakan statement loop for ... next. Nah di dalam loop ini, kita membuat insert query.
Di posting yang berjudul http://access-terapan.blogspot.co.id/2015/02/membuat-laporan-buku-besar.html, gambar 1 atau gambar 2, di situ ada text box yang bernama SaldoAkhir. Cara menghitungnya sama dengan seperti yang Ibu Amel tulis di atas. Kode VBA-anya lumayan rumit karena melibatkan parameter kode rekening dan periode dalam rentang waktu tertentu.
Sebelum insert query dilakukan, kita harus membuat semacam tabel temporer yang digunakan untuk menampung data pembuatan laporan seperti yang ibu buat. Contohnya dapa dilihat di posting http://access-terapan.blogspot.co.id/2015/02/membuat-form-buku-besar.html, pada gambar 2. Pada gambar 2 itu, ada tabel temporer yang bernama tblBukuBesar. Di tblBukuBesar itu ada field yang bernama SaldoAkhir yang digunakan untuk mengisi text box SaldoAkhir. Nah, dengan tblBukuBesar itu, kita baru membuat select query yang melibatkan tabel master seperti pada gambar 2 di http://access-terapan.blogspot.co.id/2015/02/membuat-form-buku-besar.html itu.
Contoh query beserta kode vbanya ada di bonus CD. Atau, kalau mau ngambil dari web ini, ya Ibu Amel harus belajar dari daftar isi di http://access-terapan.blogspot.co.id/p/blog-page_14.html, dari awal sampai paling tidak bagian III dari
buku Membuat Program Akuntansi dengan MS Access VBA. Semoga membantu.
Salam
Pak Yanto... selama ini sy menulis kode langsung(tanpa ON ERROR)... tapi disini Tiap menulis fungsi kenapa harus disertai ON ERROR.......? padahal tanpa ditulis pun kalau error ada pesan kesalahan dari ms.acces... Apak ada perbedaannya / fungsinya ketika disertai ON ERROR, mohon pencerahannya
ReplyDeleteKalau fungsi yg dibuat semakin banyak dan kompleks, maka kita perlu menggunakan ON ERROR supaya bisa melacak kesalahan yg terjadi
DeleteSelain itu, kita bisa mengatur pesan kesalahan sesuai dng keinginan kita supaya mudah dipahami oleh programmer.
Dimana kah kita bisa nenemukan tabel kode dan pesan error description ms.access... Sy coba cari tp belum ketemu.... Penginnya sih saya translate ke bhs indonesia untuk dijadikan modul on error biar mudah dipahami... Atau gimana pak caranya?
ReplyDeleteYa... itu salah satu cara. Tujuan utama ON ERROR itu sebenarnya untuk memberitahu programmer, melalui end user, fungsi apa yg bermasalah.
DeleteJadi misalnya, ada kesalahan dalam sebuah fungsi yg disusun oleh programmer. ON ERROR dapat menampilkan fungsi yg salah beserta kode kesalahan itu. Jadi programmer dpt langsung fokus ke fungsi yg salah itu.
Kalau tabel kode dan pesan error description, Access 2010 ke atas mungkin hanya tersedia secara online. Tapi kalau Access 2007 ke bawah daftar tabel kesalahan bisa diproleh dng menggunakan tombol F1 (Help) lalu search error code. Access akan menampilkan hasil pencarian yg betkaitan dng error code dan list-nya.
FYI, untuk proses belajar Access, sebaiknya memang menggunakan versi 2007 karena ada offline help yg sangat membantu kita memahami Access dan VBA. Access 2010 ke atas, semuanya menggunakan online help yv harus connect ke internet.
Ya pak ternyata memang beda kalau dikasih on error...
DeleteIni saya menemukan kode di internet untuk error msg
Tapi gimana menampilkannya ya?
Sub ListErrors()
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim i As Long
Dim strErr As String
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("Error Codes", dbOpenDynaset)
For i = 1 To 65535
strErr = AccessError(i)
If strErr <> "" And strErr <> "Application-defined or object-defined error" Then
rst.AddNew
rst!Err = i
rst!Error = Left(strErr, 255)
rst.Update
End If
Next i
rst.Close
Set rst = Nothing
Set dbs = Nothing
End Sub
Buat tabel dng nama Error Codes yg berisi field Err (integer) dan Error (string/text). Coba SUB diganti FUNCTION. Terus, di bawah Error Codes disisipkan debug.print strErr.
DeleteMaf Pak yanto mau nanya lagi....cara buat barkode dan cara agar bisa input data otomatis ketika memakai scaner barkode gimana yaa?
ReplyDeletePada dasarnya, Access jugs bisa menampung data dng menggunakan barcode.
DeleteUntuk pengaturan lebih detail, coba kamu tanya ke penyedia barcode-nya langsung.
Dear Pak Yanto,
ReplyDeleteuntuk hal mengenai laporan keuangan seperti laporan neraca, perubahaan modal, profit and loss ada tidak ya caranya ?
Thanks
Hendy
Pak Hendy, kita bisa saja membuat laporan perubahan modal, rugi laba, dan neraca di Access. Hanya saja, caranya terlihat rumit karena kita harus membuat tabel yg khusus digunakan untuk mengelompokkan rekening ke setiap laporan tsb di atas.
DeleteDi sisi lain, kita tahu bahwa ada banyak pihak yg berkepentingan dengan laporan keuangan dan bentuknya belum tentu sama. Mereka minta laporan bentuk ini itu yg secara pengelompokkan berbeda, tetapi bottom linenya sama.
Nah, cara paling gampang membuat laporan perubahan modal, rugi laba, dan neraca adalah dengan mengekspor data laporan neraca lajur dari Access ke Excel.
Di Excel, kita bisa mengelompokkan lagi, nana rekening2 yg akan menjadi dasar penyusunan laporan perubahan modal, rugi laba, dan neraca sesuai dengan pihak yg berkepentingan. Caranya seperti yg dipelajari di mata kuliah Akuntansi Dasar.
Function fsBaru()
ReplyDeleteCmdBaru.enabled= false
CmdEdit .enabled= false
CmdSimpan .enabled= true
CmdHapus .enabled= false
CmdBatal .enabled= true
End function
Maf pak... Bagaimana cara agar fungsi diatas menjadi fungsi global ( bisa dipakai di setiap form) cmdbaru,cmdsimpan dll.adalah tombol2 yg kita buat tiap form
Function fsBaru(strFrm as string, strCtl as string)
DeleteForms("strFrm").Controls("strCtl").enabled=false
End function
Fungsi di atas disimpan di sebuah modul standard. Setiap detail Cmd dkibuat sepert di atas.
Buatlah tombol perintan command button di sebuah form.
Pada event On_Click, sisipkan fungsi =fsBaru()
Coba jalankan tombol perintahnya. Bila berhasil, tambahkan tombol lainnya.
Masih belum bisa...gagal faham..
DeleteMaf kalo kasih contoh kongkrit / posting artikel tentang materi ini bisa pak Yanto?
Sorry, ada yang kurang. Penjelasan lebih detail silakan baca di sini: http://access-terapan.blogspot.com/2017/07/membuat-fungsi-global-yang-berkaitan-dengan-objek-form-dan-control.html
DeleteSaya ingin membeli buku Anda, tetapi sudah tidak tersedia lagi di Gramedia Solo dan sekitarnya (stok habis), juga toko2 buku di sekitaran sini. Bisa bantu saya untuk mendapatkannya? Jika tdk ada versi cetak, ebook pun tdk masalah. Terimakasih...
ReplyDeleteMas Kangban, buku saya hanya dicetak 2000 eks. Sampai saat ini, saya belum dapat info dr pihak Gramedia, apakah mau diperbarui atau tidak. Kalau tidak diperbarui, saya memang berencana untuk membuat e-book.
DeleteTapi, saran saya, kalau Mas Kangban, telaten, ikuti saja panduan yang ada di halaman Daftar Isi blog ini. Buku yang saya tulis sama dengan apa yang ada di daftar isi blog, demikian pula dengan koding VBAnya, semuanya sama. Mas Kangban hanya perlu mendownload databasenya, lalu ikuti saja panduan/tutor yang ada di daftar isi itu.
Satu lagi keuntungannya kalau mau belajar Access via blog ini, Mas Kangban banyak sekali menemukan tutor membuat berbagai macam aplikasi, terutama bila database-nya benar2 terpisah dengan aplikasi Access. Sangat banyak.
Sudah banyak pembaca yang memperoleh manfaat dari belajar Access via blog ini. Jadi, silakan saja, nanti kalau ada pertanyaan, ajukan saja di artikel yang relevan dengan pertanyaannnya. Sebisa mungkin, saya akan coba membantu.
Terimakasih atas saran dan bantuannya. Saat ini saya sedang membuat program utk menangani pemesanan-pembelian bahan-stok bahan-pengiriman-penagihan menggunakan Access 2010. Program akan dipakai bersama 5-7 orang melalui jaringan LAN ~tanpa server. Diharapkan program ini dpt mengatasi kekacauan pencatatan yg selama ini terjadi. Alhamdulillah, saat diujicoba bisa berjalan baik... Kendalanya adalah: program kurang responsif, terutama di user yg komputernya jadul. Nah, di blog Anda ini saya menemukan cara pembuatan program yg sepertinya berbeda dng apa yg saya lakukan dan saya tertarik utk mencoba mengikuti alur kerjanya...
DeleteMaaf pak Yanto, Kalo fungsi ms Access untuk upload file ke google drive gimana ya?
ReplyDeleteKalaupun ada, secara teknis sangat rumit, karena melibatkan dua lingkungan yg berbeda sama sekali. Google mungkin menyediakan kode API yg bisa diaplikasikan di PHP, tetapi belum tentu di VB.
DeleteMaaf Pak yanto nanya Lagi.... Cara mengkompres file / folder dengan perintah Ms.acces gimana yaa...Trims
ReplyDeleteSalam kenal Pak, saya ada seorang yang baru belajar MS. Acces yang ingin saya tanyakan bagaimana caranya membuat tombol tambah data yang saya desain sendiri tanpa menggunakan pembuatan tombol yang disediakan, karna ada beberapa hal kontorol yang ingin saya masukan dalam tombol tambah data, seperti jika text1 tidak bernilai "a" dan text2=0 maka akan mumcul pesan " Data 2 tidak boleh kosong" dan kursor otomatis akan kembali ke text1, tujuan kontrol ini agar jika text1 tidak bernilai "a" makan text2 harus diatas nilai 0 untuk menghindari text2 lupa di isi. demikian Pak, mohon solusinya...
ReplyDeleteYang Joles tanyakan itu terkait dengan prosess validasi data. Jadi, pada event on click dari tommbol itu harus dibuat terlebih dulu kode VBA untuk memastikan bahwa record/data yang ada sudah valid (sudah memenuhi persyaratan yang diprogramkan terlebih dulu), seperti jika text1 tidak bernilai "a" dan text2=0 maka akan mumcul pesan " Data 2 tidak boleh kosong" dan kursor otomatis akan kembali ke text1. Jadi saat mau menambah data, user tidak bisa melakukannya.
DeleteValidasi record/data ada bermacam-macam, salah satunya seperti yang Joles inginkan itu. Jadi, Joles bisa membuat function untuk memvalidasi record/data sebanyak mungkin dan menjalankannya saat berada di event on click.
Terima kasih Pak, ia Pak saya sudah masuk ke even on clik di propertis tombol itu, hanya ketika saya mengganti mode event on clik dan memasukan persyaratan yang saya maksudkan tombol tambah datanya tidak bisa menambah data, mungkin karna tombolnya dibuat di mode macro jadi ketika saya ganti ke event prosedure tombolnya tidak berfungsi. mohon bantuanya snytax tombol tambah data pada function di VBA, anggap lah saya menggunakan meenggunakan tabel nama dan nama field panjang. terima kasihh sebelumnya Pak
ReplyDeleteConvert saja [Embedded Macro] ke VBA. Caranya, buka form dengan mode Design View, lalu pada tab Design, pilih Convert Form's Macros to Visual Basic
DeleteTerima kasih Infonya Pak.
ReplyDeleteMaaf Pak Yanto ingin bertanya lagi. saya sudah membuat sebuah form dengan subform di dalamnya, agar lebih memudahkan saya membuat form dengan menu more form yaitu model split form, saya sudah menambahkan tombol yang saya inginkan, hanya ada satu masalah yaitu proses edit, saya ingin membuat data-data yang ditampilkan pada subform (berbentuk data sheet) itu hanya bisa dilihat dan dicopy tanpa bisa diedit, untuk editing datanya saya inginkan di form utamanya, yang jadi masalah ketika propertis textnya bagian lockednya saya jadikan yes maka yg di form utama juga ikut terkunci,sehingga tidak bisa dilakukan edit data, juga saya ingin membuat shortkey pada tombol yang saya desain sendiri sehingga jika dibutuhkan saya cukup menekan kombinasi keyboard sudah bisa menjalankan tombol yang dibuat tanpa harus diklik dahulu, demikian mohon solusinya.. terima kasih sebelumnya
ReplyDeletePada event on open di subform coba isikan:
DeleteForms("NamaSubform").Locked=True
Untuk kombinasi shortkey, silakan pada caption sebuah control, tambahkan karakter "&". Misalnya
Caption &Tambah Data, maka tampilannya akan menjadi huruf "T" dengan garis bawah lalu "ambah Data". Joles hanya perlu menekan Alt+T
Terima kasih atas infonya Pak, namun ketika saya membuat form dengan cara split form pada design viewnya tidak nampak mana yang menjadi sub form dan form utamanya, sehingga saya tidak bisa menuliskan kode diatas, saya mencoba membuat dua form dari satu sumber tabel yang sama, satu form yang utama itu modelnay columnar (menambilkan data per record) dan satu lagi form dgn model data sheet ( tabular) untuk menampilkan semua record data. Lalu form ke dua saya coba coba drag ke form utama sehingga menjadi sub form pada form utama, dsni saya bisa mengatur propertis sub formnya menjadi locked, namun yang kemudian menjadi masalah antara form utama dan sub form seolah2 tidak ada hubungan dan berjalan masing, saya berupaya membuat tombol filter pada form utama yang tujuannya untuk memfilter data yang akan ditampilkan pada sub form anggaplah filter berdasarkan tahun sehingga ketika saya memfilter tahun 2018 maka pada sub form yang tampil cuma semua data yang tahunnya 2018, dari data yg tampil di subform itu, ketika salah satu baris pad tabel saya sorot maka datanya akan muncul di form utama juga ( mirip model pada split form ketika data di sub form di klik maka data pada record tersebut akan ditampilkan pada form utama), terima kasih sebelumnya dan mohon solusinya Pak
ReplyDeletePada dasarnya, secara teknis, yang Joles inginkan bisa dibuat secara interaktif di form utama dan subformnya. Hanya penjelasannya mesti menggunakan semacam contoh yang berisi kode VBA yang lumayan panjang dan tidak bisa dijelaskan di bagian diskusi komentar ini.
DeleteKalau dari penjelasan Joles, saya cenderung untuk mengatur properti Allow Edits dan Allow Additions pada subform diberi nilai False (bukan mengatur properti Locked menjadi True) sehingga keseluruhan subform tidak bisa diedit dan hanya bisa dibaca saja. Setelah itu, saat sebuah record pada subform dalam posisi On Focus, form utama akan membaca primary key yang ada di subform.
Begitu kira-kira yang bisa saya jelaskan di sini. Semoga membantu.
Ia Pak terima kasih atas infonya, akhirnya saya mensiasati dengan memodifikasi tombol filter, dengan mengambil value pada record yang on focus di subform sebagai dasar memfilter data. untuk link antara form dan subform sekrang sudah bisa. dan untuk filter data subform untuk skrng saya masih menggunakan filter data yang ada pada acces (filter data record yang ada pada model data sheet)
ReplyDeletetrims atas infonya
Selamat Siang Pak,
ReplyDeletemaaf kembali menganggu, trima kasih atas bantuan bapak untuk aplikasi yg saya buat kemarin sudah sangat membantu pekerjaan saya,
Skrng saya lagi membuat satu lagi aplikasi Absensi Pak, secara garis besar saya baru membuat 2 tabel, yaitu tabel data_Pegawai dan Tabel Harian.
saya berencana untuk proses inputnya pada data harian pada bagian input tanggal saya letakan bagian head form jadi cukup sekali input tanggal kerja hari itu dan di bagian detail baru saya input data per pegawai untuk input data pegawai saya ambil dari tabel data pegawai, yang ingin saya tanyakan pak kode pada VB agar mengecek tabel harian jika di temukan pada tanggal kerja yang saya input sebelumny sudah pernah dilakukan entry data, akan muncul pesan bahwa" pegawai " A " telah dientry data pada tanggal tersebut. apakah anda tetap ingin mengentry data lain atau ingin keluar "
terima kasih sebelumny Pak
Mohon solusinya.
Bila Tabel Harian terdiri dari satu tabel saja, maka gunakan fungsi DCount untuk mengecek apakah pegawai A sudah tercatat dalam Tabel Harian. Kriteria yang digunakan adalah nomor ID pegawai dan tanggal. Bia hasil fungsi DCount = 1, maka pegawai A sudah ada dalam Tabel Harian di tanggal kerja yang diinput. Bia hasil fungsi DCount = 0, maka pegawai A belum ada dalam Tabel Harian di tanggal kerja yang diinput dan dicatat/disimpan dalam Tabel Harian.
DeleteBila Tabel Harian terdiri dari dua tabel, tabel master dan tabel slave, maka kedua tabel itu harus dijadikan satu tabe menggunakan query Tabel Harian. Setelah itu gunakan fungsi DCount untuk mengecek apakah pegawai A sudah tercatat dalam query Tabel Harian. Kriteria yang digunakan adalah nomor ID pegawai dan tanggal. Bia hasil fungsi DCount = 1, maka pegawai A sudah ada dalam query Tabel Harian di tanggal kerja yang diinput. Bia hasil fungsi DCount = 0, maka pegawai A belum ada dalam Tabel Harian di tanggal kerja yang diinput dan dicatat/disimpan dalam Tabel Harian (bagian slave).
Untuk contoh penggunaan fungsi DCount silakan baca https://access-terapan.blogspot.com/2018/09/fungsi-dcount-di-ms-access.html
Terima kasih banyak atas solusinya Pak.
ReplyDeleteSelamat malam Pak Yanto, terima kasih atas solusi tentang penggunaan Rumus Dcount,
ReplyDeleteTerkait penggunaan Dcount saya coba mengembangkan keadaanya pada kasus Data Penyedia Barang sebagai rekanan seumpama saya mempunyai 3 tabel, yaitu : tabel Pelanggan yang berisi ID_Pelanggan(Primary Key), Nama_Pelanggan, Alamat dan No_Hp, table Barang berisi Kode_Barang (Primary Key), Nama dan Harga serta tabel detail yang merupakan kombinasi dua table tadi yang berisi ID_Pelanggan (diambil dari data pelanggan), Kode_Barang (diambil dari table barang), Nama(otomatis berdasarkan kode barang), Harga (otomatisberdasarkan kode barang), jumlah (diinput terakhir)
Pada proses pembuatan formnya untuk data ID_Pelanggan, Nama_Pelanggan, Alamat dan No_Hp saya ambil dari table pelanggan (agar tidak terjadi double entry data pelanggan) sedangkan untuk data kode_Barang, Nama, Harga dan Jumlah dari table detail, sehingga formnya menjadi form utama (pelanggan) dan sub form (detail ).
Untuk otomatisasi nama barang dan harga berdasarkan kode barang mengacu pada table barang semua sudah berjalan namun yang menjadi masalah adalah ketika saya mengisi data detailnya, masih ada kemungkinan untuk penyedia barang yg sama bisa mengisi kode barang yg sama berulang kali, saya coba membuat rumus dcount pada tombol tambah untuk mencegah input kode barang yg sama pada penyedia barang yg sama namun tidak bisa berjalan sesuai yang sya inginkan pesan yang selalu muncul ketika saya klik tombol tambah adalah " Barang sudah masuk dalam Daftar, silakan edit jumlah barang" dengan menggunakan kode
Private Sub Tambah_Click()
If (DCount("ID_Pelanggan", "Detail", "ID_Pelanggan=ID_Pelanggan") > 0 And (DCount("Kode_Barang", "Detail", "Kode_Barang=Kode_Barang") > 0)) Then
MsgBox " Barang sudah masuk dalam Daftar, silakan edit jumlah barang"
Nama_Pelanggan.Setfocus
Else
On Error GoTo Tambah_Click_Err
On Error Resume Next
DoCmd.GoToRecord , "", acNewRec
If (MacroError <> 0) Then
Beep
MsgBox MacroError.Description, vbOKOnly, ""
End If
Tambah_Click_Exit:
Exit Sub
Tambah_Click_Err:
MsgBox Error$
Resume Tambah_Click_Exit
MsgBox " Data Pelanggan telah tersimpan"
End If
End Sub
Mohon solusinya ( untuk kode tambah merupakan hasil conver forms macros to visual basic)
Terima kasih sebelumnya
Coba ganti
DeleteIf (DCount("ID_Pelanggan", "Detail", "ID_Pelanggan=ID_Pelanggan")
Dengan
If (DCount("ID_Pelanggan", "Detail", "ID_Pelanggan=" & NamaControlIDpelangganYgAdaDiForm)
NamaControlIDpelangganYgAdaDiForm adalah nama ID Pelanggan yang ada di form, misalnya Me.ID_Pelanggan.
NamaControlIDpelangganYgAdaDiForm tergantung tipe data, ya... bila tipe data text maka harus ada tanda petik tunggal, bila tipe data numerik, tanpa perlu tanda apa pun.
Lakukan hal yang sama untuk Kode_Barang
Saya sudah mencoba kode dibawah ini karena ID_Pelanggan dan Kode Barang semuanya text
ReplyDeleteIf (DCount("ID_Pelanggan", "Detail", "ID_Pelanggan='& "Me.ID_Pelanggan.Value") > 0 And (DCount("Kode_Barang", "Detail", "Kode_Barang=" & "Me.Kode_Barang.Value") > 0)) Then
MsgBox " Barang sudah masuk dalam Daftar, silakan edit jumlah barang"
Namun kode diatas selalu saja merah ketika saya hendak save kemudian saya mencoba kombinasi dengan kode dlookup yang saya gunakan pada pemberina nama dan harga otomatis menjadi kode dibawah ini
If (DCount("ID_Pelanggan", "Detail", "ID_Pelanggan='" & Me.ID_Pelanggan.Value & "'") > 0 And (DCount("Kode_Barang", "Detail", "Kode_Barang='" & Me.Kode_Barang.Value & "'") > 0)) Then
MsgBox " Barang sudah masuk dalam Daftar, silakan edit jumlah barang"
Yang muncul pesan compile eror method or data not found
Dan pesanya mengarah pada kode “ Me.Kode_Barang.Value”
apakah ini karna kode barang terletak pada sub form yang bisa sya isi lebih dari satu kode barang pada saat input bersamaan dengan id pelanggan yang sama ? karena subformnya berbentk data sheet
Mohon solusinya pak kira2 bagaimana agar sya bisa menginput kode barang yang berbeda pada satu ID pelanggan namun ada fungsi mengecek pada saat menginput apakah kode barang tersebut sudah pernh diinput, sehingga operator cukup megedit jumlah barang yg disediakan pelanggan tersebut tanpa menginput dua kali dan mencegah double kode barang.
Terima kasih pak
Karena ada dua tabel (tabel pelanggan dan detail barang), maka buatlah sebuah query yang merupakan gabungan dari dua tabel di atas. Misalnya, beri nama query itu qryPelangganBarang. Setelah itu, dengan menggunakan qryPelangganBarang, buatlah pengecekan seperti berikut ini:
DeleteIf (DCount("Kode_Barang", "qryPelangganBarang", "ID_Pelanggan='" & Me.ID_Pelanggan.Value & "' AND Kode_Barang='" & Me.Kode_Barang.Value & "'") > 1
Lakukan pengecekan di atas pada event After_Update dari pemasukkan kode barang ya.... paham?
Terima kasih atas solusinya Pak.
ReplyDelete