Jika username dan password sesuai, maka program komputer akan melakukan proses inisialisasi variabel global untuk digunakan selama user mengoperasikan apliaksi komputer ini. Variabel-variabel ini terdiri dari:
- varUser
- varLevel
- varBagian
- varNIK
- varNamaSeksi
- varDepartemen
- varHeadquarter
- varLevelNo
Berikut adalah script program komputer pada even On Click pada tombol OK di form Login User.
Private Sub cmdOK_Click() On Error GoTo Err_cmdOk Dim oCnn As ADODB.Connection Dim oRs As ADODB.Recordset Dim strSql As String Dim Ok As Boolean Dim strHelo As String strMsgLogin = "" Me.txtPesan.Visible = True Ok = False Set oCnn = New ADODB.Connection oCnn.Open strConn strSql = "SELECT * FROM tUser WHERE uName='" & Me.[User Name] & "';" Set oRs = New ADODB.Recordset oRs.Open strSql, oCnn, adOpenKeyset, adLockOptimistic If oRs.EOF = True Then Me.txtPesan.Visible = False MsgBox "Nama User tidak ada !", vbInformation Else If oRs![Status Aktif] = 0 Then Me.txtPesan.Visible = False MsgBox "Status User saat ini tidak aktif, silakan hubungi Administrator !", vbExclamation Else If oRs!uPwd = Me.[User Password] Then varUser = Me.[User Name] varLevel = oRs![Kode Level] varBagian = oRs![Kode Bagian] varNIK = oRs![Nomor Induk] varNamaSeksi = oRs![Nama Seksi] varDepartemen = oRs!Departemen varHeadquarter = oRs!Headquarter varLevelNo = oRs![Level No] Ok = True oRs![Last Login] = Now() oRs.Update Forms!bg!txtUser = varUser Me.txtPesan.Visible = False Else Me.txtPesan.Visible = False MsgBox "Password yang anda isi salah !", vbExclamation Me.User_Password.SetFocus End If End If End If oRs.Close Set oRs = Nothing oCnn.Close Set oCnn = Nothing If Ok = True Then Load_Daftar_Modul varUser CurrentDb.Execute "UPDATE Data SET Nama='" & varUser & "';" DoCmd.Close acForm, "Form Login" End If Exit_cmdOk: Exit Sub Err_cmdOk: MsgBox "Error Number: " & Err.Number & vbCrLf & Err.Description, vbExclamation Resume Exit_cmdOk End Sub
Baris pertama adalah perintah untuk error handling, yaitu jika terjadi error maka program akan langsung menuju ke label Err_cmdOK.
Baris berikutnya adalah deklarasi variabel yang digunakan pada form ini.
User pengguna aplikasi harus terdaftar pada tabel tUser sebelum menggunakan aplikasi ini karena jika belum terdaftar maka pada saat login akan keluar pesan “Nama User tidak ada!”.
Proses autentikasi dilakukan dengan cara mencari user yang diisikan pada form login dengan data pada tabel tUser. Proses mencari data nama user ini memerlukan koneksi ke database kemudian membuka tabel tUser dan membandingkan user name dan password dengan data yang ada pada tabel tUser. Variabel strConn pada modul ini adalah konstanta global atau public yang dideklarasikan di tempat atau module lain.
Deklarasi constanta strConn adalah sebagai berikut:
Public Const strConn = _ "driver={SQL Server};server=serverdb; uid=userdb;pwd=passworddb;database=namadb"
catatan:
serverdb,userdb,passworddb dan namadb dapat berubah disesuaikan dengan kebutuhan.
Mengapa menggunakan variabel atau konstanta yang bersifat global atau public? Konstanta atau variabel public strConn ini digunakan karena nanti pada penggunaannya variabel atau konstanta ini sering digunakan oleh aplikasi pada saat melakukan koneksi ke database sehingga tidak repor-repot lagi menulis ulang isi variablenya.
Berikut adalah script untuk mencari data user di tabel tUser:
strSql="SELECT * FROM tUser WHERE uName='" & Me.[User Name] & "';" Set oRs = New ADODB.Recordset oRs.Open strSql, oCnn, adOpenKeyset, adLockOptimistic
Jika user berhasil, set variable-variabel berikut:
varUser = Me.[User Name] varLevel = oRs![Kode Level] varBagian = oRs![Kode Bagian] varNIK = oRs![Nomor Induk] varNamaSeksi = oRs![Nama Seksi] varDepartemen = oRs!Departemen varHeadquarter = oRs!Headquarter varLevelNo = oRs![Level No] Ok = True
Kemudian catat data waktu login user dengan perintah:
oRs![Last Login] = Now()
oRs.Update
Selanjutnya tampilkan nama user yang login pada form bg:
Forms!bg!txtUser = varUser
Script untuk menyimpan data daftar modul yang boleh diakses oleh user yang login tampak sebagai berikut:
If Ok = True Then Load_Daftar_Modul varUser CurrentDb.Execute "UPDATE Data SET Nama='" & varUser & "';" DoCmd.Close acForm, "Form Login" End If
Proses assign daftar modul ke variabl array aModul dilakukan pada subrutin atau pocedure Load_Daftar_Modul. Procedure Load_Daftar_Modul memerlukan variabel nama user yang datanya akan di simpan pada variable aModul sehingga pada script di atas procedure Load_Daftar_Modul dipanggil diikuti nam user yang sedang login.
Jika user menekan tombol Exit pada form login, aplikasi akan selesai. Berikut script on click pada tombol Exit
Private Sub cmdCancel_Click() On Error Resume Next Call Keluar_Aplikasi End Sub
Procedure Keluar_Aplikasi dipanggil untuk konfirmasi apakah user betul-betul akan keluar atau ridak. Script procedure-nya adalah sbb:
Sub Keluar_Aplikasi() If MsgBox_ ("Apakah anda yakin akan keluar dari aplikasi ini ?", vbQuestion + vbYesNo) = vbYes Then Std_Toolbars DoCmd.Quit End If End Sub
Jika user keluar dari apliaksi maka prosedure Std_Toolbars akan dijalankan untuk mengembalikan standar toolbars pada Microsoft Access.
bersambung...
2 comments:
Mas contoh form ini ada nggak?
Trims
Ada di sini http://www.ziddu.com/download/4221837/login.zip.html
Post a Comment