Selasa, 30 Agustus 2011

Form Login Sederhana 3

MEMBUAT FORM LOGIN (Lanjutan - Finish)

Kali ini kita akan sempurnakan form login yang telah dibuat sebelumnya, jika anda belum punya silahkan download dari 4shared, lalu buka artikel membuat form login bag 2 terlebih dahulu.

Karena ini penyempurnaan, maka akan ada tambahan fungsi : update data.
yang sekarang akan kita tambahkan adalah :
  • Field UserLevel -> Sebagai kriteria User yang berhak mengakses menu
  • Field LoginTerakhir -> Untuk melihat waktu login terakhir dari User
  • Field StatusLogin -> Sebagai kriteria untuk menampilkan nama User yang sedang Login dalam Form
  • Tabel mstLevel -> Sebagai RowSource dari Field UserLevel
  • Form Utama -> Form yang akan dibuka setelah User berhasil Login

Langkah-langkahnya :
  • Buka kembali file Simple Form Access.mdb
  • Dalam jendela database pilih Tables lalu klik dua kali pada Create table in Design view
  • Buat Field dengan nama LevelName dengan Data Type=Text dan Field Size=50
  • Lalu jadikan sebagai Primary Key dan simpan dengan nama mstLevel dan tutup jendela Tabel Design View
  • Klik dua kali pada Table mstLevel untuk menginput data User Level lalu masukkan 3 Data berikut ini :
ADMINISTRATOR, AUDIT, DATA ENTRY
(atau sesuai dengan yang anda inginkan)
  • Lalu klik kanan tblUser dan pilih Design View
  • lalu tambahkan Field-field berikut ini:
  • UserLevel (Data Type=Text, Field Size=50), dibagian bawah pilih Tab Lookup, Dibagian Display Control pilih Combo Box dan Row Source mstLevel
  • LoginTerakhir (Data Type=Date/Time, dalam Tab General pilih Format=General Date)
  • StatusLogin (Data Type=Text, Field Size=10)
  • Lalu klik Save dan tutup jendela Table Design View
  • Klik dua kali pada tblUser untuk mengedit data
  • Masukkan data-data User yang masih kosong (terserah anda), untuk field LoginTerakhir isikan saja dengan Tanggal(bebas tanpa perlu mengisi jamnya) dan khusus field StatusLogin isikan dengan ACTIVE atau INACTIVE
  • Setelah selesai masuk ke bagian Forms dan klik dua kali pada Create form in design view, buat beberapa Command Button dan beberapa Label, saya membuat 8 Command Button dan 4 buah Label dengan rincian :
Command Button :
1.cmdInputMaster, 2.cmdEditMaster, 3.cmdEditHarian, 4.cmdLaporan, 5.cmdInputHarian, 6.cmdInputUser, 7.cmdEditUser dan 8.cmdKeluar
  • Untuk Label saya biarkan 3 label dengan nama default dari Access, dan 1 label dengan nama lblUser seperti gambar dibawah ini :

Gambar design frmUtama versi Penulis
  • Setelah selesai simpan dengan nama frmUtama lalu tutup jendela Design Form
  • Klik kanan frmLogin dan pilih Design View untuk mengedit code
  • Klik kanan cmdOK dan pilih properties lalu pada event On Click klik Event Procedure dan klik [...] disebelah kanannya, anda akan dibawa ke Jendela Visual Basic Editor
  • Dibawah baris tulisan MsgBox "Selamat, anda berhasil Login", vbInformation hapus baris DoCmd.Close dan tambahkan code berikut ini :
CurrentDb.Execute "Update tblUser set LoginTerakhir='" & Now() & "' where NamaUser='" & txtUser & "';"
CurrentDb.Execute "Update tblUser SET StatusLogin='ACTIVE' " & "Where NamaUser='" & txtUser & "';"
CurrentDb.Execute "Update tblUser SET StatusLogin='INACTIVE' " & "Where NamaUser<>'" & txtUser & "';"
DoCmd.OpenForm "frmUtama"
DoCmd.Close acForm, "frmLogin"
  • Lalu klik Save dan tutup jendela Visual Basic Editor, tutup Jendela Properties dari cmdOk dan tutup jendela Design frmLogin
  • Klik kanan frmUtama lalu pilih Design View
  • Dipojok Kiri jendela design frmUtama ada kotak hitam kecil, klik kanan dikotak hitam kecil tersebut lalu pilih Properties, pada Tab Event, pilih Event Procedure pada On Open dan klik tombol [...] disamping kanannya, anda akan kembali dibawa ke jendela Visual Basic Editor,
  • Masukkan code berikut :
Dim strUser As String
strUser = DLookup("NamaUser", "tblUser", "[StatusLogin] = 'Active'")
Me.lblUser.Caption = strUser
  • Dibagian paling atas tambahkan Option Explicit dan Public strLevel as String dibawah Option Compare Database
  • lalu klik Save dan tutup jendela visual basic editor
Untuk event On Click pada tiap-tiap Command Button dalam frmUtama, code-codenya tergantung dari hak akses dari UserLevel masing-masing User contohnya :
Untuk level ADMINISTRATOR, maka berhak atas semua akses menu, sedangkan untuk level AUDIT hanya beberapa menu, dan level DATA ENTRY hanya bisa mengakses menu Laporan dan Input Data Harian.
Contoh Codenya:
Untuk menu yang hanya bisa diakses oleh level ADMINISTRATOR :
strLevel = DLookup("UserLevel", "tblUser", "[NamaUser] = '" & Me.lblUser.Caption & "'")
If strLevel <> "ADMINISTRATOR" Then
MsgBox "Anda TIDAK Berhak Mengakses Menu Ini", vbCritical
Else
MsgBox "Anda Berhak Mengakses Menu Ini"
End If
Untuk menu yang hanya bisa diakses oleh level ADMINISTRATOR dan AUDIT :
strLevel = DLookup("UserLevel", "tblUser", "[NamaUser] = '" & Me.lblUser.Caption & "'")
If strLevel = "ADMINISTRATOR" Or strLevel = "AUDIT" Then
MsgBox "Anda Berhak Mengakses Menu Ini"
Else
MsgBox "Anda TIDAK Berhak Mengakses Menu Ini", vbCritical
End If
Untuk menu yang hanya bisa diakses oleh level ADMINISTRATOR dan DATA ENTRY :
strLevel = DLookup("UserLevel", "tblUser", "[NamaUser] = '" & Me.lblUser.Caption & "'")
If strLevel = "ADMINISTRATOR" Or strLevel = "DATA ENTRY" Then
MsgBox "Anda Berhak Mengakses Menu Ini"
Else
MsgBox "Anda TIDAK Berhak Mengakses Menu Ini", vbCritical
End If
Untuk cmdKeluar gunakan code : 
Dim PesanKonfirm As String
PesanKonfirm = "Apakah anda yakin keluar dari aplikasi ini ?"
If MsgBox(PesanKonfirm, vbYesNo, "Konfirmasi") = vbYes Then
DoCmd.Quit
End If
Jika sudah selesai klik save dan tutup jendela design frmUtama

Klik dua kali frmLogin untuk mengetesnya
Form login ini bisa anda kembangkan lagi dengan berbagai trik-trik ataupun anda percantik lagi dengan mengkustomisasinya sedemikian rupa sesuai kebutuhan anda.

Semoga Berhasil...
Semoga bermanfaat...

Senin, 29 Agustus 2011

Form Login Sederhana 2

MEMBUAT FORM LOGIN DENGAN 4 FUNGSI (IF, IsNull, DCount, DLookup)
(Lanjutan)


Dalam postingan sebelumnya, penulis telah sampaikan langkah-langkah awal dalam pembuatan form login sederhana dengan hanya menggunakan 4 buah fungsi, silahkan lihat di artikel membuat form login sederhana.

Kali ini kita akan menambahkan Field StatusUser kedalam Tabel User, field ini nantinya akan menjadi acuan dalam form login untuk memeriksa apakah User yang sudah terdaftar masih aktif atau sudah tidak aktif.
Silahkan anda buka file Access Simple Form Login.mdb yang sudah saya upload sebelumnya, jika anda belum mendownloadnya silahkan download dari 4shared
Langkah langkahnya :
  • Tutup form login jika masih terbuka
  • Dalam jendela database klik Tables, lalu klik kanan tblUser dan pilih Design View
  • Dibawah Field Password, tambahkan Field baru dengan rincian :
Field Name = StatusUser
Data Type = Number
  • Lalu klik Toolbar Save, atau klik File > Save, atau bisa juga Ctrl+S, lalu tutup tblUser
  • Double click tblUser untuk mengedit data StatusUser
  • Lalu isikan di Field StatusUser dari masing-masing User dengan angka
(Angka 0 berarti User sudah tidak aktif, selain angka 0 maka Status User Aktif)
  • Setelah selesai tutup tblUser
  • Dalam jendela database klik Forms, lalu klik kanan frmLogin dan pilih Design View
  • Lalu klik View > Code, atau klik Toolbar Code seperti gambar dibawah ini :
Gambar Letak Toolbar Code
  • Atau bisa juga dengan klik kanan pada cmdOK lalu pilih Properties, dan pada tab Events klik tulisan Event Procedure pada On Click lalu klik [...] disebelah kanan tulisan Event Procedure. Anda akan dibawa kedalam jendela Visual Basic Editor.
  • Tempatkan Kursor anda diakhir variabel :
strPassword = DLookup("Password", "tblUser", "[NamaUser] = '" & txtUser & "'")
(Dalam code If DCount("NamaUser", "tblUser".........) lalu tekan Enter
  • Ketikkan Code berikut ini setelah anda menekan Enter
If DLookup("StatusUser", "tblUser", "[NamaUser] = '" & txtUser & "'") = 0 Then
MsgBox "Status User '" & txtUser & "' sudah tidak aktif, silahkan hubungi administrator.", vbExclamation
Me.txtUser.SetFocus
Else

Code anda akan menjadi seperti ini:
strPassword = DLookup("Password", "tblUser", "[NamaUser] = '" & txtUser & "'")
If DLookup("StatusUser", "tblUser", "[NamaUser] = '" & txtUser & "'") = 0 Then
MsgBox "Status User '" & txtUser & "' sudah tidak aktif, silahkan hubungi administrator.", vbExclamation
Me.txtUser.SetFocus
Else
       If txtPassword = strPassword Then
  • Lalu tempatkan kursor anda disebelah kanan / diakhir  tulisan End If diatas variabel :
Else
    MsgBox "Nama User tidak ada / belum terdaftar", vbInformation
    Me.txtUser.SetFocus
lalu tekan Enter
  • Ketikkan End If setelah anda menekan Enter
Code anda akan menjadi seperti ini :
End If 
End If ---> yang baru anda tambahkan
Else 
MsgBox "Nama User tidak ada / belum terdaftar", vbInformation 
Me.txtUser.SetFocus
  • Lalu klik Save dan tutup jendela Visual Basic Editor.
  • Jika jendela Properties dari cmdOK masih terbuka tutup dahulu, baru tutup frmLogin
sekarang coba jalankan frmLogin dengan klik dua kali pada frmLogin untuk mengetesnya.
NamaUser yang anda masukkan angka 0 kedalam Field StatusUser akan menjadi tidak aktif dan tidak bisa Login, dengan pemberitahuan Status User sudah tidak aktif, silahkan hubungi administrator.

Semoga bermanfaat....

Minggu, 21 Agustus 2011

Form Login Sederhana

MEMBUAT FORM LOGIN ACCESS 2003 DENGAN 4 FUNGSI
(IF, IsNull, DCount, DLookup)
Kali ini kita akan mencoba membuat sebuah form login, seperti dalam program atau aplikasi lainnya, namun kali ini kita akan membuat Form Login hanya dengan 4 buah fungsi, yaitu fungsi IF , DCount , DLookup , dan Fungsi IsNull. Jika anda belum memahami keempat fungsi ini, silahkan lihat di artikel Fungsi yang wajib dipahami Bag 1, Bag 2, Bag 3, Bag 4 dalam blog ini, hal ini untuk lebih memudahkan anda dalam membuat atau mengikuti artikel yang akan penulis sampaikan sekarang ini. Jika anda sudah paham, silahkan lanjutkan pada artikel ini.

Berikut adalah cara kerja atau alurnya :

Pertama :
Access akan mengecek apakah TextBox NamaUser kosong atau tidak, Jika kosong maka Access akan memberitahu user kalau dia belum memasukkan NamaUser dan Access akan mengembalikan kursor ke TextBox NamaUser. (Fungsi IsNull)

Kedua :
Access akan mengecek apakah TextBox Password kosong atau tidak, Jika kosong maka Access akan memberitahu user kalau dia belum memasukkan Password dan Access akan mengembalikan kursor ke TextBox Password. (Fungsi IsNull)

Ketiga :
Access akan mengecek apakah NamaUser yang dimasukkan oleh seorang user itu ada atau tidak didalam Table User, Jika NamaUser tidak ada maka Access akan menampilkan pesan Nama user tidak ada/belum terdaftar lalu mengembalikan kursor ke TextBox NamaUser. (Fungsi DCount)

Keempat :
Access akan mengecek password yang dimasukkan apakah sesuai dengan data yang ada dalam table User atau tidak, jika tidak sesuai maka access akan menampilkan pesan bahwa password yang dimasukkan salah lalu mengembalikan kursor ke TextBox Password. (Fungsi DLookup)

Jika user memasukkan NamaUser dan Password dengan benar maka Access akan menampilkan pesan bahwa user telah berhasil Login lalu access akan menutup Form Login.

Berikut adalah contoh pembuatannya :
1. Buat tabel dengan nama tblUser, field yang dibutuhkan :
 - NamaUser : Text
 - Password : Text
 - StatusUser : Number
Untuk field StatusUser, cara validasinya adalah: 0 untuk status user yang tidak aktif, selain 0 maka status user adalah aktif.
2. Isikan data-data yang diperlukan, dengan mengklik dua kali pada tabel tblUser yang baru saja dibuat.
3. Buat Form dengan nama frmLogin
4. Masukkan 2 buah Textbox dengan nama txtUser dan txtPassword
5. Masukkan juga 2 buah command button dengan nama cmdOK dan cmdCancel
6. Masukkan code berikut ini pada event OnClick cmdOK :
Dim strPassword As String
If IsNull(Me.txtUser) Then
MsgBox "Anda belum memasukkan Nama User anda !", vbExclamation
txtUser.SetFocus
ElseIf IsNull(Me.txtPassword) Then
    MsgBox "Anda belum memasukkan Password anda !", vbExclamation
    txtPassword.SetFocus
Else
    If DCount("NamaUser", "tblUser", "[NamaUser] = '" & txtUser & "'") > 0 Then
    strPassword = DLookup("Password", "tblUser", "[NamaUser] = '" & txtUser & "'")
        If DLookup("StatusUser", "tblUser", "[NamaUser] = '" & txtUser & "'") = 0 Then
        MsgBox "Status User '" & txtUser & "' sudah tidak aktif, silahkan hubungi administrator.", vbExclamation
        Me.txtUser.SetFocus
        Else
            If txtPassword = strPassword Then
            MsgBox "Selamat, anda berhasil Login", vbInformation
            DoCmd.OpenForm "frmUtama"
            DoCmd.Close acForm, "frmLogin"
            Else
            MsgBox "Password yang anda masukkan salah", vbCritical
            Me.txtPassword.SetFocus
            End If
        End If
    Else
    MsgBox "Nama User tidak ada / belum terdaftar", vbInformation
    Me.txtUser.SetFocus
    End If
End If
7. Masukkan code berikut ini pada event OnClick cmdCancel :
Dim PesanKonfirm As String
PesanKonfirm = "Apakah anda yakin tidak akan Login ?"
If MsgBox(PesanKonfirm, vbYesNo, "Konfirmasi") = vbYes Then
DoCmd.Close 'gunakan DoCmd.Quit untuk langsung menutup Microsoft Access
End If
8. Klik save.
9. Buat sebuah Form Utama dengan nama frmUtama.
10. Setelah selesai silahkan ditest form login yang telah dibuat.

Untuk file contoh Form login ini bisa didownload dari 4shared

Semoga bermanfaat….

Selasa, 16 Agustus 2011

Fungsi Yang Wajib Dipahami 4

FUNGSI-FUNGSI YANG WAJIB DIPAHAMI DALAM MS ACCESS

Sekarang kita sudah tiba pada bagian terakhir dari fungsi yang wajib dipahami dalam ms access. Dalam artikel sebelumnya kita sedang membahas tentang fungsi-fungsi yang wajib untuk dipahami dalam ms access 2003, jika anda belum membacanya, ada baiknya anda lihat terlebih dahulu artikel Fungsi Yang Wajib Dipahami bag 3
yang membahas tentang fungsi DCount.

4. Fungsi IsNull
Sebelum mempelajari fungsi IsNull, maka kita harus mengetahui terlebih dahulu apa itu Null ?
Null itu artinya Kosong tetapi bukan Nol (0), karena dalam Ms Access Kosong berbeda dengan Nol (0) Dimana Kosong itu berarti tidak ada data, sedangkan Nol (0) ada datanya yaitu Angka 0. Null (dalam kondisi tertentu) akan berbeda dengan "" (tanpa karakter). atau mungkin penjelasan secara gampangnya adalah Null itu hampa, dan hampa itu berbeda dengan kosong, misalnya :

Me.Textbox1 = Null
Me.Textbox1 = ""
Kedua nilai diatas dalam kondisi tertentu akan berbeda, yang pertama adalah Null, sedangkan yang kedua (kadang-kadang) akan dianggap tidak Null.
Fungsi IsNull adalah fungsi yang akan mengecek suatu control dalam Form itu ada datanya atau tidak, fungsi ini akan menghasilkan nilai True atau False, dimana jika suatu control ada datanya (walaupun hanya satu karakter) maka akan menghasilkan nilai True, dan jika tidak ada datanya maka akan menghasilkan nilai False. Disinilah kita akan mengetahui perbedaan dari Kosong dengan Nol (0), jika suatu Field berisi Angka Nol (0)  atau "" (tanpa karakter) maka fungsi IsNull akan menghasilkan nilai False, karena Field tersebut berisi angka Nol (0) atau "" (tanpa karakter). Fungsi IsNull biasa penulis gunakan untuk mencegah terjadinya error atas Fungsi-fungsi lain yang memerlukan data (untuk kriteria) dan tidak boleh kosong (tentunya dengan bantuan fungsi IF). 

Struktur dari fungsi ini adalah sebagai berikut : 
IsNull(<Field yang akan dicek>) 

Contohnya : 
If IsNull(Me.txtNama) Then 
MsgBox "Anda belum menginput Nama." 
Me.txtNama.SetFocus 
Else 
MsgBox "Nama yang anda input adalah : " & txtNama 
End If 

Penjelasannya :
Dalam fungsi ini kita memerintahkan Access untuk mengecek apakah Field “txtNama” bernilai Null atau tidak, jika bernilai Null maka Kursor akan kembali ke “txtNama” (Me.txtNama.SetFocus). karena "" (tanpa karakter) sewaktu-waktu bisa dianggap bukan null, maka untuk menghindari error, kita harus tambahkan kondisi yang lainnya pada fungsi IsNull, misalnya :
If IsNull(Me.txtNama) Or Me.txtNama.Value = "" Then 
MsgBox "Anda belum menginput Nama." 
Me.txtNama.SetFocus 
Else 
MsgBox "Nama yang anda input adalah : " & txtNama 
End If

Demikianlah penjelasan singkat mengenai Fungsi IsNull, yang sekaligus juga mengakhiri pembahasan dalam Fungsi yang wajib untuk dipahami dalam microsoft access (versi penulis)

Untuk file contoh penggunaan fungsi ini bisa didownload dari 4shared 

Semoga bermanfaat….

Selasa, 09 Agustus 2011

Fungsi Yang Wajib Dipahami 3

FUNGSI - FUNGSI YANG WAJIB DIPAHAMI DALAM MS ACCESS

Sekarang kita telah sampai pada bagian ketiga dari artikel mengenai Fungsi yang wajib dipahami dalam ms access. Dalam artikel sebelumnya kita sedang membahas tentang fungsi-fungsi yang wajib untuk dipahami dalam ms access 2003, jika anda belum membacanya, ada baiknya anda lihat terlebih dahulu artikel Fungsi Yang Wajib Dipahami bag 2 yang membahas tentang fungsi DLookUp. Pada bagian ketiga ini kita akan membahas tentang fungsi DCount.

3. Fungsi DCount

Fungsi Dcount adalah fungsi untuk mengetahui jumlah data yang tersimpan, fungsi ini hanya akan menghasilkan angka/numeric berdasarkan jumlah data yang tersimpan. Selain itu fungsi ini juga biasanya digunakan untuk mengecek apakah data sudah pernah di input atau belum, yang akan menghasilkan 0 (nol) jika data belum ada, dan angka 1,2,3,4,5,6 dan seterusnya sesuai dengan jumlah data yang ada dalam tabel. Menurut penulis fungsi DCount itu berarti Data Count yang dalam bahasa indonesianya bisa diartikan sebagai Jumlah Data.
Fungsi DCount sangat berguna untuk menghindari error-error yang terjadi atas beberapa fungsi-fungsi lain yang membutuhkan minimal ada 1 data yang tersimpan dalam tabel.
Dan bisa dibilang juga jika penulis sangat menganjurkan untuk menggunakan fungsi ini terlebih dahulu sebelum fungsi-fungsi lain yang membutuhkan data dalam tabel, untuk menghindari error "Invalid use of null" (seperti yang penulis sampaikan sebelumnya dalam fungsi DLookUp) karena fungsi ini terlebih dahulu akan mengecek apakah data dengan kriteria yang dimaksud telah ada atau belum dalam tabel, jika sudah ada maka silahkan lanjutkan kondisi atau fungsi yang berikutnya, namun jika tidak ada maka lakukan kondisi yang lainnya (begitulah kira-kira alur atau teorinya).

Struktur fungsi ini adalah sebagai berikut :
DCount("<Field dari table>, "<Nama Tabel>", "<Kriteria>")
Untuk <Kriteria> bersifat Opsional, bisa disertakan dalam fungsi, bisa juga tidak, jika tidak disertakan maka Access akan menghitung seluruh baris dalam tabel ( 1 Baris = 1 data )

Contohnya :
Untuk mengetahui jumlah data :

txtJumlahNama = DCount("Nama", "tblNama", "[Nama] = '" & txtNama & "'")
Dalam fungsi ini kita memerintahkan Access untuk melihat jumlah data dalam Field "Nama" dari Tabel "tblNama" dengan Kriteria dari "txtNama", lalu memasukkan hasil yang didapat kedalam "txtJumlahNama".
Hasil yang didapat adalah berupa angka ( 0 , 1 , 2 , 3 dst ) tergantung jumlah data yang tersimpan dalam Tabel.

Untuk mengecek apakah data sudah pernah di input atau belum (dengan bantuan fungsi If) :

Dim strDcount As String
strDcount = DCount("Nama", "tblNama", "[Nama] = '" & txtNama & "'")
If strDcount > 0 Then
MsgBox "Ada " & strDcount & " Nama '" & txtNama & "' yang terdaftar dalam tabel."
Else
MsgBox "Tidak ditemukan nama '" & txtNama & "' dalam tabel."
End If

Dalam fungsi ini kita ingin mengetahui apakah data dengan kriteria dari "txtNama" sudah ada atau belum, dan jika sudah ada berapa jumlah datanya dalam tabel tblNama yang ditampilkan melalui sebuah pesan, namun jika belum ada, maka akan ditampilkan pesan jika tidak ditemukan data dengan kriteria dari txtNama.
Dalam prakteknya, sering kali penulis temukan jika fungsi DCount ini tidak hanya digunakan untuk mengetahui jumlah data saja, melainkan juga sebagai kriteria dari suatu trik, misalnya trik untuk mencegah duplikasi data, trik untuk mencegah error, dan trik-trik lainnya.

Demikianlah penjelasan yang sangat singkat lagi mengenai Fungsi DCount versi penulis
Untuk file contoh penggunaan fungsi ini bisa didownload dari 4shared

Semoga bermanfaat...

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Laundry Detergent Coupons