totorial aplikasi penggajian visual basic
TRANSCRIPT
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
1/68
Totorial Aplikasi Penggajian Visual Basic 6.0 INSTALA SI SOFTWARE
1. Klik Setup untuk menginstal aplikasi VB 6.0
2.Setelah run program munculah tampilan seperti ini .kalau mau baca readme-nya,kalau tidak silakan Next
3.Setelah Next ada Licence Agreement. Centang dulu I Accept Licence Agreementlalu Next
4. Masukan CD-key nya ke dalam ID Number seperti gambar dibawah dan isi 2kolom dibawahnya bebas, lalu Next lagi
http://setyawanmartha.files.wordpress.com/2012/12/2.jpghttp://setyawanmartha.files.wordpress.com/2012/12/1.jpghttp://setyawanmartha.files.wordpress.com/2012/12/setup.jpghttp://setyawanmartha.files.wordpress.com/2012/12/2.jpghttp://setyawanmartha.files.wordpress.com/2012/12/1.jpghttp://setyawanmartha.files.wordpress.com/2012/12/setup.jpghttp://setyawanmartha.files.wordpress.com/2012/12/2.jpghttp://setyawanmartha.files.wordpress.com/2012/12/1.jpghttp://setyawanmartha.files.wordpress.com/2012/12/setup.jpg -
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
2/68
5. Setelah di klik next akan tampil tampilan seperti gambar seperti ini. Pilih InstallVisual Basic 6.0 .
6. Akan tampil gambar seperti ini. Next lagi
7. Selanjutnya akan muncul gambar dibawah ini. Pilih Continue
http://setyawanmartha.files.wordpress.com/2012/12/5.jpghttp://setyawanmartha.files.wordpress.com/2012/12/4.jpghttp://setyawanmartha.files.wordpress.com/2012/12/3.jpghttp://setyawanmartha.files.wordpress.com/2012/12/5.jpghttp://setyawanmartha.files.wordpress.com/2012/12/4.jpghttp://setyawanmartha.files.wordpress.com/2012/12/3.jpghttp://setyawanmartha.files.wordpress.com/2012/12/5.jpghttp://setyawanmartha.files.wordpress.com/2012/12/4.jpghttp://setyawanmartha.files.wordpress.com/2012/12/3.jpg -
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
3/68
8. Pilih OK
10. Setelah itu akan tampil Gambar 16 dan Pastikan Folder sudah benar lalu Pilihyang Typical ya
11. setelah itu akan muncul kotak dialog seperti dibawah ini lalu pilih Yes
http://setyawanmartha.files.wordpress.com/2012/12/8.jpghttp://setyawanmartha.files.wordpress.com/2012/12/7.jpghttp://setyawanmartha.files.wordpress.com/2012/12/6.jpghttp://setyawanmartha.files.wordpress.com/2012/12/8.jpghttp://setyawanmartha.files.wordpress.com/2012/12/7.jpghttp://setyawanmartha.files.wordpress.com/2012/12/6.jpghttp://setyawanmartha.files.wordpress.com/2012/12/8.jpghttp://setyawanmartha.files.wordpress.com/2012/12/7.jpghttp://setyawanmartha.files.wordpress.com/2012/12/6.jpg -
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
4/68
12. Dan sekarang VB 6 akan melakukan instalasi untuk menyelesaikan semuakomponen.
13. Setelah instalasi selesai semua VB 6 akan meminta untuk Restart Windows.Pilih Restart Windows. Dan ingat Sebelum Restart Pastikan Dokument atauaplikasi semuanya di tutup agar aman.
Database 1. Buka Microsoft Ofice Access. Pilih Blank Database lalu Buatlah nama databaseyg anda inginkan
http://setyawanmartha.files.wordpress.com/2012/12/11.jpghttp://setyawanmartha.files.wordpress.com/2012/12/10.jpghttp://setyawanmartha.files.wordpress.com/2012/12/9.jpghttp://setyawanmartha.files.wordpress.com/2012/12/11.jpghttp://setyawanmartha.files.wordpress.com/2012/12/10.jpghttp://setyawanmartha.files.wordpress.com/2012/12/9.jpghttp://setyawanmartha.files.wordpress.com/2012/12/11.jpghttp://setyawanmartha.files.wordpress.com/2012/12/10.jpghttp://setyawanmartha.files.wordpress.com/2012/12/9.jpg -
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
5/68
2. Buatlah Field Tabel Jabatan Seperti dibawah ini dan beri nama = Jabatan
3. Buatlah Field Tabel Detail Penggajian dengan format seperti dibawah ini danberi nama Tabelnya = Detail_Penggajian
http://setyawanmartha.files.wordpress.com/2012/12/jabatan.jpghttp://setyawanmartha.files.wordpress.com/2012/12/nama-db.jpghttp://setyawanmartha.files.wordpress.com/2012/12/jabatan.jpghttp://setyawanmartha.files.wordpress.com/2012/12/nama-db.jpg -
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
6/68
4. Buatlah Tabel Pengguna dengan format seperti dibawah ini dan beri nama= Pengguna
http://setyawanmartha.files.wordpress.com/2012/12/pengguna.jpghttp://setyawanmartha.files.wordpress.com/2012/12/detail.jpghttp://setyawanmartha.files.wordpress.com/2012/12/pengguna.jpghttp://setyawanmartha.files.wordpress.com/2012/12/detail.jpg -
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
7/68
6. Buatlah Tabel Pegawai dengan format seperti dibawah ini dan beri nama =Pegawai
Project Pengg ajian 1. Buka aplikasi Microsoft Visul Basic 6.0 yang tadi telah di instal
2. Pilih VB Enterprise Edition Controls Lalu Next
http://setyawanmartha.files.wordpress.com/2012/12/pegawai.jpg -
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
8/68
lalu akn muncul Form kosong seperti dibawah ini
3. Ubah nama form pada properties (sebelah kanan) di kolom (name)
http://setyawanmartha.files.wordpress.com/2012/12/form-kosong.jpghttp://setyawanmartha.files.wordpress.com/2012/12/baru.jpghttp://setyawanmartha.files.wordpress.com/2012/12/form-kosong.jpghttp://setyawanmartha.files.wordpress.com/2012/12/baru.jpg -
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
9/68
4. Buat form tersebut dengan tampilan seperti ini (gambar bebas)
lalu masukkan coding untuk form ini (ikuti lingkaran) klik 2 kali icon Code lalu ketik coding seperti
disamping
5. Buat form baru untuk form jabatan dengan cara seperti gambar di bawah ini(Project > add form > open)
http://setyawanmartha.files.wordpress.com/2012/12/spalsh-code.jpghttp://setyawanmartha.files.wordpress.com/2012/12/spalsh.jpghttp://setyawanmartha.files.wordpress.com/2012/12/buatnama.jpghttp://setyawanmartha.files.wordpress.com/2012/12/spalsh-code.jpghttp://setyawanmartha.files.wordpress.com/2012/12/spalsh.jpghttp://setyawanmartha.files.wordpress.com/2012/12/buatnama.jpghttp://setyawanmartha.files.wordpress.com/2012/12/spalsh-code.jpghttp://setyawanmartha.files.wordpress.com/2012/12/spalsh.jpghttp://setyawanmartha.files.wordpress.com/2012/12/buatnama.jpg -
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
10/68
Setelah muncul form kosong seperti form sebelumnya, atur sedemikian rupa sehingga menjadi
seperti dibawah ini
(Nama Form diubah menjadi frmJabatan)
keterangan komponen :
Biru = Command Button(sebagai tombol navigasi aplikasi), untuk merubah nama dapat dijumpai
di Properties kolom Caption dan untuk variabelnya diberi nama cmdTambah (misal) pada
kolom (name)
Merah = MsFlexiGrid (sebagai tabel yang akan menampilkan data), variabelnya diberi nama Grid
Jabatan
Putih = TextBox (sebagai tempat input data) pada properties kolom text dikosongkan dan pada
variabelnya diganti dengan txtJabatan (misal)
http://setyawanmartha.files.wordpress.com/2012/12/form-jabatan.jpghttp://setyawanmartha.files.wordpress.com/2012/12/form-baru.jpghttp://setyawanmartha.files.wordpress.com/2012/12/form-jabatan.jpghttp://setyawanmartha.files.wordpress.com/2012/12/form-baru.jpg -
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
11/68
Kuning = Label (sebagai pemberi keterangan atau penanda) untuk merubah namanya ada di
kolom Caption
Setelah selesai dengan desain maka masukkan Coding seperti dibawah ini
Option Explicit
Dim GridObjIndex As Byte
Dim KodeJabatan As String
Private Sub Form_Load()
Move (Screen.Width Width) / 2, _
(Screen.Height Height) / 3
Call BukaDatabase
Call TampilGridData
Call FormMati
TbHapus.Enabled = False
TbSimpan.Enabled = False
TbUbah.Enabled = False End Sub
Sub FormKosong()
txtKode.Text =
txtNama.Text =
End Sub
Sub FormHidup()
txtKode.Enabled = True
txtNama.Enabled = True
End Sub
Sub FormMati() txtKode.Enabled = False
txtNama.Enabled = False
End Sub
Sub FormNormal()
FormKosong
FormMati
TbTambah.Enabled = True
TbHapus.Enabled = False
TbSimpan.Enabled = False
TbUbah.Enabled = False
TbKeluar.Caption = &Keluar
End Sub
Sub BuatKodeJabatan()
Rs_Jabatan.Requery
Set Rs_Jabatan = New ADODB.Recordset
Set Rs_Jabatan = New ADODB.Recordset
Rs_Jabatan.Open SELECT * FROM J abatan , _
KoneksiDB, adOpenDynamic, _
adLockBatchOptimistic
If Rs_Jabatan.BOF Then
KodeJabatan = J0001 Exit Sub
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
12/68
Else
Rs_Jabatan.MoveLast
KodeJabatan = Rs_Jabatan!Kode_Jabatan
KodeJabatan = Right(KodeJabatan, 4)
KodeJabatan = Val(KodeJabatan) + 1
If Len(KodeJabatan) > 4 Then
MsgBox Kode jabatan baru melewati batas , _
vbCritical, Error
Exit Sub
End If
End If
KodeJabatan = J & Format(KodeJabatan, 0000)
End Sub
Sub AktifGridJabatan()
With GridJabatan .RowHeightMin = 300
.Col = 0
.Row = 0
.Text = NO
.CellFontBold = True
.ColWidth(0) = 400
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.RowHeightMin = 300
.Col = 1
.Row = 0
.Text = KODE
.CellFontBold = True
.ColWidth(1) = 800
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 2
.Row = 0
.Text = NAMA JABATAN
.CellFontBold = True
.ColWidth(2) = 6000
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
End With
End Sub
Sub TampilGridData()
Dim Baris As Integer
GridJabatan.Clear
AktifGridJabatan
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
13/68
GridJabatan.Rows = 2
Baris = 0
Call BukaDatabase
If Rs_Jabatan.BOF Then
MsgBox Tabel Jabatan masih kosong! , _
vbOKOnly + vbInformation, Perhatian
Exit Sub
Else
With Rs_Jabatan
.MoveFirst
Do While Not .EOF
On Error Resume Next
Baris = Baris + 1
GridJabatan.Rows = Baris + 1
GridJabatan.TextMatrix(Baris, 0) = Baris GridJabatan.TextMatrix(Baris, 1) = !Kode_Jabatan
GridJabatan.TextMatrix(Baris, 2) = !Nama_Jabatan
.MoveNext
Loop
End With
End If
End Sub
Private Sub GridJabatan_DblClick()
TbHapus.Enabled = True
TbSimpan.Enabled = False TbUbah.Enabled = True
TbKeluar.Caption = &Batal
TbTambah.Enabled = False
Call FormHidup
txtNama.SetFocus
GridObjIndex = GridJabatan.Row
Set Rs_Jabatan = New ADODB.Recordset
Rs_Jabatan.Open SELECT * FROM Jabatan _
& WHERE Kode_Jabatan= _
& GridJabatan.TextMatrix(GridObjIndex, 1) & _
, KoneksiDB, adOpenDynamic, adLockBatchOptimistic
If Rs_Jabatan.BOF Then
MsgBox Tabel Jabatan masih kosong! , _
vbOKOnly + vbInformation, Perhatian
Exit Sub
Call FormNormal
Else Rs_Jabatan.MoveFirst
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
14/68
Do While Not Rs_Jabatan.EOF
On Error Resume Next
txtKode.Text = Rs_Jabatan!Kode_Jabatan
txtNama.Text = Rs_Jabatan!Nama_Jabatan
Rs_Jabatan.MoveNext
Loop
End If
End Sub
# TOMBOL TAMBAH DIKLIK
Private Sub TbTambah_Click()
Call FormHidup
Call BuatKodeJabatan
txtKode.Text = KodeJabatan
TbSimpan.Enabled = True TbTambah.Enabled = False
TbUbah.Enabled = False
TbHapus.Enabled = False
TbKeluar.Caption = &Batal
txtNama.SetFocus
Call TampilGridData
End Sub
Private Sub TbSimpan_Click()
Dim Rs_Jabatan As New ADODB.Recordset Set Rs_Jabatan = KoneksiDB.Execute(SELECT * _
& FROM Jabatan _
& WHERE Nama_Jabatan= & txtNama.Text & )
If txtNama.Text = Then
MsgBox Nama Jabatan tidak boleh kosong! , _
vbInformation + vbOKOnly, Perhatian
txtNama.SetFocus
ElseIf Not Rs_Jabatan.BOF Then
MsgBox Maaf, Nama Jabatan _
& & UCase(txtNama.Text) _
& Sudah Tersedia!! , _
vbInformation + vbOKOnly, Information
txtNama.Text =
txtNama.SetFocus
Exit Sub
Else
SqlInsert = INSERT INTO Jabatan _
& (Kode_Jabatan,Nama_Jabatan) _
& VALUES( & txtKode.Text & , _
& txtNama.Text & )
KoneksiDB.Execute SqlInsert, , adCmdText
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
15/68
Rs_Jabatan.Requery
Call FormNormal
Call Form_Load
MsgBox Data telah tersimpan dalam database ! , _
vbOKOnly + vbInformation, Konfirmasi
End If
End Sub
# TOMBOL UBAH DIKLIK
Private Sub TbUbah_Click()
If txtNama.Text = Then
MsgBox Nama Jabatan tidak boleh kosong! , _
vbInformation + vbOKOnly, Perhatian
txtNama.SetFocus
Else
SqlUpdate = UPDATE Jabatan _ & SET Nama_Jabatan= & txtNama.Text & _
& WHERE Kode_Jabatan= & txtKode.Text &
KoneksiDB.Execute SqlUpdate, , adCmdText
Rs_Jabatan.Requery
Call FormNormal
MsgBox Data telah ter_update dalam database ! , _
vbOKOnly + vbInformation, Konfirmasi
Call Form_Load
End If
End Sub
# TOMBOL HAPUS DIKLIK
Private Sub TbHapus_Click()
Konfirmasi = MsgBox(Anda yakin akan _
& menghapus pesan ini? , _
vbYesNo + vbQuestion, Konfirmasi )
If Konfirmasi = vbYes Then
SqlDelete = DELETE FROM Jabatan WHERE _
& Kode_Jabatan= & txtKode.Text &
KoneksiDB.Execute SqlDelete, , adCmdText
Rs_Jabatan.Requery
Call FormNormal
Call Form_Load
Else
Call FormNormal
End If
End Sub
# TOMBOL KELUAR DIKLIK Private Sub TbKeluar_Click()
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
16/68
If TbKeluar.Caption = &Keluar Then
Unload Me
Else
Call FormNormal
End If
End Sub
Private Sub txtNama_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase((Chr(KeyAscii))))
If KeyAscii = vbKeyReturn Then
TbSimpan.SetFocus
KeyAscii = 0
End If
End Sub 6. Buat Form baru lagi untuk form login (frmLogin)
untuk komponen text box password pada properties Password Char karakternya diubah menjadi *
(boleh bebas)
Source Code Login
Option Explicit
Dim MaxLogin As Integer
Private Sub Form_Load()
Move (Screen.Width Width) / 2, _
(Screen.Height Height) / 3
Call BukaDatabase
cmbStatus.AddItem (ADMIN )
cmbStatus.AddItem (BENDAHARA )
End Sub
Private Sub TbLogin_Click()
If txtUser.Text = Then
MsgBox KOTAK PENGGUNA MASIH KOSONG ! , _
vbCritical + vbOKOnly, Error
txtUser.SetFocus ElseIf txtPwd.Text = Then
http://setyawanmartha.files.wordpress.com/2012/12/login.jpg -
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
17/68
MsgBox PASSWORD MASIH KOSONG ! , _
vbCritical + vbOKOnly, Error
txtPwd.SetFocus
Else
SQL =
SQL = SELECT * FROM Pengguna _
& WHERE UserID= & txtUser.Text & _
& AND PassID= & txtPwd.Text & _
& AND S tatus= & cmbStatus.Text &
Set Rs_Pengguna = KoneksiDB.Execute(SQL)
If Not Rs_Pengguna.BOF Then
If Rs_Pengguna!Status = ADMIN Then
Unload Me
FrmUtama.Enabled = True
FrmUtama.Show FrmUtama.mnuLaporan.Enabled = True
FrmUtama.mnuPegawai.Enabled = True
FrmUtama.mnuJabatan.Enabled = True
FrmUtama.mnuPengguna.Enabled = True
FrmUtama.mnuTransaksi.Enabled = True
FrmUtama.mnuUbahGaji.Enabled = True
FrmUtama.mnuTransGaji.Enabled = True
FrmUtama.mnuLapJual.Enabled = True
FrmUtama.Toolbar1.Enabled = True
Else Unload Me
FrmUtama.Enabled = True
FrmUtama.Show
FrmUtama.mnuLaporan.Enabled = True
FrmUtama.mnuLapBarang.Enabled = True
FrmUtama.mnuLapJenis.Enabled = True
FrmUtama.mnuTransGaji.Enabled = True
FrmUtama.mnuUbahGaji.Enabled = False
FrmUtama.mnuLapJual.Enabled = False
FrmUtama.mnuPegawai.Enabled = False
FrmUtama.mnuJabatan.Enabled = False
FrmUtama.mnuPengguna.Enabled = False
FrmUtama.mnuTransaksi.Enabled = True
FrmUtama.Toolbar1.Enabled = False
End If
PenggunaID = Rs_Pengguna!UserId
PenggunaNm = Rs_Pengguna!Nama
With FrmUtama
.StatusBar1.Panels(1).Text = Rs_Pengguna!Nama
.StatusBar1.Panels(2).Text = [" _
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
18/68
& Rs_Pengguna!Status & "]
.mnuLogin.Enabled = True
.mnuLogin.Caption = Logout
End With
Unload Me
Else
Periksa, login hanya 3 kali
3x gagal pesan error ditampilkan
If MaxLogin < 3 Then
MsgBox PASSWORD MASIH SALAH, SILAHKAN ULANGI LAGI! , _
vbCritical + vbOKOnly, Error
txtPwd.Text =
txtPwd.SetFocus
MaxLogin = MaxLogin + 1
Else MsgBox ANDABUKAN PENGGUNA. ANDA TIDAK BERHAK! , _
vbCritical + vbOKOnly, Error
End
End If
End If
End If
End Sub
Private Sub TbTutup_Click()
Unload Me
End Sub 7. Buat Form untuk Form Pegawai (frmPegawai)
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
19/68
Untuk komponen dan pengaturan desain masih sama
Source Code Form Pegawai
Option Explicit Dim GridObjIndex As Byte
Dim Kd_Jenis As String
Dim KodePegawai As String
Dim KeteranganPegawai As String
Private Sub Form_Load()
Move (Screen.Width Width) / 2, _
(Screen.Height Height) / 3
Call BukaDatabase
Call TampilGridData
Call FormMati
TbHapus.Enabled = False
TbSimpan.Enabled = False
TbUbah.Enabled = False
Call CmbJenis_Click
Call cmbJenis_DropDown
End Sub
Sub FormKosong()
txtKode.Text =
cmbJenis.ListIndex = -1
txtNama.Text =
http://setyawanmartha.files.wordpress.com/2012/12/form-pegawai.jpg -
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
20/68
txtTunjangan.Text = 0
txtGaji.Text = 0
txtKeterangan.Text =
End Sub
Sub FormHidup()
txtKode.Enabled = True
cmbJenis.Enabled = True
txtNama.Enabled = True
txtTunjangan.Enabled = True
txtGaji.Enabled = True
txtKeterangan.Enabled = True
End Sub
Sub FormMati()
txtKode.Enabled = False
cmbJenis.Enabled = False
txtNama.Enabled = False txtTunjangan.Enabled = False
txtGaji.Enabled = False
txtKeterangan.Enabled = False
End Sub
Sub FormNormal()
Call FormKosong
Call FormMati
txtTunjangan.Locked = False
TbTambah.Enabled = True TbHapus.Enabled = False
TbSimpan.Enabled = False
TbUbah.Enabled = False
TbKeluar.Caption = &Keluar
End Sub
Private Sub CmbJenis_Click()
Kd_Jenis =
Set Rs_Jabatan = KoneksiDB.Execute(SELECT * FROM _
& Jabatan WHERE _
& Nama_Jabatan= & cmbJenis.Text & )
With Rs_Jabatan
If .EOF And .BOF Then
Exit Sub
Else
Kd_Jenis = Rs_Jabatan!Kode_Jabatan
txtNama.SetFocus
End If
End With
End Sub
Private Sub cmbJenis_DropDown()
cmbJenis.Clear Set Rs_Jabatan = KoneksiDB. Execute(SELECT * FROM _
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
21/68
& Jabatan ORDER BY Nama_Jabatan )
If Not Rs_Jabatan.BOF Then
While Not Rs_Jabatan.EOF
cmbJenis.AddItem Rs_Jabatan!Nama_Jabatan
Rs_Jabatan.MoveNext
Wend
End If
End Sub
Sub BuatKodePegawai()
Rs_Pegawai.Requery
Set Rs_Pegawai = New ADODB.Recordset
Rs_Pegawai.Open SELECT Pegawai.*, _
& Jabatan.Nama_Jabatan _
& FROM Pegawai, Jabatan WHERE _
& Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan _
& ORDER BY NIP ASC ,_ KoneksiDB, adOpenDynamic, adLockBatchOptimistic
If Rs_Pegawai.BOF Then
KodePegawai = P0001
Exit Sub
Else
Rs_Pegawai.MoveLast
KodePegawai = Rs_Pegawai!NIP
KodePegawai = Right(KodePegawai, 4)
KodePegawai = Val(KodePegawai) + 1
If Len(KodePegawai) > 4 Then
MsgBox NIP baru melewati batas , _
vbCritical, Error
Exit Sub
End If
End If
KodePegawai = P & Format(KodePegawai, 0000)
End Sub
Sub AktifGridPegawai()
With GridPegawai
.RowHeightMin = 300
.Col = 0
.Row = 0
.Text = NO
.CellFontBold = True
.ColWidth(0) = 400
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.RowHeightMin = 300
.Col = 1
.Row = 0
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
22/68
.Text = NIP
.CellFontBold = True
.ColWidth(1) = 750
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 2
.Row = 0
.Text = JABATAN
.CellFontBold = True
.ColWidth(2) = 1900
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 3
.Row = 0
.Text = NAMA PEGAWAI
.CellFontBold = True
.ColWidth(3) = 3300
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 4
.Row = 0
.Text = TUNJANGAN [Rp.]
.CellFontBold = True
.ColWidth(4) = 1600
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 5
.Row = 0
.Text = GAJI POKOK [R p.]
.CellFontBold = True
.ColWidth(5) = 1600
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 6
.Row = 0
.Text = KETERANGAN
.CellFontBold = True
.ColWidth(6) = 3000
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
End With End Sub
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
23/68
Sub TampilGridData()
Dim Baris As Integer
GridPegawai.Clear
Call AktifGridPegawai
GridPegawai.Rows = 2
Baris = 0
Call BukaDatabase
If Rs_Pegawai.BOF Then
MsgBox Tabel Pegawai masih kosong! , _
vbOKOnly + vbInformation, Perhatian
Exit Sub
Else
With Rs_Pegawai .MoveFirst
Do While Not .EOF
On Error Resume Next
Baris = Baris + 1
GridPegawai.Rows = Baris + 1
GridPegawai.TextMatrix(Baris, 0) = Baris
GridPegawai.TextMatrix(Baris, 1) = !NIP
GridPegawai.TextMatrix(Baris, 2) = !Nama_Jabatan
GridPegawai.TextMatrix(Baris, 3) = !Nm_Pegawai
GridPegawai.TextMatrix(Baris, 4) = !Tunjangan GridPegawai.TextMatrix(Baris, 5) = !Gaji_Pokok
GridPegawai.TextMatrix(Baris, 6) = !Keterangan
.MoveNext
Loop
End With
End If
End Sub
Private Sub GridPegawai_DblClick()
TbHapus.Enabled = True
TbSimpan.Enabled = False
TbUbah.Enabled = True
TbKeluar.Caption = &Batal
TbTambah.Enabled = False
txtGaji.Locked = True
Call FormHidup
cmbJenis.SetFocus
GridObjIndex = GridPegawai.Row
Set Rs_Pegawai = New ADODB.Recordset Rs_Pegawai.Open SELECT Pegawai.*, _
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
24/68
& Jabatan.Nama_Jabatan _
& FROM Pegawai, Jabatan WHERE _
& Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan _
& AND NIP= _
& GridPegawai.TextMatrix(GridObjIndex, 1) _
& ORDER BY NIP ASC ,_
KoneksiDB, adOpenDynamic, adLockBatchOptimistic
If Rs_Pegawai.BOF Then
MsgBox Tabel Pegawai masih kosong! , _
vbOKOnly + vbInformation, Perhatian
Exit Sub
Call FormNormal
Else
Rs_Pegawai.MoveFirst
Do While Not Rs_Pegawai.EOF On Error Resume Next
txtKode.Text = Rs_Pegawai!NIP
cmbJenis.Text = Rs_Pegawai!Nama_Jabatan
txtNama.Text = Rs_Pegawai!Nm_Pegawai
txtTunjangan.Text = Rs_Pegawai!Tunjangan
txtGaji.Text = Rs_Pegawai!Gaji_Pokok
txtKeterangan.Text = Rs_Pegawai!Keterangan
Rs_Pegawai.MoveNext
Loop
End If End Sub
Private Sub TbTambah_Click()
Call FormHidup
Call BuatKodePegawai
txtKode.Text = KodePegawai
TbSimpan.Enabled = True
TbTambah.Enabled = False
TbUbah.Enabled = False
TbHapus.Enabled = False
TbKeluar.Caption = &Batal
cmbJenis.SetFocus
Call TampilGridData
End Sub
Private Sub TbSimpan_Click()
If cmbJenis.ListIndex = -1 Then
MsgBox Jenis Jabatan tidak boleh kosong! , _
vbInformation + vbOKOnly, Perhatian
cmbJenis.SetFocus
ElseIf txtNama.Text = Then MsgBox Nama Pegawai tidak boleh kosong! , _
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
25/68
vbInformation + vbOKOnly, Perhatian
txtNama.SetFocus
ElseIf txtTunjangan.Text = Or txtTunjangan.Text = 0 Then
MsgBox Tunjangan tidak boleh kosong! , _
vbInformation + vbOKOnly, Perhatian
txtTunjangan.SetFocus
ElseIf txtGaji.Text = Then
MsgBox Gaji Pegawai tidak boleh kosong! , _
vbInformation + vbOKOnly, Perhatian
txtGaji.SetFocus
Else
If txtKeterangan = Then
KeteranganPegawai = Tidak ada keterangan
Else
KeteranganPegawai = txtKeterangan.Text
End If
SqlInsert = INSERT INTO Pegawai _
& (NIP,Kode_Jabatan, Nm_Pegawai, _
& Tunjangan,Gaji_Pokok, Keterangan) _
& VALUES( & txtKode.Text & , _
& Kd_Jenis & , & txtNama.Text & , _
& txtTunjangan.Text & , & txtGaji.Text & , _
& KeteranganPegawai & )
KoneksiDB.Execute SqlInsert, , adCmdText Rs_Pegawai.Requery
Call FormNormal
Call Form_Load
MsgBox Data telah tersimpan dalam database ! , _
vbOKOnly + vbInformation, Konfirmasi
End If
End Sub
Private Sub TbUbah_Click()
If cmbJenis.ListIndex = -1 Then
MsgBox Jabatan tidak boleh kosong! , _
vbInformation + vbOKOnly, Perhatian
cmbJenis.SetFocus
ElseIf txtNama.Text = Then
MsgBox Nama Pegawai tidak boleh kosong! , _
vbInformation + vbOKOnly, Perhatian
txtNama.SetFocus
ElseIf txtTunjangan.Text = Or txtTunjangan.Text = 0 Then
MsgBox Tunjangan tidak boleh koson g! , _
vbInformation + vbOKOnly, Perhatian
txtTunjangan.SetFocus ElseIf txtGaji.Text = Then
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
26/68
MsgBox Gaji tidak boleh kosong! , _
vbInformation + vbOKOnly, Perhatian
txtGaji.SetFocus
Else
If txtKeterangan = Then
KeteranganPegawai = Tidak ada keterangan
Else
KeteranganPegawai = txtKeterangan.Text
End If
SqlUpdate = UPDATE Pegawai _
& SET Kode_Jabatan= & Kd_Jenis & , _
& Nm_Pegawai= & txtNama.Text & , _
& Tunjangan= & txtTunjangan.Text & , _
& Gaji_Pokok= & txtGaji.Text & , _
& Keterangan= & KeteranganPegawai & _ & WHERE NIP= & txtKode.Text &
KoneksiDB.Execute SqlUpdate, , adCmdText
Rs_Pegawai.Requery
Call FormNormal
MsgBox Data telah terbaharui dalam database ! , _
vbOKOnly + vbInformation, Konfirmasi
Call Form_Load End If
End Sub
Private Sub TbHapus_Click()
Konfirmasi = MsgBox(Anda yakin akan _
& menghapus pesan ini? , _
vbYesNo + vbQuestion, Konfirmasi )
If Konfirmasi = vbYes Then
SqlDelete = DELETE FROM Pegawai WHERE _
& NIP= & txtKode.Text &
KoneksiDB.Execute SqlDelete, , adCmdText
Rs_Pegawai.Requery
Call FormNormal
Call Form_Load
Else
Call FormNormal
End If
End Sub
Private Sub TbKeluar_Click()
If TbKeluar.Caption = &Keluar Then
Unload Me Else
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
27/68
FormNormal
End If
End Sub
Private Sub txtTunjangan_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
txtGaji.SetFocus
ElseIf Not (KeyAscii >= Asc(0) _
And KeyAscii = Asc(0) _
And KeyAscii
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
28/68
Kuning = Combo box (pilihan)
SourceCode
Option Explicit
Dim GridBaris As Byte
Dim TmpPassword As String
Dim NewPassword As String
Dim Tanya As String
Private Sub Form_Load()
Move (Screen.Width Width) / 2, _
(Screen.Height Height) / 3
Call BukaDatabase
Call TampilGridData
cmbStatus.Clear
cmbStatus.AddItem (ADMIN ) cmbStatus.AddItem (BENDAHARA )
TbUbah.Enabled = False
TbSimpan.Enabled = False
TbHapus.Enabled = False
Call FormMati
End Sub
Sub FormKosong()
txtUserId.Text = txtPassword.Text =
http://setyawanmartha.files.wordpress.com/2012/12/form-pengguna.jpg -
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
29/68
txtNama.Text =
cmbStatus.ListIndex = -1
End Sub
Sub FormHidup()
txtUserId.Enabled = True
txtPassword.Enabled = True
txtNama.Enabled = True
cmbStatus.Enabled = True
txtUserId.BackColor = &HFFFFFF
txtPassword.BackColor = &HFFFFFF
txtNama.BackColor = &HFFFFFF
cmbStatus.BackColor = &HFFFFFF
End Sub
Sub FormMati()
txtUserId.Enabled = False txtPassword.Enabled = False
txtNama.Enabled = False
cmbStatus.Enabled = False
txtUserId.BackColor = &HC0FFFF
txtPassword.BackColor = &HC0FFFF
txtNama.BackColor = &HC0FFFF
cmbStatus.BackColor = &HC0FFFF
End Sub
Sub FormNormal() Call FormKosong
Call FormMati
TbBaru.Enabled = True
TbUbah.Enabled = False
TbHapus.Enabled = False
TbSimpan.Enabled = False
TbKeluar.Caption = &Keluar
End Sub
Sub AktifGridPengguna()
With GridPengguna
.RowHeightMin = 300
.Col = 0
.Row = 0
.Text = USER ID
.CellFontBold = True
.ColWidth(0) = 1300
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 1
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
30/68
.Row = 0
.Text = PASSWORD
.CellFontBold = True
.ColWidth(1) = 1300
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 2
.Row = 0
.Text = NAMA PEMILIK
.CellFontBold = True
.ColWidth(2) = 3700
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 3
.Row = 0
.Text = STATUS
.CellFontBold = True
.ColWidth(3) = 1300
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
End With
End Sub
Sub TampilGridData()
Dim Baris As Integer GridPengguna.Clear
Call AktifGridPengguna
GridPengguna.Rows = 2
Baris = 0
Set Rs_Pengguna = New ADODB.Recordset
Rs_Pengguna.Open SELECT * FROM Pengguna , _
KoneksiDB, adOpenDynamic, adLockOptimistic
If Rs_Pengguna.BOF Then
MsgBox DATAPengguna MASIH KOSONG! , _
vbOKOnly + vbInformation, Perhatian
Exit Sub
Else
With Rs_Pengguna
.MoveFirst
Do While Not .EOF
On Error Resume Next
Baris = Baris + 1
GridPengguna.Rows = Baris + 1
GridPengguna.TextMatrix(Baris, 0) = !UserId GridPengguna.TextMatrix(Baris, 1) = xxxxxxx
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
31/68
GridPengguna.TextMatrix(Baris, 2) = !Nama
GridPengguna.TextMatrix(Baris, 3) = !Status
.MoveNext
Loop
End With
End If
End Sub
Private Sub GridPengguna_DblClick()
TbHapus.Enabled = True
TbSimpan.Enabled = False
TbUbah.Enabled = True
TbKeluar.Caption = &Normal
TbBaru.Enabled = False
txtUserId.Locked = True
Call FormHidup txtPassword.SetFocus
GridBaris = GridPengguna.Row
Set Rs_Pengguna = New ADODB.Recordset
Rs_Pengguna.Open SELECT * FROM Pengguna _
& WHERE UserId= _
& GridPengguna.TextMatrix(GridBaris, 0) & ,_
KoneksiDB, adOpenDynamic, adLockBatchOptimistic
If Rs_Pengguna.BOF Then
MsgBox TABELMASIH KOSONG , _
vbOKOnly + vbInformation, Perhatian
Exit Sub
Call FormNormal
Else
Rs_Pengguna.MoveFirst
Do While Not Rs_Pengguna.EOF
On Error Resume Next
txtUserId.Text = Rs_Pengguna!UserId
txtNama.Text = Rs_Pengguna!Nama
cmbStatus.Text = Rs_Pengguna!Status
TmpPassword = Rs_Pengguna!PassId
Rs_Pengguna.MoveNext
Loop
End If
End Sub
Private Sub TbBaru_Click()
Call FormHidup
Call TampilGridData
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
32/68
TbSimpan.Enabled = True
TbBaru.Enabled = False
TbHapus.Enabled = False
TbKeluar.Caption = &Normal
txtUserId.Locked = False
txtUserId.SetFocus
End Sub
Private Sub TbSimpan_Click()
Set Rs_Pengguna = New ADODB.Recordset
Rs_Pengguna.Open SELECT * FROM Pengguna WHERE _
& UserId= & Trim(txtUserId.Text) & , _
KoneksiDB, adOpenDynamic, adLockBatchOptimistic
If Len(txtUserId.Text)
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
33/68
Rs_Pengguna.Open SELECT * FROM Pengguna WHERE _
& UserId= & Trim(txtUserId.Text) & ,_
KoneksiDB, adOpenDynamic, adLockBatchOptimistic
If txtNama.Text = Then
MsgBox NAMATIDAK BOLEH KOSONG , _
vbOKOnly + vbCritical, Error
txtNama.SetFocus
Else
If Trim(txtPassword.Text) = Then
NewPassword = TmpPassword
Else
NewPassword = txtPassword.Text
End If
Tanya = MsgBox(UBAH DATA PENGGUNA DARI : _ & vbCrLf & & NAMALAMA : _
& Rs_Pengguna.Fields!Nama + vbCrLf & _
& NAMABARU : & txtNama.Text + vbCrLf & , _
vbYesNo + vbQuestion, Perhatian ! )
If Tanya = vbYes Then
SqlUpdate = UPDATE Pengguna _
& SET PassId= & NewPassword & , _
& Nama= & Trim(txtNama.Text) & , _
& Status= & Trim(cmbStatus.Text) & _
& WHERE UserId= & Trim(txtUserId.Text) &
KoneksiDB.Execute SqlUpdate, , adCmdText
End If
Rs_Pegawai.Requery
Call FormNormal
Call Form_Load
End If
End Sub
Private Sub TbHapus_Click()
Tanya = MsgBox(YAKIN HAPUS DATA INI ? _
& vbCrLf & & USERID : _
& txtUserId + vbCrLf & _
& NAMA: & txtNama.Text + vbCrLf & , _
vbYesNo + vbQuestion, Perhatian ! )
If Tanya = vbYes Then
SQL = DELETE FROM Pengguna WHERE _
& UserId= & txtUserId.Text &
KoneksiDB.Execute SQL, , adCmdText
Rs_Pengguna.Requery Call FormNormal
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
34/68
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
35/68
Ikuti jalur warna
Orange = Image List(memasukkan gambar pada tool bar)
Biru = Menu Editor (tampilan menu dsn sub menu)
Kuning = Toolbar (Temapt untukmenaruh imagae dari image list)
SourceCode Option Explicit
Private Sub Form_Unload(Cancel As Integer)
If MsgBox(YAKIN AKAN MENUTUP APLIKASI INI..? , _
vbQuestion, Konfirmasi ) = vbNo Then
Cancel = 1
Else
End
End If
End Sub
Private Sub mnuLapJenis_Click()
With rptJenis
.Sections(Section4).Controls(Label5).Caption = _
Format(Date, dd MMMM yyyy )
.Show 1
End With
End Sub
Private Sub mnuJualTgl_Click()
frmLapJualTgl.Show 1
End Sub
Private Sub mnuLPengguna_Click()
With rptPengguna .Sections(Section4).Controls(Label8).Caption = _
http://setyawanmartha.files.wordpress.com/2012/12/menu-utama.jpg -
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
36/68
Format(Date, dd MMMM yyyy )
.Show 1
End With
End Sub
Private Sub mnuPengguna_Click()
frmPengguna.Show 1
End Sub
Private Sub mnuJabatan_Click()
frmJabatan.Show 1, FrmUtama
End Sub
Private Sub mnuKeluar_Click()
End
End Sub
Private Sub mnuLapJual_Click()
With rptLapPenggajian
.Sections(Section4).Controls(Label5).Caption = _ Format(Date, dd MMMM yyyy )
.Show 1
End With
End Sub
Private Sub mnuLapBarang_Click()
With rptPegawai
.Sections(Section4).Controls(Label5).Capti on = _
Format(Date, dd MMMM yyyy )
.Show 1
End With End Sub
Private Sub mnuLogin_Click()
If FrmUtama.mnuLogin.Caption = Login Then
frmLogin.Show 1
Else
mnuLaporan.Enabled = False
mnuPegawai.Enabled = False
mnuJabatan.Enabled = False
mnuUbahGaji.Enabled = False
mnuPengguna.Enabled = False
mnuTransaksi.Enabled = False
Toolbar1.Enabled = False
Me.mnuLogin.Caption = Login
End If
End Sub
Private Sub mnuPegawai_Click()
frmPegawai.Show 1, FrmUtama
End Sub
Private Sub mnuBarangJenis_Click()
frmLapBarangJenis.Show 1
End Sub
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
37/68
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
38/68
TbSimpan.Enabled = False
End Sub
Sub FormKosong()
txtKode.Text =
txtJenis.Text =
txtNama.Text =
txtTunjangan.Text = 0
txtGaji.Text = 0
txtGajiLama.Text =
txtKeterangan.Text =
End Sub
Sub FormHidup()
txtKode.Enabled = True
txtJenis.Enabled = True
txtNama.Enabled = True
txtTunjangan.Enabled = True txtGaji.Enabled = True
txtKeterangan.Enabled = True
End Sub
Sub FormMati()
txtKode.Enabled = False
txtJenis.Enabled = False
txtNama.Enabled = False
txtTunjangan.Enabled = False
txtGaji.Enabled = False
txtKeterangan.Enabled = False End Sub
Sub FormNormal()
Call FormKosong
Call FormMati
txtGaji.Locked = False
Label7.Visible = False
txtGajiLama.Visible = False
TbCari.Enabled = False
TbTambah.Enabled = True
TbSimpan.Enabled = False
TbKeluar.Caption = &Keluar
End Sub
Private Sub TbCari_Click()
FrmUtama.Enabled = False
frmUbahGaji.Enabled = False
frmCariPegawai.Show 1
End Sub
Private Sub TbKeluar_Click()
If TbKeluar.Caption = &Keluar Then
FrmUtama.Enabled = True
Unload Me Else
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
39/68
FormNormal
End If
End Sub
Private Sub TbSimpan_Click()
If txtGaji.Text = Or txtGaji.Text = 0 Then
MsgBox Gaji tidak boleh kosong! , _
vbInformation + vbOKOnly, Perhatian
txtGaji.SetFocus
Else
SqlUpdate =
SqlUpdate = UPDATE Pegawai _
& SET Gaji_Pokok= & txtGaji.Text & _
& WHERE NIP= & txtKode.Text &
KoneksiDB.Execute SqlUpdate, , adCmdText Rs_Pegawai.Requery
Call FormNormal
MsgBox Data telah terbaharui dalam database ! , _
vbOKOnly + vbInformation, Konfirmasi
Call Form_Load
End If
End Sub
Private Sub TbTambah_Click() Call FormHidup
TbCari.Enabled = True
TbSimpan.Enabled = True
TbTambah.Enabled = False
TbKeluar.Caption = &Batal
txtKode.SetFocus
End Sub
Private Sub txtKode_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
If Len(txtKode.Text) < 5 Then
MsgBox NOMORINDUK PEGAWAI HARUS 5 DIGIT , _
vbCritical, Error
Exit Sub
End If
KeyAscii = 0
Label7.Visible = True
txtGajiLama.Visible = True
Set Rs_Pegawai = New ADODB.Recordset
Rs_Pegawai.Open SELECT Pegawai.*, _
& Jabatan.Nama_Jabatan _
& FROM Pegawai, Jabatan WHERE _ & Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan _
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
40/68
& AND Pegawai.NIP= _
& txtKode.Text & ,_
KoneksiDB, adOpenDynamic, adLockBatchOptimistic
If Rs_Pegawai.BOF Then
MsgBox NIP TIDAK DIKENALI .. , _
vbInformation, Info
Else
With Rs_Pegawai
txtJenis.Text = !Nama_Jabatan
txtNama.Text = !Nm_Pegawai
txtTunjangan.Text = !Tunjangan
txtGajiLama.Text = !Gaji_Pokok
txtKeterangan = !Keterangan
txtGaji.SetFocus
End With
End If End If
End Sub
Private Sub txtGaji_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
TbSimpan.SetFocus
ElseIf Not (KeyAscii >= Asc(0) _
And KeyAscii
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
41/68
SourceCode
Option Explicit
Dim Baris As Integer
Dim i As Integer
Dim Tanya As String
Dim NoNota As String
Private Sub Form_Load()
Move (Screen.Width Width) / 2, _
(Screen.Height Height) / 3
Call BukaDatabase
Call FormMati
TbSimpan.Enabled = False
TbCari.Enabled = False
TbMasuk.Enabled = False
End Sub
Sub FormKosong()
txtNoNota.Text =
txtTgl.Text = __/__/____
txtKode.Text =
txtNama.Text =
http://setyawanmartha.files.wordpress.com/2012/12/form-gaji.jpg -
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
42/68
txtGaji.Text =
txtTunjangan.Text =
txtKas.Text =
txtTotal.Text = 0
txtTotalHarga = 0
txtKembali.Text = 0
txtCash.Text = 0
Baris = 1
GridPenggajian.Clear
GridPenggajian.Rows = 2
Call AktifGridGaji
End Sub
Sub FormTransKosong()
txtTotalHarga.Text = 0
txtCash.Text = txtKembali.Text = 0
End Sub
Sub FormMati()
txtNoNota.Enabled = False
txtTgl.Enabled = False
txtKode.Enabled = False
txtNama.Enabled = False
txtGaji.Enabled = False
txtTunjangan.Enabled = False
txtKas.Enabled = False txtTotal.Enabled = False
txtTotalHarga.Enabled = False
txtCash.Enabled = False
txtKembali.Enabled = False
End Sub
Sub FormHidup()
txtNoNota.Enabled = True
txtTgl.Enabled = True
txtKode.Enabled = True
txtNama.Enabled = True
txtGaji.Enabled = True
txtTunjangan.Enabled = True
txtKas.Enabled = True
txtTotal.Enabled = True
txtTotalHarga.Enabled = True
txtCash.Enabled = True
txtKembali.Enabled = True
End Sub
Sub FormNormal()
FormMati
FormKosong
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
43/68
TbKeluar.Caption = &Keluar
TbSimpan.Enabled = False
TbBaru.Enabled = True
TbCari.Enabled = False
TbMasuk.Enabled = False
End Sub
Sub BuatNotaJual()
Rs_Penggajian.Requery
Set Rs_Penggajian = New ADODB.Recordset
Rs_Penggajian.Open SELECT * FROM _
& Penggajian ORDER BY No_Nota ,_
KoneksiDB, adOpenDynamic, _
adLockBatchOptimistic
If Rs_Penggajian.BOF Then
NoNota = GJ - 00001
Exit Sub Else
Rs_Penggajian.MoveLast
NoNota = Rs_Penggajian!No_Nota
NoNota = Right(NoNota, 5)
NoNota = Val(NoNota) + 1
If Len(NoNota) > 5 Then
MsgBox Nomor nota baru melewati batas , _
vbCritical, Error
Exit Sub End If
End If
NoNota = GJ - & Format(NoNota, 00000)
End Sub
Sub AktifGridGaji()
With GridPenggajian
.Col = 0
.Row = 0
.Text = KODE
.CellFontBold = True
.ColWidth(0) = 1300
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 1
.Row = 0
.Text = NAMA PEGAWAI
.CellFontBold = True
.ColWidth(1) = 4200
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
44/68
.Col = 2
.Row = 0
.Text = GAJI (Rp)
.CellFontBold = True
.ColWidth(2) = 1800
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 3
.Row = 0
.Text = KAS
.CellFontBold = True
.ColWidth(3) = 1300
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 4
.Row = 0
.Text = SUBTOTAL (Rp)
.CellFontBold = True
.ColWidth(4) = 1800
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
End With
End Sub
Private Sub TbBaru_Click() txtTgl.Text = Format(Date, dd/MM/yyyy )
Call FormHidup
Call AktifGridGaji
Call BuatNotaJual
txtNoNota.Text = NoNota
TbBaru.Enabled = False
TbCari.Enabled = True
TbKeluar.Caption = &Batal
TbSimpan.Enabled = True
TbMasuk.Enabled = True
Baris = 1
End Sub
Private Sub TbCari_Click()
FrmUtama.Enabled = False
frmGaji.Enabled = False
frmCariGaji.Show 1
End Sub
Private Sub TbMasuk_Click() If txtKode.Text = Then
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
45/68
MsgBox Barang masih kosong! ,_
vbOKOnly + vbCritical, Konfirmasi
TbCari.SetFocus
ElseIf Val(txtKas.Text) > _
Val(txtGaji.Text) Then
MsgBox Maaf..! Gaji tidak memadai . , _
vbOKOnly + vbCritical, Konfirmasi
txtKas.Text = 0
txtKas.SetFocus
ElseIf txtKas.Text = _
Or txtKas.Text = Then
MsgBox Kas masih kosong! ,_
vbOKOnly + vbCritical, Konfirmasi
txtKas.SetFocus
ElseIf GridPenggajian.Rows = 1 Then
MsgBox Belum ada Pegawai yang anda Input! , _ vbOKOnly + vbCritical, Konfirmasi
TbCari.SetFocus
ElseIf txtGaji.Text = 1 Then
MsgBox Gaji minimum! , _
vbOKOnly + vbCritical, Konfirmasi
Call BersihPegawai
ElseIf Val(txtGaji.Text) = _
Val(txtKas.Text) Then
MsgBox Kas tidak boleh melebihi Gaji! , _
vbOKOnly + vbCritical, Konfirmasi txtKas.Text = Val(txtKas.Text) 1
TbMasuk.SetFocus
Else
With GridPenggajian
.Rows = Baris + 1
.TextMatrix(Baris, 0) = txtKode.Text
.TextMatrix(Baris, 1) = txtNama.Text
.TextMatrix(Baris, 2) = txtGaji.Text
.TextMatrix(Baris, 3) = txtKas.Text
.TextMatrix(Baris, 4) = txtTotal.Text
End With
txtTotalHarga.Text = _
Val(txtTotalHarga.Text) + Val(txtTotal.Text)
Baris = Baris + 1
Call BersihPegawai
End If
End Sub
Private Sub TbSimpan_Click()
Dim i As Integer
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
46/68
If txtNoNota.Text = Then
MsgBox Nomor transaksi masih kosong ! , _
vbOKOnly + vbCritical, Konfirmasi
txtNoNota.SetFocus
ElseIf Baris = 1 Then
MsgBox Belum ada pegawai yang anda Input! , _
vbOKOnly + vbCritical, Konfirmasi
TbCari.SetFocus
ElseIf txtCash.Text = Then
MsgBox Belum melakukan pembayaran ! ,_
vbOKOnly + vbCritical, Konfirmasi
txtCash.SetFocus
ElseIf Val(txtCash.Text) < _
Val(txtTotalHarga.Text) Then
MsgBox Pembayaran masih kurang , _
vbOKOnly + vbCritical, Konfirmasi txtCash.SetFocus
Else
SqlInsert =
SqlInsert = INSERT INTO Penggajian _
& (No_Nota,Tgl_Nota,Total,UserId) _
& VALUES ( & txtNoNota.Text & , _
& Format(Date, yyyy -MM- dd ) & , _
& txtTotalHarga.Text & , _
& PenggunaID & )
KoneksiDB.Execute SqlInsert, , adCmdText Rs_Penggajian.Requery
For i = 1 To Baris 1
SqlInsert =
SqlInsert = INSERT INTO Detail_Penggaji an _
& (No_Nota,NIP,Tunjangan_Krj, _
& Kas,SubTotal) _
& VALUES ( & txtNoNota.Text & , _
& GridPenggajian.TextMatrix(i, 0) & , _
& GridPenggajian.TextMatrix(i, 2) & , _
& GridPenggajian.TextMatrix(i, 3) & , _
& GridPenggajian.TextMatrix(i, 4) & )
KoneksiDB.Execute SqlInsert, , adCmdText
SqlUpdate =
SqlUpdate = UPDATE Pegawai SET _
& Gaji_Pokok=Gaji_Pokok _
& Val(GridPenggajian.TextMatrix(i, 3)) & _
& WHERE NIP= _
& GridPenggajian.TextMatrix(i, 0) &
KoneksiDB.Execute SqlUpdate, , adCmdText Next i
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
47/68
MsgBox Data telah tersimpan dalam database ! , _
vbOKOnly + vbInformation, Konfirmasi
On Error Resume Next
With frmCetakGaji
.NoNota = txtNoNota.Text
.TotHarga = txtTotalHarga.Text
.UangBayar = txtCash.Text
.UangKembali = txtKembali.Text
.Show 1
End With
Call FormNormal
Call FormTransKosong
End If
End Sub
Private Sub TbKeluar_Click() If TbKeluar.Caption = &Keluar Then
Tanya = MsgBox(ANDA YAKIN AKAN _
& MENGAKHIRI APLIKASI INI..? , _
vbQuestion + vbYesNo, Exit )
If Tanya = vbYes Then
FrmUtama.Enabled = True
Unload Me
Else
Exit Sub
End If Else
Call FormNormal
End If
End Sub
Sub BersihPegawai()
txtKode.Text =
txtNama.Text =
txtTunjangan.Text = 0
txtGaji.Text = 0
txtKas.Text =
txtTotal.Text = 0
End Sub
Private Sub txtKas_Change()
On Error Resume Next
If txtKas.Text = Or txtTunjangan.Text = Or txtGaji.Text = Then
txtTotal.Text =
Exit Sub
Else
txtTotal.Text = (txtTunjangan.Text + (txtGaji.Text txtKas.Text))
End If
End Sub
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
48/68
Private Sub txtCash_Change()
On Error Resume Next
If txtCash.Text = Or txtTotalHarga.Text = Then
txtKembali.Text = 0
Exit Sub
Else
txtKembali.Text = _
Val(txtCash.Text) + Val(txtTotalHarga.Text)
End If
End Sub
Private Sub txtCash_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
TbMasuk.SetFocus
ElseIf Not (KeyAscii >= Asc(0) _
And KeyAscii = Asc(0) _
And KeyAscii
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
49/68
If Rs_GajiPokok.BOF Then
MsgBox NIP TIDAK DIKENALI .. , _
vbInformation, Info
Else
With Rs_GajiPokok
txtGaji.Text = !Gaji_Pokok
txtNama.Text = !Nm_Pegawai
End With
End If
End If
End Sub 12. Buat Form untuk formCari Gaji (frmCari Gaji)
SourceCode
Option Explicit
Private Sub Form_Load()
Move (Screen.Width Width) / 2, _
(Screen.Height Height) / 2
Call BukaDatabase
Call TampilGridData
End Sub
Sub AktifGridBarang()
With GridBarang
.RowHeightMin = 300
.Col = 0
.Row = 0
.Text = NO
.CellFontBold = True
.ColWidth(0) = 400
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
http://setyawanmartha.files.wordpress.com/2012/12/cari-gaji.jpg -
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
50/68
.RowHeightMin = 300
.Col = 1
.Row = 0
.Text = KODE
.CellFontBold = True
.ColWidth(1) = 750
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 2
.Row = 0
.Text = JENIS
.CellFontBold = True
.ColWidth(2) = 1900
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 3
.Row = 0
.Text = NAMA PEGAWAI
.CellFontBold = True
.ColWidth(3) = 3300
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 4
.Row = 0
.Text = TUNJANGAN [Rp.]
.CellFontBold = True
.ColWidth(4) = 1600
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 5
.Row = 0
.Text = GAJI POKOK [Rp.]
.CellFontBold = True
.ColWidth(5) = 1600
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
End With
End Sub
Sub TampilGridData()
Dim Baris As Integer
GridBarang.Clear
Call AktifGridBarang
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
51/68
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
52/68
End If
FrmUtama.Enabled = False
frmGaji.Enabled = True
Unload Me
End Sub
Private Sub TbNormal_Click()
Call Form_Load
txtCari.Text =
txtCari.SetFocus
End Sub
Private Sub TbTutup_Click()
FrmUtama.Enabled = False
frmGaji.Enabled = True
Unload Me
End Sub Private Sub txtCari_Change()
If Option2.Value = True Then
Set Rs_GajiPokok = New ADODB.Recordset
Rs_GajiPokok.Open SELECT Pegawai.*, _
& Jabatan.Nama_Jabatan _
& FROM Pegawai, Jabatan WHERE _
& Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan _
& AND Pegawai.Nm_Pegawai LIKE % _
& txtCari.Text & % ORDER BY NIP , _ KoneksiDB, adOpenDynamic, adLockBatchOptimistic
If Rs_GajiPokok.BOF Then
MsgBox Tidak menemukan nama Pegawai! _
& & txtCari.Text & dalam tabel , _
vbInformation, Informasi
txtCari.Text =
txtCari.SetFocus
Else
Call TampilGridData
End If
ElseIf Option1.Value = True Then
Set Rs_GajiPokok = New ADODB.Recordset
Rs_GajiPokok.Open SELECT Pegawai.*, _
& Jabatan.Nama_Jabatan _
& FROM Pegawai, Jabatan WHERE _
& Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan _
& AND Pegawai.NIP LIKE % _
& txtCari.Text & % ORDER BY NIP , _ KoneksiDB, adOpenDynamic, adLockBatchOptimistic
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
53/68
If Rs_GajiPokok.BOF Then
MsgBox Tidak menemukan NIP! _
& & txtCari.Text & dalam tabel , _
vbInformation, Informasi
txtCari.Text =
txtCari.SetFocus
Else
Call TampilGridData
End If
End If
End Sub 13. Buat form untuk form cari Pegawai (frmCariPegawai)
Orange = Option Button (pilihan), untuk merubah nama ada di kolom Caption
SourceCode Private Sub Form_Load()
Move (Screen.Width Width) / 2, _
(Screen.Height Height) / 4
Call BukaDatabase
Call TampilGridData
End Sub
Sub AktifGridPegawai()
With GridPegawai
.RowHeightMin = 300
.Col = 0
.Row = 0
.Text = NO
.CellFontBold = True
.ColWidth(0) = 400
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.RowHeightMin = 300
.Col = 1
.Row = 0
.Text = KODE
.CellFontBold = True
http://setyawanmartha.files.wordpress.com/2012/12/cari-pegawai.jpg -
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
54/68
.ColWidth(1) = 750
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 2
.Row = 0
.Text = JABATAN
.CellFontBold = True
.ColWidth(2) = 1900
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 3
.Row = 0
.Text = NAMA PEGAWAI
.CellFontBold = True
.ColWidth(3) = 3300
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 4
.Row = 0
.Text = TUNJANGAN [Rp.]
.CellFontBold = True
.ColWidth(4) = 1600
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 5
.Row = 0
.Text = GAJI
.CellFontBold = True
.ColWidth(5) = 1600
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 6
.Row = 0
.Text = KETERANGAN
.CellFontBold = True
.ColWidth(6) = 3000
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
End With
End Sub
Sub TampilGridData() Dim Baris As Integer
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
55/68
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
56/68
UCase(GridPegawai.TextMatrix(barisGrid, 6))
End With
Else
Exit Sub
End If
FrmUtama.Enabled = False
frmUbahGaji.Enabled = True
Unload Me
End Sub
Private Sub TbNormal_Click()
Call Form_Load
txtCari.Text =
txtCari.SetFocus
End Sub
Private Sub TbTutup_Click() FrmUtama.Enabled = False
frmUbahGaji.Enabled = True
Unload Me
End Sub
Private Sub txtCari_Change()
If Option2.Value = True Then
Set Rs_Pegawai = New ADODB.Recordset
Rs_Pegawai.Open SELECT Pegawai.*, _
& Jabatan.Nama_Jabatan _
& FROM Pegawai, Jabatan WHERE _ & Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan _
& AND Pegawai.Nm_Pegawai LIKE % _
& txtCari.Text & % _
& ORDER BY NIP , _
KoneksiDB, adOpenDynamic, adLockBatchOptimistic
If Rs_Pegawai.BOF Then
MsgBox Tidak menemukan nama Pegawai! _
& & txtCari.Text & dalam tabel , _
vbInformation, Informasi
txtCari.Text =
txtCari.SetFocus
Else
Call TampilGridData
End If
ElseIf Option1.Value = True Then
Set Rs_Pegawai = New ADODB.Recordset
Rs_Pegawai.Open SELECT Pegawai.*, _
& Jabatan.Nama_Jabatan _
& FROM Pegawai, Jabatan WHERE _ & Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan _
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
57/68
& AND Pegawai.NIP LIKE % _
& txtCari.Text & % _
& ORDER BY NIP ,_
KoneksiDB, adOpenDynamic, adLockBatchOptimistic
If Rs_Pegawai.BOF Then
MsgBox Tidak menemukan NIP! _
& & txtCari.Text & dalam tabel , _
vbInformation, Informasi
txtCari.Text =
txtCari.SetFocus
Else
Call TampilGridData
End If
End If End Sub 14. Buat Form untuk form cetak gaji (frmCetakGaji)
Biru = Rich TextBox = media cetak variabelnya (rtfLap)
Orange = Common Dialog (untuk navigasi aplikasi) variabelnya (DialogSimpan)
SourceCode
Option Explicit
Public NoNota As String
Public TotGaji As String
Public Lain (+) As String
http://setyawanmartha.files.wordpress.com/2012/12/cetak-laporan.jpg -
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
58/68
Public Total As String
Dim rsCetak As ADODB.Recordset
Dim P As Printer
Dim HariIni As String
Dim arrHari(1 To 7) As String
Private Sub Form_Load()
Move (Screen.Width Width) / 2, _
(Screen.Height Height) / 3
rtfLap.Locked = True
arrHari(1) = Minggu
arrHari(2) = Senin arrHari(3) = Selasa
arrHari(4) = Rabu
arrHari(5) = Kamis
arrHari(6) = Jumat
arrHari(7) = Sabtu
HariIni = arrHari(Abs(Weekday(Date)))
Dim i, j, JlhBsu, Baris, idx, panjang, _
pNama As Integer Dim hal As String
Dim TglKini As String
Dim Masukan As String
Dim Kriteria As String
Dim fileName As String
TglKini = Format(Date, dd/MM/yyyy )
SQL =
SQL = SELECT Penggajian.Tgl_Nota, _
& Detail_Penggajian.NIP, _
& Pegawai.Nm_Pegawai, Detail_Penggajian.Tunjangan, _
& Detail_Penggajian.Kas, _
& Detail_Penggajian.Subtotal FROM (Penggajian _
& INNER JOIN Detail_Penggajian ON _
& Penggajian.No_Nota = Detail_Penggajian.No_Nota) _
& INNER JOIN Pegawai ON _
& Detail_Penggajian.NIP = Pegawai.NIP _
& WHERE Penggajian.No_N ota= & NoNota &
Set rsCetak = New ADODB.Recordset
rsCetak.Open SQL, KoneksiDB
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
59/68
ReDim tabCetak(1)
j = 0: JlhBsu = 0: rtfLap.Text =
fileName = Temp.txt
Open fileName For Output As #1
rtfLap.Text = CPDP Wil. DEPOK I & vbCrLf & _
& vbCrLf & _
Dinas Pendapatan Daerah & vbCrLf & _
Jl.Merdeka Raya No.2 Sukmajaya Depok & Kriteria & vbCrLf & _
Ph.[021]7787528 & Kriteria & vbCrLf & _
& HariIni & , & TglKini & & vbCrLf & _
No Transaksi: & NoNota & vbCrLf & _
=============================================================
=============== & vbCrLf & _
No. Kode Nama Jumlah Harga Total & vbCrLf & _ -
Print #1, rtfLap.Text
Close #1
Open fileName For Input As #1
rtfLap.Text = Input(LOF(1), 1)
Close #1
i = 0: idx = 1: Baris = 0
Do While Not rsCetak.EOF
tabCetak(i).NIP = rsCetak.Fields(NIP )
tabCetak(i).NamaPegawai = rsCetak.Fields(Nm_Pegawai ) tabCetak(i).Jumlah = rsCetak.Fields(Kas )
tabCetak(i).HargaSatuan = rsC etak.Fields(Tunjangan )
tabCetak(i).Total = tabCetak(i).Jumlah * _
tabCetak(i).Tunjangan
Open fileName For Output As #1
rtfLap.SelStart = Len(rtfLap.Text)
rtfLap.Text = rtfLap.Text & & RKanan((j + 1), # ) & . & _
RKiri(tabCetak(i).NIP, ########### ) & & _
RKiri(tabCetak(i).NamaPegawai, ####################### ) & & _
RKanan(tabCetak(i).Jumlah, ### ) & & _
RKanan(tabCetak(i).Tunjangan, #,###,### ) & & _
RKanan(tabCetak(i).Total, #,###,### ) & & vbCrLf
Print #1, rtfLap.Text
Close #1
If rsCetak.EOF = True Then
Exit Do
End If
j = j + 1
Baris = Baris + 1
JlhBsu = JlhBsu + tabCetak(i).Total rsCetak.MoveNext
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
60/68
Loop
Open fileName For Output As #1
rtfLap.Text = rtfLap.Text & _
- & vbCrLf & _
Total Jenis Barang = & RKanan(j, ### ) & ; Total Besar Uang = & _
RKanan(JlhBsu, ###,###,###,### ) & & vbCrLf & _
=============================================================
====== & vbCrLf & _
Total : & RKanan(TotGaji, #,###,###,### ) & &
vbCrLf & _
Bayar : & RKanan(Lain (+), #,###,###,### ) & &
vbCrLf & _
Kembali : & RKanan(Total, #,###,###,### ) & &
vbCrLf & _
=============================================================
====== & vbCrLf & _
** TERIMA KASIH **
Print #1, rtfLap.Text
Close #1
Set rsCetak = Nothing
rtfLap.Visible = True
Show 1
Exit Sub End Sub
Private Sub TbCetak_Click()
Dim Tanya As Integer
On Error GoTo PrintError
If IsPrinterInstalled = False Then
MsgBox Belum ada printer terinstall di & Chr(13) & _
komputer Anda. Silahkan install & Chr(13) & _
printer terlebih dulu! , vbCritical, _
Printer Belum Diinstall
Exit Sub
Else
End If
If rtfLap.Text = Then
MsgBox Belum ada data yang akan dicetak! & Chr(13) & _
Pilihkategori laporan yang akan Anda & Chr(13) & _
cetak, lalu klik menu Cetak. , vbCritical, _
Data Tidak Ada
Exit Sub
End If
Printer.FontName = Courier New Printer.FontSize = 9
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
61/68
Printer.Print rtfLap.Text
Printer.EndDoc
If MsgBox(Hasil cetakan sudah benar? _
, vbQuestion + vbYesNo, Cetak ) = vbYes Then
End If
Exit Sub
PrintError:
MsgBox Kesalahan nomor: & Err.Number _
& .Keterangan: _
& Err.Description & & Chr(13) & _
& Chr(13) & _
Kemungkinan printer belum diaktifkan & Chr(13) & _
atau kertas habis/belum dipasang! & Chr(13) & _
Nyalakan printer atau pasang kertas, & Chr(13) & _
laluklik menu Cetak kembali! , _ vbCritical, Printer Error
Exit Sub
End Sub
Private Sub TbKeluar_Click()
Unload Me
End Sub
Private Sub TbSimpan_Click()
On Error GoTo Batal With DialogSimpan
.DialogTitle = Simpan sebagai file
.Filter = *.txt|*.txt
.ShowSave
Open .fileName For Output As #1
Print #1, rtfLap.Text
Close #1
End With: Exit Sub
Batal:
Exit Sub
End Sub 15. Module Cetak (mdlCetak) < Variabel
SourceCode
Public Type arrCetak
NIP As String
NamaPegawai As String
TanggalTerima As Date
Jumlah As Long
Tunjangan As Long
Total As Long
End Type
Public tabCetak() As arrCetak
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
62/68
# Tulisan rata kiri
Function RKiri(NData, CFormat) As String
If NData > 0 Then Jika NData bilangan positif
RKiri = Format(NData, CFormat)
RKiri = RKiri + Space(Len(CFormat) Len(RKiri))
Else Jika NData merupakan string kosong
RKiri = Format(NData, CFormat)
RKiri = + Space(Len(CFormat) 1)
End If
End Function
# Tulisan rata kanan
Function RKanan(NData, CFormat) As String
If NData > 0 Then Jika NData bilangan positif
RKanan = Format(NData, CFormat)
RKanan = RKanan + Space(Len(CFormat) Len(RKanan))
Else Jika NData merupakan bilangan nol RKanan = Format(NData, CFormat)
RKanan = Space(Len(CFormat) 1) + 0
End If
End Function
Public Function IsPrinterInstalled() As Boolean
On Error Resume Next
Dim strDummy As String
strDummy = Printer.DeviceName
If Err.Number Then
IsPrinterInstalled = False Else
IsPrinterInstalled = True
End If
End Function 16. Module Utama (mdlUtama)
Sebagai penyambung ke database
SourceCode
Option Explicit
Public KoneksiDB As New ADODB.Connection
Public Rs_Jabatan As ADODB.Recordset
Public Rs_Pegawai As ADODB.Recordset
Public Rs_GajiPokok As ADODB.Recordset
Public Rs_Pengguna As ADODB.Recordset
Public Rs_Penggajian As ADODB.Recordset
Public Rs_CetakPenggajian As ADODB.Recordset
Public Rs_PreviewPengggajian As ADODB.Recordset
Public Rs As ADODB.Recordset
Public StrAkses As String
Public SqlInsert As String
Public SqlDelete As String Public SqlUpdate As String
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
63/68
Public PenggunaID, PenggunaNm As String
Public SQL As String
Public Konfirmasi As String
Public Status As String
Public Sub BukaDatabase()
StrAkses = Provider=Microsoft.Jet.OLEDB.4.0;Persist _
& Security Info=False;Data Source= _
& App.Path + \ DbGaji.mdb
On Error Resume Next
If KoneksiDB.State = adStateOpen Then
KoneksiDB.Close
Set KoneksiDB = New ADODB.Connection
KoneksiDB.Open StrAkses Else
KoneksiDB.Open StrAkses
End If
Set Rs_Jabatan = New ADODB.Recordset
Rs_Jabatan.Open SELECT * FROM Jabatan , _
KoneksiDB, adOpenDynamic, _
adLockBatchOptimistic
Set Rs_Pegawai = New ADODB.Recordset Rs_Pegawai.Open SELECT Pegawai.*, _
& Jabatan.Nama_Jabatan _
& FROM Pegawai, Jabatan WHERE _
& Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan _
& ORDER BY NIP , _
KoneksiDB, adOpenDynamic, _
adLockBatchOptimistic
Set Rs_GajiPokok = New ADODB.Recordset
Rs_GajiPokok.Open SELECT Pegawai.*, _
& Jabatan.Nama_Jabatan _
& FROM Pegawai, Jabatan WHERE _
& Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan _
& AND Pegawai.Gaji_Pokok 0 _
& ORDER BY NIP , _
KoneksiDB, adOpenDynamic, _
adLockBatchOptimistic
Set Rs_Pengguna = New ADODB.Recordset
Rs_Pengguna.Open SELECT * FROM Pengguna , _
KoneksiDB, adOpenDynamic, _ adLockBatchOptimistic
-
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
64/68
Set Rs_Penggajian = New ADODB.Recordset
Rs_Penggajian.Open SELECT * FROM Penggajian , _
KoneksiDB, adOpenDynamic, _
adLockBatchOptimistic
End Sub
Public Function TglSkrg(tgl As Date) As String
TglSkrg = Format(Day(tgl), 00) & / _
& Format(Month(tgl), 00) & / _
& Format(Year(tgl))
End Function 17. DesignerLaporan (DELaporan)
Pilih Project > More ActiveX Designer > Data Environment atau Project >addData Environtment
Hubungkan Data Encirontment dengan databese caranya klik kanan menu Connection >
Properties atauklik icon properties
http://setyawanmartha.files.wordpress.com/2012/12/capture-20121206-201333.jpg -
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
65/68
lalu isikan kolom sesuai denga nam database yang telah dibuat lau klik test connection hingga
munculkotak dialog laluoke
18. Membuat Command
klik kanan connUtama lalu properies
http://setyawanmartha.files.wordpress.com/2012/12/test.jpghttp://setyawanmartha.files.wordpress.com/2012/12/properties.jpghttp://setyawanmartha.files.wordpress.com/2012/12/test.jpghttp://setyawanmartha.files.wordpress.com/2012/12/properties.jpg -
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
66/68
lsikan data dari database sesuai dengan laporan yang akan dibuat
biru = nama command
ornge = jenis sumber data dari database
Kuning = nama tabel databse yang akan diambil datanya
Lalu oke
19. Membuat tampilan laporan
Project > add Data Report
http://setyawanmartha.files.wordpress.com/2012/12/cmdpengguna.jpghttp://setyawanmartha.files.wordpress.com/2012/12/properties.jpghttp://setyawanmartha.files.wordpress.com/2012/12/cmdpengguna.jpghttp://setyawanmartha.files.wordpress.com/2012/12/properties.jpg -
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
67/68
Buka DELapoaran, lakukan drag commnd ke dalam data report
Klik CmdJabata(misal) tahan > tarik dan letakkan di kolom Detail Section 1
atur tampilan hinggan menjadi sepertiini
http://setyawanmartha.files.wordpress.com/2012/12/edit-laporan.jpghttp://setyawanmartha.files.wordpress.com/2012/12/456465418641654564.jpghttp://setyawanmartha.files.wordpress.com/2012/12/edit-laporan.jpghttp://setyawanmartha.files.wordpress.com/2012/12/456465418641654564.jpg -
7/27/2019 Totorial Aplikasi Penggajian Visual Basic
68/68
SourceCode
Private Sub DataReport_Terminate()
rptJenis.Refresh DELaporan.rscmdJabatan.Close
End Sub
Buat Laporan sesuai keinginan anda..
Selamat Mencoba
http://setyawanmartha.wordpress.com/2012/12/06/totorial-aplikasi-penggajian-visual-basic-6-0/
http://setyawanmartha.files.wordpress.com/2012/12/laporan-jabatan.jpghttp://setyawanmartha.files.wordpress.com/2012/12/laporan-jabatan.jpg