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.
Tidak ada komentar:
Posting Komentar