Rabu, 04 Juli 2012

Membuat Teks Berjalan

Postingan kali ini penulis ambil dari situs tek-tips, artikelnya bisa anda lihat dihalaman ini
Namun setelah penulis mencobanya, terjadi beberapa error, sehingga penulis mencoba untuk "sedikit" memperbaikinya dalam postingan berikut ini. Error yang terjadi pada komputer penulis adalah error pada baris &quot, dan juga ketika penulis menambahkan Option Explicit, maka akan terjadi error "Variable not defined".
Langsung saja ke pokok permasalahannya, pada postingan kali ini, penulis akan sharing cara membuat Teks Berjalan dalam sebuah Form. Yang penulis maksudkan dengan Teks Berjalan disini adalah sebuah Text yang tulisannya berjalan dari kanan ke kiri (seperti Teks dalam gerbang Tol, yang biasanya tulisan selamat datang atau selamat jalan yang berwarna merah).
untuk membuat tulisan berjalan, disini penulis gunakan sebuah label, caranya adalah sebagai berikut :

1. Buat sebuah label pada Form yang anda inginkan, lalu beri nama label tersebut, misalnya dengan nama lblContoh.
2. Lalu masuk ke jendela visual basic editor dari form tersebut dan masukkan code berikut ini :
Private strText As String

Private Static Function TeksBerjalan() As String
Dim intTeks As Integer
Dim TextLen As Integer
  
    intTeks = intTeks + 1
    TextLen = Len(strText)
    If intTeks >= TextLen Then intTeks = 1
  
    TeksBerjalan = Mid([strText], intTeks, Len([strText])) & Left([strText], intTeks)
 End Function

3. Lalu pada properti dari form tersebut, atur Timer Intervalnya, disini penulis masukkan angka 150
4. Lalu pada event On Timer, pilih [Event Procedure], dan masukkan code berikut ini :
strText = "NUGIE-SUKASUKA.BLOGSPOT.COM - " (masukkan teks sesuai keinginan anda)
Me.lblContoh.Caption = TeksBerjalan

5. Sehingga code anda akan terlihat seperti dibawah ini :
Option Compare Database
Option Explicit

Private strText As String

Private Static Function TeksBerjalan() As String
Dim intTeks As Integer
Dim TextLen As Integer
  
    intTeks = intTeks + 1
    TextLen = Len(strText)
    If intTeks >= TextLen Then intTeks = 1
  
    TeksBerjalan = Mid([strText], intTeks, Len([strText])) & Left([strText], intTeks)
End Function

Private Sub Form_Timer()
strText = "NUGIE-SUKASUKA.BLOGSPOT.COM - "
Me.lblContoh.Caption = TeksBerjalan
End Sub

6. Klik Save, lalu test form tersebut

Untuk file contohnya bisa anda download dari sini.
Semoga Berhasil
Semoga Bermanfaat...

Minggu, 29 April 2012

Kriteria Text, Angka Dan Tanggal

Dikarenakan ada lumayan banyak yang bertanya kepada penulis mengenai perbedaan penulisan dalam kriteria sebuah fungsi, maka sepertinya penulis harus menyampaikan lagi tentang cara penulisan dalam sebuah kriteria dari fungsi atau statemen dalam VBA. Sebenarnya penulis telah memposting hal ini, yaitu pada halaman yang berjudul Penulisan Kriteria Fungsi dalam blog ini. Disini penulis hanya ingin menjelaskan lebih jauh lagi mengenai penulisan kriteria untuk sebuah fungsi atau statemen dalam vba.
Dalam tulisan sebelumnya penulis telah memberikan contoh mengenai cara penulisan kriteria dari sebuah fungsi, dimana pada tulisan tersebut, yang harus anda sesuaikan untuk menulis kriteria dalam sebuah form adalah Type Data dari field dalam tabel yang menjadi kriteria tersebut, bukan format dari Textbox atau Combobox atau ListBox atau yang lainnya dalam form tersebut.
Jika Field dalam table anda adalah bertipe Text (walaupun mungkin data dalam field tersebut berupa angka), maka penulisan kriterianya harus menggunakan tanda penghubung petik tunggal ('), Jika Field dalam table anda (yang menjadi kriteria) bertipe data angka, maka anda tidak boleh menggunakan operator penghubung. Dan jika Field dalam table anda bertipe data tanggal, maka operator yang harus digunakan adalah tanda kres/pagar (#). Contohnya :
  1. DLookUp("nama_karyawan", "tblDetailKaryawan", "[id_karyawan] = '" & Me.idKaryawan & "'")
  2. DLookUp("nama_karyawan", "tblDetailKaryawan", "[nomor_karyawan] =" & Me.NomorKaryawan)
  3. DLookUp("nama_karyawan", "tblDetailKaryawan", "[tanggal_masuk] = #" & Me.TglMasuk & "#")
Perhatikan yang penulis tandai dengan warna Merah.

Contoh nomor 1 adalah contoh penulisan fungsi DLookUp dengan kriteria field id_karyawan dalam tabel tblDetailKaryawan bertipe data Text, sehingga dalam penulisan kriterianya harus menggunakan operator penghubung tanda petik tunggal (')

Contoh nomor 2 adalah contoh penulisan fungsi DLookUp dengan kriteria field nomor_karyawan dalam tabel tblDetailKaryawan bertipe data angka (Number), sehingga dalam penulisan kriterianya tidak boleh menggunakan tanda operator penghubung.

Contoh nomor 3 adalah contoh penulisan fungsi DLookUp dengan kriteria tanggal_masuk dalam tabel tblDetailKaryawan bertipe data tanggal (Date/Time), sehingga dalam penulisan kriterianya harus menggunakan operator penghubung tanda kres/pagar (#).

Jika anda salah dalam menggunakan operator penghubungnya, maka anda akan mendapatkan error Type Missmatch, atau bisa juga (kadang-kadang) tidak menampilkan pesan apa-apa, namun untuk case ini sepertinya tidak akan terjadi, jika anda tidak menggunakan statemen On Error Resume Next, atau error handling yang sejenisnya. Anda jangan melihat pada Form yang anda buat, ataupun data dalam tabel anda, akan tetapi (sekali lagi) yang harus anda perhatikan dan sesuaikan adalah hanya pada tipe data (Data Type) dari Field yang akan anda jadikan kriteria dalam fungsi atau statemen anda.

Semoga Bermanfaat..


Rabu, 25 April 2012

Kontrol Scrollbars Pada Subform

Pada postingan kali ini, penulis akan membahas tentang bagaimana caranya untuk mengontrol tampilnya Scrollbars pada sebuah subform. Kontrol disini maksudnya adalah kita menentukan apakah Scrollbars akan ditampilkan atau tidak berdasarkan batasan dari jumlah data atau record dalam suatu subform yang telah kita tentukan. Trik untuk menampilkan atau menyembunyikan Scrollbars sangat sederhana dan simple, akan tetapi penulis baru tahu trik ini beberapa bulan yang lalu. Scrollbars bisa kita temui pada sebuah form atau textbox. Berikut ini adalah gambar settingan Scrollbars yang bisa kita temukan pada menu Help VBA Access:
Gambar Settingan Property Scrollbars
Penjelasan dalam bahasa Indonesianya :
Neither (untuk Form) dan None (untuk Textbox) -> Code dalam VBA : 0
--> Untuk Textbox, settingan ini adalah defaultnya, dimana dengan settingan ini maka Scrollbars tidak ditampilkan.
Horizontal Only (hanya untuk Form) -> Code dalam VBA : 1
--> Scrollbar yang ditampilkan hanya scrollbar horizontal, Textbox tidak mendukung settingan ini.
Vertical Only (untuk Form) dan Vertical (untuk Textbox) -> Code dalam VBA : 2
--> Scrollbar yang ditampilkan hanya scrollbar vertical.
Both (hanya untuk Form) -> Code dalam VBA : 3
--> Untuk Form, settingan ini adalah defaultnya, dimana scrollbar vertical dan horizontal ditampilkan, Textbox tidak mendukung settingan ini.

Settingan diatas akan kita gunakan untuk mengontrol tampilnya scrollbars pada sebuah subform. Penulis akan mengambil contoh sebuah case berikut ini :
Misalnya, penulis telah membuat sebuah form yang akan dijadikan sebagai subform untuk form yang lainnya menggunakan Wizard dari access 2003, dan nama dari form tersebut adalah frmDetailData (dengan settingan Scroll Bars = Neither). Dan form tersebut (frmDetailData) lalu dimasukkan kedalam Form yang bernama frmLaporan sebagai subformnya, lalu diatur sedemikian rupa sehingga subform tersebut hanya bisa menampilkan 10 data/record (data ke sebelas dan seterusnya tersembunyi, sehingga untuk melihat data kesebelas dan seterusnya maka user harus melakukan scrolling kebawah pada subform tersebut). Dalam case ini berarti Scrollbars Vertical harus ditampilkan jika data/record dari frmDetailData adalah lebih dari 10 (sepuluh), jika data/recordnya hanya berjumlah 10 (sepuluh) atau kurang, maka scrollbar tidak ada yang ditampilkan. Sebelum penulis mengetahui trik yang simplenya, penulis menggunakan fungsi DCount dan code berikut ini kedalam Event On Current dari Form frmDetailData :
Private Sub Form_Current()
If DCount("id_number", "tblDetailTransaction", "[Transaction_Date]=#" & txtReportDate & "#") > 10 Then
Me.ScrollBars = 2
Else
Me.ScrollBars = 0
End If 
End Sub

Penjelasan dari code diatas :
If DCount("id_number", "tblDetailTransaction", "[Transaction_Date]=#" & txtReportDate & "#") > 10 Then
--> Untuk mengetahui jumlah data dari field id_number dengan kriteria Transaction_Date adalah tanggal yang ditentukan pada textbox yang bernama txtReportDate dalam Form frmLaporan.
Me.ScrollBars = 2
--> Jika jumlah datanya adalah lebih dari 10, maka scrollbar vertical akan ditampilkan.
Me.ScrollBars = 0
--> Jika jumlah datanya adalah 10 atau kurang, maka tidak ada scrollbar yang ditampilkan.

Ternyata setelah penulis berburu atau mencari-cari di internet ada cara yang lebih mudah dan lebih simple (penulis temukan di databasedev) yang jika diterapkan untuk aplikasi penulis akan seperti ini :
Private Sub Form_Current()
If Me.RecordsetClone.RecordCount > 10 Then
Me.ScrollBars = 2
Else
Me.ScrollBars = 0
End If
End Sub

Penjelasan untuk code ini sama dengan penjelasan code sebelumnya.

Namun untuk aplikasi yang telah penulis buat sebelumnya, penulis tidak mengganti code yang telah penulis buat dengan code baru yang penulis dapatkan diatas. Salah satu alasan mengapa penulis tetap mempertahankan code yang lama, adalah karena code tersebut murni berasal dari ide penulis untuk diri penulis sendiri (walaupun mungkin banyak juga orang yang menggunakan code seperti code pertama penulis), yang dalam hal ini semakin menguatkan diri penulis untuk meyakini jika untuk menyelesaikan suatu case/masalah dalam pembuatan aplikasi, tidak melulu harus menggunakan code-code yang belum kita pahami, akan tetapi (mungkin) bisa juga dengan mengeksplorasi code-code atau fungsi-fungsi atau statemen-statemen yang telah kita ketahui.

Semoga Bermanfaat..

Jumat, 20 April 2012

Membuat Form Tambah User

Membuat Form Untuk Menambah Data User Baru.

Setelah sebelumnya penulis telah membahas tentang cara pembuatan form ganti password, dimana form tersebut ditujukan agar user yang menggunakan aplikasi kita, dapat mengganti password mereka sendiri. Sekarang penulis akan share tentang cara pembuatan form untuk menambah data user baru. Hal ini tentunya agar kita sebagai pembuat aplikasi tidak direpotkan dengan masalah penambahan user baru, karena jika kita tidak membuatkan form untuk menambah data user baru, sudah tentu dan pasti pula jika suatu saat ada penambahan user yang menggunakan aplikasi kita, maka kita harus mengakses ke tabel yang menyimpan data-data user yang menggunakan aplikasi tersebut. Iya kalau cuma sesekali, lha kalau berkali-kali atau frekuensi adanya user baru itu sering kan jadi repot tuh. Nah untuk mengantisipasi hal tersebut, biasanya setiap aplikasi memiliki fitur Manajemen User atau dalam bahasa inggrisnya User Management, dimana dalam fitur tersebut akan ada fitur untuk menambah data user baru, mengedit data user yang telah ada atau yang lainnya yang berhubungan dengan user, yang tentu saja user yang bisa mengakses fitur tersebut haruslah user dengan level administrator (umumnya sih begitu), sehingga anda bisa menyerahkan tugas penambahan user baru kepada orang-orang atau user-user yang telah anda jadikan administrator dalam aplikasi anda, dan anda bisa duduk santai setelah bekerja keras membuat aplikasi tersebut, atau anda bisa tenang untuk membuat aplikasi yang lainnya, dengan tidak direpotkan oleh urusan tambah-menambah data user baru.
Okay, kita langsung ke pokok pembahasan kita sekarang ini yaitu mengenai pembuatan Form untuk Menambah data user baru. Dalam pembahasan kali ini penulis menggunakan file database ms access yang telah penulis buat sebelumnya ketika membuat artikel Pembuatan Form Ganti Password, jika anda belum membacanya, silahkan anda baca sekarang atau nanti juga tidak apa-apa, tetapi yang penting anda harus mempunyai file yang telah penulis buat sebelumnya agar and tidak tersesat dalam mengikuti langkah-langkah yang akan penulis berikan dalam pembuatan form ini. Jika anda belum memilikinya sekarang, anda bisa mendownloadnya terlebih dahulu di 4Shared (terbuka pada tab baru), jika anda sudah memilikinya, silahkan lanjutkan ke langkah-langkahnya berikut ini

Buka file yang telah anda download sebelumnya (tentang Form Ganti Password). dalam membuka file tersebut anda harus pastikan jendela databasenya ikut ditampilkan.

Buat sebuah form baru, form yang berjenis Unbound, dengan cara klik dua kali pada Create form in design view.

Masukkan 2 (dua) buah TextBox kedalam form tersebut dan ganti namanya masing-masing dengan :
txtUserName -> Untuk memasukkan nama user yang baru
txtPassword -> Password untuk user yang baru (tambahan: penulis setting default value untuk txtPassword adalah 1234)

Masukkan 1 (satu) buah Combo Box menggunakan Wizard, pilih RowSourcenya dari table mstLevel (atur yang lainnya sesuai kebutuhan anda) dan beri nama Combo Box tersebut dengan cboLevelUser, Combo Box ini yang akan menjadi source data untuk field UserLevel dalam table tblUser. Langkah opsional untuk cboLevelUser :
Default Value = cboLevelUser.ItemData(0)
Limit To List = Yes

Masukkan 1 (satu) buah Check Box, atur default valuenya menjadi 1, dan ganti namanya menjadi cbxActive, dan ganti caption dari labelnya menjadi Active, Check Box ini yang akan menjadi source data untuk field StatusUser dalam table tblUser.

Masukkan 3 (tiga) buah command button, masing-masing dengan nama :
cmdSave -> Caption = SAVE
cmdAddNew -> Caption = ADD NEW
cmdClose -> Caption = CLOSE

Lalu masukkan code berikut ini kedalam event On Click pada cmdSave :
Dim dbCnn As ADODB.Connection, dbRcr As ADODB.Recordset
Dim strCnn As String, strMsg As String

strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.CurrentProject.Path & "\Nama File Databasenya.mdb"

If IsNull(Me.txtUserName) Or Me.txtUserName.Value = "" Then
MsgBox "Username tidak boleh kosong.", vbExclamation
txtUserName.SetFocus
ElseIf IsNull(Me.txtPassword) Or Me.txtPassword.Value = "" Then
    MsgBox "Password tidak boleh kosong.", vbExclamation
    txtPassword.SetFocus
ElseIf DCount("NamaUser", "tblUser", "[NamaUser]='" & txtUserName & "'") > 0 Then
        MsgBox "Username " & txtUserName & " Sudah ada, silahkan masukkan username yang lain.", vbExclamation
        txtUserName.SetFocus
Else

Set dbCnn = New ADODB.Connection
dbCnn.Open strCnn

Set dbRcr = New ADODB.Recordset
dbRcr.CursorType = adOpenKeyset
dbRcr.LockType = adLockOptimistic
dbRcr.Open "tblUser", dbCnn, , , adCmdTable
   
dbRcr.AddNew
    dbRcr!NamaUser = txtUserName
    dbRcr!Password = txtPassword
    dbRcr!UserLevel = cboLevelUser
    dbRcr!StatusUser = cbxActive
    dbRcr.Update
strMsg = "Berhasil menambahkan user baru, dengan detail :" & vbCr & vbCr
strMsg = strMsg & "Username: '" & txtUserName & "' Password " & txtPassword & "." & vbCr
strMsg = strMsg & "Level User: " & cboLevelUser
MsgBox strMsg, vbInformation
Call cmdAddNew_Click

dbRcr.Close
dbCnn.Close
End If

Silahkan anda rubah "Nama File Databasenya.mdb" sesuai dengan nama file yang sedang anda kerjakan.

Lalu masukkan code berikut ini kedalam event On Click dari cmdAddNew
Me.txtUserName = Null
Me.txtPassword = 1234
Me.txtUserName.SetFocus

Lalu masukkan code berikut ini kedalam event On Click dari cmdClose
DoCmd.Close acForm, "frmTambahUser"

Anda juga boleh tambahkan statement On Error pada awal code diatas (untuk berjaga-jaga jika terjadi error).

Jika anda mengatur properti Limit To List dari cboLevelUser menjadi Yes, maka anda harus masukkan code berikut ini kedalam event On Not In List dari cboLevelUser
MsgBox "Level " & NewData & " tidak ada dalam daftar, silahkan pilih level yang telah ada dalam daftar atau hubungi administrator."
Response = acDataErrContinue

Code Opsional (yang bisa anda tambahkan atau tidak, namun menurut penulis lebih baik anda tambahkan code berikut ini :
Event After Update cboLevelUser
If IsNull(Me.cboLevelUser) Or Me.cboLevelUser.Value = "" Then
cboLevelUser = cboLevelUser.ItemData(0)
End If

Event On KeyPress txtUserName
Select Case KeyAscii
    Case 97 To 122
    KeyAscii = KeyAscii - 32
    Case Else
End Select

Code-code diatas tidak baku, anda bisa dan boleh untuk merubah kata-kata dalam pesan MsgBox menjadi seperti yang anda inginkan.
Setelah semua code telah anda masukkan pada masing-masing event dari masing-masing control, lalu atur properti dari form tersebut sesuai dengan selera dan kebutuhan anda, dan anda simpan form tersebut dengan nama frmTambahUser. Berikut adalah tampilan form versi penulis :

Maka selesailah pembuatan form untuk menambah data user baru.
Tutup jendela VBA editor, lalu test form yang baru saja anda buat.
Semoga Berhasil...

Untuk file contoh form penambahan user baru, bisa anda download dari 4Shared.com.

Semoga Bermanfaat...

Rabu, 18 April 2012

Membuat Form Ganti Password

Cara / Trik membuat form penggantian Password User

Seperti yang selalu penulis katakan pada setiap artikel atau postingan penulis sebelumnya, jika ada banyak cara untuk menghandle apa yang lagi kita inginkan dalam setiap permasalahan/case dalam membuat sebuah aplikasi (khususnya dalam ms access 2003). "Banyak jalan menuju roma", begitu pepatah lama mengatakan, yang tentunya anda sudah mengetahui apa arti dari pribahasa tersebut bukan ?, Yup betul artinya adalah (kurang lebihnya) banyak cara untuk mencapai suatu tujuan, atau bisa juga banyak solusi untuk menyelesaikan sebuah masalah, atau bisa juga yang lainnya (tergantung dari apa yang sedang terjadi). Begitu juga dengan ms access 2003, menurut pengalaman penulis, ternyata ada banyak cara dalam ms access 2003 untuk memenuhi apa yang kita inginkan, disini maksud penulis adalah, anda jangan terlalu fokus pada satu solusi jika anda sedang mengalami kesulitan dalam menentukan metode apa yang harus anda gunakan untuk memenuhi apa yang sedang anda inginkan dalam ms access 2003 atau pada aplikasi yang sedang anda buat. Karena hal itu selain akan "membuang" waktu anda, juga akan menghentikan proses kreatifitas anda dalam mengeksplor fungsi-fungsi yang tersedia dalam ms access 2003. Contohnya adalah seperti pada postingan penulis sebelumnya yang berjudul Form Login Sederhana, sewaktu penulis masih diawal-awal tahap mempelajari ms access 2003, penulis juga sudah menggunakan petunjuk-petunjuk dari para ahli dalam ms access 2003 untuk membuat sebuah form login, dimana petunjuk yang mereka berikan banyak sekali menggunakan metode-metode, fungsi-fungsi, serta statement-statement yang "belum" saatnya untuk penulis pelajari (karena waktu itu kan penulis masih dalam status pemula atau beginner atau newbie dalam ms access), yang hasilnya aplikasi ms access yang penulis buat ukuran filenya "membengkak" menjadi sekitar 75mb (aplikasinya belum ada datanya), padahal aplikasi yang penulis buat adalah aplikasi yang cuma sekedar input data dan cetak data saja, dan penulis juga sudah melakukan Compact and repair databasenya berkali-kali, namun tetap saja ukuran filenya tetap besar. Nah loh kok malahan jadi curhat ya :D
Oke sekarang kita langsung saja pada pokok bahasan, yaitu membuat Form untuk Mengganti Password dari user yang sedang login. Untuk membuat sebuah form agar user bisa mengganti password mereka, penulis gunakan aplikasi ms access 2003 yang telah penulis buat sebelumnya yaitu form login sederhana yang bisa anda download dari 4Shared. Alurnya adalah diasumsikan jika user telah login dan membuka aplikasinya dan telah masuk dalam Form Utama. Dalam aplikasi ms access 2003 (Form Login dengan sensitive case) yang penulis buat sebelumnya, jika anda telah mendownloadnya, maka anda harus tambahkan field-field dibawah ini kedalam tblUser terlebih dahulu.
UserLevel (Text) : Level user, misalnya ADMINISTRATOR, AUDIT, INPUT DATA
LoginTerakhir (General Date) : Tanggal dan waktu user login ke aplikasi
StatusLogin (Text) : Status dari user, apakah sedang login atau tidak

Untuk lebih jelasnya anda bisa lihat pada postingan penulis sebelumnya Form Login Sederhana, Form Login Sederhana 2 dan Form Login Sederhana 3. Silahkan anda ikuti dahulu postingan penulis tersebut. Setelah anda selesai mengikuti apa yang penulis tulis dalam postingan-postingan tersebut, berikut ini adalah langkah-langkah untuk membuat Form Ganti Password :

Buat sebuah form unbound yang bernama frmGantiPassword dengan cara klik Forms pada jendela database, lalu klik dua kali pada Create form in design view lalu atur property form seperti dibawah ini atau sesuai dengan kebutuhan anda :
     Scroll Bars : Neither
     Record Selectors : No
     Navigation Buttons : No
     Dividing Lines : No
     Auto Center : Yes
     Border Style : Thin
     Control Box : Yes
     Min Max Buttons : None
     Close Button : Yes
Masukkan 3 buah textbox dengan nama dibawah ini :
     txtPasswordLama
     txtPasswordBaru
     txtConfirmPasswordBaru
     Dengan Input Mask untuk ketiga Textbox tersebut adalah Password.
Buat 2 buah Label dengan nama seperti dibawah ini :
     lblNamaUser, Caption = "Nama User :"
     lblUserName, Caption = "USERNAME"
Buat 3 Command Button dengan nama seperti dibawah ini :
     cmdSimpan, Caption = SIMPAN
     cmdCancel, Caption =CANCEL
     cmdKeluar, Caption =KELUAR
Opsional :
Masukkan 1 buah Checkbox, misalnya dengan property :
     Nama Checkbox : cbxPassword
     Default Value : 0

Silahkan anda percantik lagi tampilan Formnya menurut selera anda, kalau penulis Form Ganti Password yang telah penulis buat seperti dibawah ini :
Dengan Detail :
Form Ganti Password Dengan Detail
Ketika Dijalankan :
Form Ganti Password Ketik Dijalankan
Jika anda telah membuatnya, maka langkah selanjutnya adalah memasukkan code-codenya. Berikut ini adalah code-code yang dibutuhkan untuk masing-masing control dalam form tersebut.

Untuk Form (Event On Open)
     Private Sub Form_Open(Cancel As Integer)
     On Error Resume Next
     Dim strUser As String
     If DCount("NamaUser", "tblUser", "[StatusLogin]='ACTIVE'") > 0 Then
     strUser = DLookup("NamaUser", "tblUser", "[StatusLogin]='ACTIVE'")
     Me.lblUserName.Caption = strUser
     Else
     Me.lblUserName.Caption = "NO USER LOGIN"
     End If
     End Sub
Code ini akan mengecek dan mencari data NamaUser dari tabel tblUser yang data StatusLogin-nya adalah ACTIVE, lalu memasukkannya ke caption dari lblUserName.

Untuk Command Button (Event On Click) :
cmdCancel
     Private Sub cmdCancel_Click()
     Me.txtPasswordLama = ""
     Me.txtPasswordBaru = ""
     Me.txtConfirmPasswordBaru = ""
     Me.txtPasswordLama.SetFocus
     End Sub
Code ini akan mengembalikan nilai/value dari masing-masing textbox yang ada menjadi null (Bahasanya Cancel, padahal hanya membuat null doang :D)

cmdKeluar
     Private Sub cmdKeluar_Click()
     DoCmd.Close acForm, "frmGantiPassword"
     DoCmd.OpenForm "frmUtama"
     End Sub
Code ini akan menutup form ganti password lalu membuka form utama

cmdSimpan
     Private Sub cmdSimpan_Click()
     Dim strPasswordLama As String
     If Me.lblUserName.Caption = "NO USER LOGIN" Then
     MsgBox "Tidak ada user yang sedang login pada aplikasi ini.", vbCritical
     Else
     strPasswordLama = DLookup("Password", "tblUser", "[NamaUser] = '" & lblUserName.Caption & "'")
     If IsNull(Me.txtPasswordLama) Or Me.txtPasswordLama.Value = "" Then
     MsgBox "Silahkan Masukkan Password Lama Anda Terlebih Dahulu", vbCritical
     Me.txtPasswordLama.SetFocus
     ElseIf IsNull(Me.txtPasswordBaru) Or Me.txtPasswordBaru.Value = "" Then
        MsgBox "Silahkan Masukkan Password Baru Anda !", vbCritical
        Me.txtPasswordBaru.SetFocus
     ElseIf IsNull(Me.txtConfirmPasswordBaru) Or Me.txtConfirmPasswordBaru.Value = "" Then
        MsgBox "Anda Harus Mengkonfirmasi Password Baru Anda Terlebih Dahulu !", vbCritical
        Me.txtConfirmPasswordBaru.SetFocus
     ElseIf StrComp(txtPasswordLama, strPasswordLama, vbBinaryCompare) <> 0 Then
        MsgBox "Password Lama Anda Salah ! Perhatikan Huruf Besar Dan Kecil.", vbCritical
        Me.txtPasswordLama.SetFocus
     ElseIf StrComp(txtPasswordBaru, txtConfirmPasswordBaru, vbBinaryCompare) <> 0 Then
        MsgBox "Password Baru Anda Tidak Sama! Perhatikan Huruf Besar Dan Kecil.", vbExclamation
     Else
        CurrentDb.Execute "UPDATE tblUser SET Password='" & txtConfirmPasswordBaru & "' where NamaUser='" & lblUserName.Caption & "';"
        MsgBox "Password Anda Berhasil Dirubah", vbInformation
        Call cmdCancel_Click
     End If
     End If
     End Sub
Code ini akan mengecek nilai dari lblUserName terlebih dahulu, lalu mengecek masing-masing textbox, apakah ada yang null atau tidak, lalu membandingkan Password lama yang dimasukkan user, apakah sama dengan password yang tersimpan dalam tabel, lalu mengecek apakah password baru yang dimasukkan sama dengan konfirmasi password baru, dimana metode yang digunakan sebagai pembanding adalah sensitive case. Jika tidak ada yang salah, maka akan ditampilkan pesan "Password Anda Berhasil Dirubah", lalu mengosongkan nilai/value dari masing-masing textbox.

Jika anda juga membuat Checkbox seperti petunjuk opsional diatas, maka masukkan code berikut ini :
cbxPassword (Event After Update)
     Private Sub cbxPassword_AfterUpdate()
     If cbxPassword = True Then
     Me.txtPasswordLama.InputMask = ""
     Me.txtPasswordBaru.InputMask = ""
     Me.txtConfirmPasswordBaru.InputMask = ""
     Else
     Me.txtPasswordLama.InputMask = "Password"
     Me.txtPasswordBaru.InputMask = "Password"
     Me.txtConfirmPasswordBaru.InputMask = "Password"
     End If
     End Sub

Selesai lalu klik Save pada toolbar, Untuk berjaga-jaga, silahkan test dari awal (minimal dari Form Login-nya terlebih dahulu).
Untuk file contohnya bisa anda download dari 4shared

Semoga Bermanfaat...

Selasa, 17 April 2012

Membuat Digital Certificate Pada Access 2003

Membuat Digital Certificate/Sertifikat Digital Pada Access 2003
Sebelum kita masuk pada membuat Digital Certificate atau Sertifikat Digital, kita harus tahu dahulu mengapa kita harus membuatnya.
Menurut penjelasan dari ms access help, ada istilah Macro Virus, yaitu jenis virus untuk komputer yang tersimpan dalam macro, kode-kode VBA, Form atau Report yang didalamnya terdapat ActiveX Control, dan beberapa jenis query(action-query, data-definition query, pass-through query, atau update query). Hal inilah (tapi tergantung dari settingan ms office anda) yang membuat ketika anda membuka atau menjalankan aplikasi database ms access 2003 yang telah anda buat, akan muncul dialog peringatan Security Warning seperti gambar dibawah ini :
Gambar Jendela Security Warning
Munculnya jendela dialog peringatan Security Warning tersebut dikarenakan settingan atau pengaturan Security Level untuk ms office access anda adalah Medium (anda bisa lihat di menu Tools -> Macro -> Security...) seperti gambar dibawah ini :
Gambar Pengaturan Security Level
Seperti yang anda lihat pada gambar diatas, ada 3 level security, yaitu :
  1. Low -> Semua macro dan atau kode-kode vba, atau yang lainnya akan selalu dijalankan (walaupun mengandung virus). saran dari ms access sih, jika anda mau mengaturnya ke Low, maka anda harus memiliki program antivirus yang mumpuni, atau paling tidak anda sangat yakin jika aplikasi database yang dijalankan berasal dari sumber terpercaya.
  2. Medium -> Anda bisa memutuskan apakah tetap akan menjalankan aplikasi database tersebut atau tidak
  3. High -> Hanya bisa membuka file aplikasi database ms access yang telah memiliki Digital Certificate/ Sertifikat Digital
Penulis sarankan untuk memilih opsi yang Medium, yang tentunya dengan konsekuensi akan menampilkan pesan dialog Security Warning. Nah untuk menghindari tampilnya jendela peringatan Security Warning, maka tentunya kita harus membuat sebuah Digital Certificate/Sertifikat Digital untuk aplikasi kita agar jendela peringatan Security Warning tidak tampil (opsi Medium) atau agar bisa aplikasi kita bisa dijalankan (opsi High). Salah satu cara membuat Digital Certificate/Sertifikat Digital untuk aplikasi ms access milik kita adalah dengan menggunakan sebuah file yang bernama Selfcert.exe, namun file Selfcert.exe ini secara default tidak diikut sertakan pada saat kita menginstal ms office pertama kali. Untuk mendapatkan file Selfcert.exe ini maka kita harus melakukan perubahan pada aplikasi ms office kita yang telah terinstal terlebih dahulu. dan berikut adalah cara untuk mendapatkan file Selfcert.exe tersebut (Penulis menggunakan Microsoft Office Professional Edition 2003, Win Xp Pro SP3)
  • Klik Start -> Control Panel -> Add or Remove Programs
  • Klik Change pada Microsoft Office Professional Edition 2003 (jika diperlukan masukkan CD Installer dari ms Office milik anda) lalu akan tampil jendela maintenance seperti gambar dibawah ini
Gambar Maintenance Mode Office 2003 - 1
  • Pilih Add or Remove Features, lalu klik Next
  • Lalu akan muncul jendela berikutnya seperti gambar dibawah ini
Gambar Maintenance Mode Office 2003 -2
  • Beri tanda centang pada Checkbox Choose advanced customization of applications. Lalu klik next
  • Maka akan muncul jendela berikutnya, dalam jendela yang muncul anda cari pilihan "Digital Certificate for VBA Projects". Kalau dalam komputer penulis ada di "Office Shared Features" seperti dibawah ini
Gambar Maintenance Mode Office 2003 -3
  • Klik tanda panah kebawah (disamping tulisan Digital Certificate for VBA Projects) lalu pilih "Run from My Computer", sehingga gambarnya akan seperti dibawah ini (perhatikan yang penulis lingkari).
Gambar Maintenance Mode Office 2003 -4
  • Klik Update, tunggu sampai selesai dengan tampilnya jendela seperti dibawah ini
Gambar Maintenance Mode Office 2003 - Sukses
Setelah selesai, anda buka Explorer pada komputer anda (bisa dengan Start -> My Computer atau dengan klik kanan Start lalu pilih Explore All Users, atau dengan cara lainnya -bebas-).
Lalu masuk ke direktori file instalan program office anda, kalau dalam komputer penulis berada di "C:\Program Files\Microsoft Office\OFFICE11". Pastikan ada file yang bernama SELFCERT.exe (lihat gambar berikut ini)
Gambar Lokasi File SELFCERT.exe
Untuk membuat Digital Certificate/Sertifikat Digital, maka anda harus menggunakan file SELFCERT.exe tersebut. caranya adalah
  • Klik dua kali pada file SELFCERT.exe, maka akan tampil jendela seperti gambar dibawah ini :
Gambar jendela Pembuatan Digital Certificate/Sertifikat Digital
  • Ketikkan nama anda (atau nama siapa saja juga boleh) pada kotak Your certificate's name, misalnya Nugie Abadi lalu klik OK, maka akan muncul pesan konfirmasi jika telah sukses membuat sertifikat baru seperti gambar dibawah ini 
Gambar Pesan Sukses Membuat Digital Certificate/Sertifikat Digital
  • Klik OK maka jendela pembuatan Digital Certificate/Sertifikat Digital akan menghilang.
Jika anda telah membuat sertifikatnya, maka langkah selanjutnya adalah memasukkan sertifikat tersebut kedalam VBA aplikasi anda. Caranya adalah sebagai berikut :
  • Buka aplikasi database ms access anda, lalu buka jendela VBA Editor. Misalnya dengan cara klik Forms pada jendela object database lalu pilih salah satu form yang telah anda buat, dan pada Menubar klik View -> Code. Atau dengan cara lainnya yang anda ketahui (bebas yang penting jendela VBA editor bisa dibuka).
  • Pada jendela Project Explorer (disebelah kiri) anda pilih project/nama aplikasi anda, misalnya seperti gambar dibawah ini :
Gambar Jendela VBA Editor
  • Setelah memilih nama project atau aplikasi anda, pada Menubar VBA Editor klik Tools -> Digital Signature, maka akan tampil jendela berikut ini
Gambar Pemilihan Digital Certificate/Sertifikat Digital - 1
  • Klik Choose pada jendela yang tampil, maka akan tampil jendela baru yang berisi daftar dari Digital Certificate/Sertifikat Digital yang telah dibuat sebelumnya. Seperti gambar dibawah ini
Gambar Pemilihan Digital Certificate/Sertifikat Digital - 2
  • Pilih nama sertifikat yang telah anda buat sebelumnya, lalu klik OK, dan klik OK sekali lagi. lalu simpan dengan cara klik toolbar Save atau pada menu File -> Save(nama aplikasi anda).
Pada saat akan membuka aplikasi anda pertama kali setelah diberikan digital certificate/sertifikat digital, maka akan muncul jendela peringatan Security Warning seperti gambar dibawah ini :
Gambar Security Warning Digital Certificate/Sertifikat Digital
Agar jendela tersebut tidak tampil lagi pada saat aplikasi anda dibuka lain waktu, maka beri tanda centang pada Checkbox "Always trust files from this publisher and open them automatically." lalu klik Open.

Yang harus anda ingat adalah, Digital Certificate/Sertifikat Digital yang telah anda buat hanya berlaku pada komputer dimana Digital Certificate/Sertifikat Digital tersebut dibuat. Jadi untuk menggunakannya pada komputer lain, maka anda harus membuat Digital Certificate/Sertifikat Digital tersebut menjadi sebuah file dengan cara mengekspornya dari komputer yang membuatnya, lalu mengimpornya pada komputer yang anda inginkan. cara ekspornya adalah sebagai berikut :

  1. Klik Start -> Control Panel, klik dua kali pada Internet Options
  2. Pada jendela Internet Options, pilih tab Content, lalu klik Certificates
  3. Pilih tab Personal pada jendela yang muncul, lalu pilih Digital Certificate/Sertifikat Digital yang telah dibuat sebelumnya.
  4. Klik Export...
  5. Lalu akan muncul Certificate Export Wizard
  6. Klik Next, Next, Next dan tentukan nama file serta tempat penyimpanan filenya (secara default tempat penyimpanannya adalah di My Documents (langkah ini menggunakan nilai default dari Wizard, jika diperlukan maka anda bisa menyesuaikan settingan pada setiap jendela wizard yang tampil)
  7. Lalu klik Next sekali lagi, dan klik Finish. tunggu sampai keluar pesan "The export was successful." lalu klik OK.

Untuk mengimpornya, anda tinggal lakukan seperti langkah diatas, namun dengan memilih Import... dan ikuti instruksi dari Wizard pada komputer yang lain.

Refferences : Signing a VBA Project , OFF2000: Using SelfCert to Create a Digital Certificate for VBA Projects

Semoga Bermanfaat...

Twitter Delicious Facebook Digg Stumbleupon Favorites More

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