Minggu, 15 Maret 2015

Membuat Form Login untuk Membatasi Akses Data di Ms.Excel




Form Login, biasanya digunakan untuk membatasi hak akses bagi user untuk melihat dan berinteraksi dengan data. Hanya user yang sudah terdaftar yang bisa mengakses data-data rahasia.
Berdasarkan pengalaman penulis di sekolah, Form Login ini biasanya digunakan dalam aplikasi Pendataan Penerimaan Siswa Baru, Pembayaran Siswa, dan Aplikasi Pengolah Nilai yang digunakan oleh beberapa orang yang berbeda.


Catatan kali ini membahas cara membuat Form Login sederhana.



Hal-hal yang dibutuhkan antara lain:

Sebuah sheet yang akan diisi form (Sheet LOGIN). Dalam sheet ini kita butuh setidaknya tiga objek: TextBox untuk Username, TextBox untuk Password dan CommandButton untuk meng-eksekusi Login.Satu tabel Username beserta passwordnya. Bisa ditaruh dalam sheet yang sama dengan sheet Login, bisa ditaruh di sheet tersendiri 
Sheet yang berisi data (jumlahnya tergantung kebutuhan)


Skenario:
  1. Kita "memaksa" User untuk mengisi Form Login agar bisa mengakses data. Hal ini bisa dilakukan dengan menyembunyikan semua sheet kecuali sheet LOGIN pada saat file dibuka.
  2. Diasumsikan bahwa kita sudah punya Tabel Username beserta passwordnya. Tabel tersebut kita sembunyikan dengan sangat rahasia (xlVeryHidden)
  3. Kalau user memasukkan Username dan password dengan benar, maka Sheet Login disembunyikan sekaligus kita munculkan sheet-sheet yang berisi data.
  4. Kalau User salah memasukkan password atau username tidak terdaftar, keluar peringatan. Sheet-sheet data tetap tidak bisa dibuka.
  5. Pada saat file ditutup, kita sembunyikan semua sheet kecuali sheet Login. Urusan seperti ini dilakukan dengan memanfaatkan Workbook_events, yakni Private Workbook_BeforeClose(Cancel As Boolean).




Keterangan tentang Objek pada Form Login:
  1. TextBox untuk Username (kita namakan "tUser") sebaiknya menggunakan ActiveX Control, agar tampilannya bisa dimodif
  2. TextBox untuk Password (kita namakan "tPass") dibuat agar tampilan huruf ketika diketik berubah jadi tanda bintang / asterik
  3. CommandButton untuk Login. Kodenya kira-kita begini:




Dim tbl, rTbl As Range                                                            
Private Sub CommandButton1_Click()                                                
Dim nUser As Long                                                                  
Set tbl = Sheets("Password").Cells(1, 1).CurrentRegion                            
Set rTbl = tbl.Offset(1, 1).Resize(tbl.Rows.Count - 1, 1)                        
                                                                                 
' Jika username ada dalam tabel                                                  
If WorksheetFunction.CountIf(rTbl, tUser) = 1 Then                                
     ' mencari nomor Username dalam tabel                                        
     nUser = WorksheetFunction.Match(tUser, rTbl, 0)                              
                                                                                 
     'mengecek apakah password dari username valid                                
     If tPass.Value = Sheets("Password").Range("C1").Offset(nUser, 0).Value Then  
                                                                                  
          'tampilkan sheet-sheet yang dibutuhkan, sembunyikan sheet "Login"      
          Sheets("Data1").Visible = -1                                            
          Sheets("Data2").Visible = -1                                            
          Sheets("Login").Visible = 2                                            
     Else ' Jika password tidak valid                                              
         Tanya = MsgBox("Password salah...!" & vbCrLf & vbCrLf_                  
                & "Mau mencoba LOGIN lagi?", vbQuestion + vbYesNo, "Gagal Login")
         If Tanya = vbYes Then                                                    
               tPass.Text = ""                                                    
               tPass.Activate                                                      
               Exit Sub                                                            
         Else                                                                            
               tUser.Text = ""                                                    
               tPass.Text = ""                                                    
               tUser.Activate                                                    
               Exit Sub                                                          
         End If                                                                  
     End If                                                                      
Else ' Jika username tidak ada dalam daftar                                      
         Ask = MsgBox("Username tidak terdaftar...!" & vbCrLf & vbCrLf _          
               & "Mau mencoba LOGIN lagi?", vbQuestion + vbYesNo, "Gagal Login")                                      
         If Ask = vbYes Then                                                                                                             
                 tUser.Text = ""                                             
                 tPass.Text = ""                                                                 
                 tUser.Activate                                                                                                   
                 Exit Sub                                                                                        
          Else                                                                                           
                 ThisWorkbook.Saved = True                                                                           
                 Application.DisplayAlerts = False        
                 ThisWorkbook.Close        
          End If                                                                                                           
End If
End Sub                                                                                               


Demikianlah secara sederhana langkah-langkah membuat Form Login.

Sumber : http://excelheru.blogspot.com/2012/02/membuat-form-login-untuk-membatasi.html

Tidak ada komentar:

Posting Komentar