tutorial visual basic 6 - database mysql dan adodc
Post on 24-Nov-2015
203 Views
Preview:
DESCRIPTION
TRANSCRIPT
-
\Pemrograman Visual ll- Studi Kasus Penyewaan Mobil -
Kresna Adhi Pratama i PYK
Dadabase: PENYEWAANMOBIL
Struktur Tabel
1. Tabel: anggotaField Type Width
kdanggota CHAR 5nmanggota VARCHAR 25gender CHAR 1alamat VARCHAR 30telepon VARCHAR 15noktp VARCHAR 20
2. Tabel. karyawanField Type Width
kdkaryawan CHAR 5nmkaryawan VARCHAR 25jabatan VARCHAR 5password VARCHAR 15
Tabel:mobilField Type
nopolisi VARCHARnmmobil VARCHARtarif MEDIUMINT
Tabel:sewaField Typenosewa CHARkdanggota CHARkdkaryawan CHAR
Tabel: detailsewaField Typenosewa CHARnopolisi VARCHARtglsewa DATEtglkembali DATEstatus CHAR
PrimaryYes
3.
4.
5.
width82510
width955
widthI8
't
PrimaryYes
PrimaryYes
Primary
PrimaryYes
Form Master Anggota
Kode Program Form Master Anggota
-
Dinn mode As Boolean
Function KodeOtomatisO As StringDim urut As Integer
liet Adodcl.RecordSource = "SELECT * " &"FROM anggota ORDER BY kdanggota"
Adodcl.RefreshDataGridl. Refresh
With Adodcl.RecordsetIf Adodcl.Recordset.RecordCount > 0 Then
.MovelastLet urut = Val(Right(.Fields(O), 4)) + 1
ElseLet urut = I
End IfLet KodeOtomatis = "A" + _
Format(urut, "0000')End With
End Function
Function Cari(kode As String) As BooleanLet Cari = False
Adodcl. Recordset. MoveFi rstAdodcl.Recordset.Find "kdanggota = '' & _
kode & ""', , adSearchForward, 0
lf Adodcl.Recordset. EOF ThenLet Cari = False
ElseLet Cari = True
End IfEnd Function
Private Sub BersihoDim ctrl As Control
For Each ctrl In Me,,,,tf
ttpuOf ctrl Is TextBox Then Let ctrl.Text =If Typeof ctrl Is OptionButton Then Let
ctrl.Value = FalseFlext ctrl
End Sub
Private Sub AktifoDim ctrl As Control
For Each clrl In MeIf TypeOf ctrl Is TextBox Then
_
Let ctrl.Enabled = TrueIf Type0f ctrl Is OptionButton Then
_
Let ctrl.Enabled = Truelflext ctrl
End Sub
Private Sub NonAktifoDim ctrl As Control
For Each ctrl In MeIf TypeOf ctrl Is TextBox Then
_
Let ctrl.Enabled = FalseIf TypeOf ctrl Is OptionButton Then Let
ctrl.Enabled = False
Next ctrlEnd Sub
Private Sub TampiloOn Error Resume Next
With Adodcl.RecordsetLet txtKode,Text = .Fields(O)Let txtNama.Text = .Fields(1)If .Fields(2) = "1" Then
Let OpLaki.Value = TrueElse
Let OpPerempuan.Value = TrueEnd IfLet txtAlamat.Text = .Fields(3)Let txtTelepon.Text = .Fields(4)Let txtKtp.Text = .Fields(5)
End WithEnd Sub
Private Sub cmdBatal_Click( )CallTampilCall NonAktif
Let mode = FalseEnd Sub
Private Sub cmdHapus_ClickoOn Error GoTo ErrCmdHapus
Dim kode As StringDim ada, tanya As Byte
Let kode = InputBox("Ketikan kode anggota:","Hapus Anggota", "")
If Trim(kode) = "" Then Exit SubLet ada = Cari(kode)If ada = True Then
Let tanya = MsgBox("Hapus data?", vbYesNo,"Konfirmasi")
If tanya = vbYes ThenAdodc 1 . Recordset. DeleteMsgBox "Data telah dihapus."
Call BersihCallTampil
End IfElse
MsgBox "Data tidak adal", "Hapus Anggota"End If
Exit Sub
ErrCmdHapus:MsgBox "Data gagal dihapus!"
End Sub
Private Sub cmdKeluar_ClickoUnload Me
End Suh
Private Sub cmdSimpan_Click( )
-
\On Error GoTo ErrCmdSimpan
With Adodcl.Recordsetif mode = True Then .AddNewLet .Fields(O) = txtKode.TextLet .Fields(1) = txtNama.TextIf Oplaki.Value = True Then *
Let 'Fields(2) = "1"If OpPerempuan.Value = True Then
-Let .Fields(2) = "PuLet .Fields(3) = txtAlamat.TextLet .Fields(4) = txtTelepon.TextLet .Fields(5) = txtKtp.Text.Update
End With
llet mode = False
DataGrid 1. RefreshCall NonAktifMsgBox "Data berhasil disimpan."Fxit Sub
ErrtfmdSimpan:MsgBox "Data.tidak berhasil disimpan!"
End Sub
Private Sub cmdTambah-Click( )Let mode = True
Call AktifCall BersihLet txtKode.Text = KodeOtomatis0t-xtNama.SetFocus
End Sub
Private Sub cmdUbah-ClickoDim ada As Boolean
Dim kode As String
Let kode = InputBox("Ketikan kode anggota:", _"Ubah Anggota")
If Trim(kode) = "" Then Exit SubLet ada = Cari(kode)If ada = False Then
MsgBox "Data tidak ditemukan!"Else
Call AktifCallTampiltxtNama.SetFocus
Let txtKode.Enabled = FalseLet mode = False
End IfEnd Sub
Private Sub Form_LoadoLet Adodcl.RecordSource = "SELECT * FROM " &"anggota ORDER BY kdanggota"
Adodcl.Refresh
Let Adodcl.Visible = FalseDataGrid 1 , RefreshCall BersihCall TampilCall NonAktif
End Sub
Private Sub Form_Unload(Cancel As Integer)Dim tanya As Byte
Let tanya = MsgBox("Tutup program?", _vbYesNo, "Konfirmasi")
If tanya = vbNo Then Let Cancel = -1End Sub
Form Master Karyawan
'ttt: xl.
-
\Dirn mode As Boolean
Function KodeOtomatisO As StringDim urut As Integer
Adodcl.RecordSource = "SELECT * FROM '&"karyawan ORDER BY kdkaryawan"
i{dodc1. RefreshDataGrid l.Refresh
With Adodcl.RecordsetIf Adodcl,Recordset.RecordCount > 0 Then
.MoveLastLet urut = Val(Right(.Fields(0), 4)) + 1
ElseLet urut = 1
End IfLet KodeOtomatis = "K" +
-Format(urut, '0000")Fnd With
End Function
Fuerction Cari(kode As String) As BooleanLet Cari = False
,Adodc1. Recordset. MoveFirstAdodcl,Recordset.Find "kdkaryawan = '" &
-kode & ""', , adSearchForward, 0
lf Adodcl. Recordset. EOF ThenLet Cari = False
ElseLet Cari = True
End IfEnd Function
Pri\rate Sub BersihoDim ctrl As Control
lFor Each ctrl In MeIf TypeOf ctrl Is TextBox Or
-Type0f ctrl Is ComboBox Then ctrl.Text =Flext ctrl
End Sub
Priqrate Sub AktifoDim ctrl As Control
For Each ctrl In MeIf TypeOf ctrl Is TextBox Or
-TypeOf ctrl Is ComboBox Then -Let ctrl.Enabled = True
lNext ctrlEnd Sub
Private Sub NonAlGifoDim ctrl As Control
For Each ctrl In MeIf Type0f ctrl Is TextBox Or
-Typeof ctrl Is ComboBox Then -Let ctrl.Enabled = False
Next ctrlEnd Sub
Private Sub Tampilo
On Error Resume Next
With Adodcl.RecordsetLet txtKode.Text = .Fields(0)Let txtNama.Text = .Fields(1)Let cmblabatan.Text = .Fields(2)Let txtPassword.Text = .Fields(3)Let txtKonfirmasi.Text = .Fields(3)
End WithEnd Sub
Private Sub cmdBatal_ClickoCallTampilCall NonAktif
Let mode = FalseEnd Sub
Private Sub cmdCari-ClickoOn Error GoTo ErrCmdCari
Dim kode As StringDim ada As Boolean
Let kode = InputBox("Ketikan kode karyawan:", -
"Cari Data Karyawan", "")If Trim(kode) = "" Then Exit SubLet ada = Cari(kode)If ada = False Then
MsgBox "Data tidak ada!"Else
CallTampilEnd IfExit Sub
ErrCmdCari:MsgBox "Pencarian tidak bisa dilakukanl"
End Sub
Private Sub cmdFirst-Click( )On Error Resume Next
Adodcl . Recordset. MoveFirstCallTampil
End Sub
Private Sub cmdHapus_Click( )On Error GoTo ErrCmdHapus
Dim tanya As ByteLet tanya = MsgBox("Hapus data?", vbYesNo, _
"Hapus Karyawan")If tanya = vbYes Then
Adodcl. Recordset. DeleteAdodcl.RefreshCallTampilMsgBox "Data berhasil dihapus."
End IfExit Sub
ErrCmdHapus:MsgBox "Data gagal dihapusl"
End Sub
-
MsgBox "Data berhasil disimpan,"Prtvate Sub cmdlast-ClickO , Exit Sub
tCn Error Resume NextErrCmdSimpan:
Adodcl.Recordset.MoveLast MsgBox "Data tidak berhasil disimpanl"CallTampil End SubEnd Sub
Private Sub cmdTambah_ClickoPrlvate Sub cmdNext_ClickO ' Call Bersih
On Error Resume Next Call AktiftxtNama.SetFocus
[f Adodc 1. Recordset. EOF ThenMsgBox "Record terakhir." Let txtKode.Enabled = FalseElse Let txtKode.Text = KodeOtomatisOAdodcl.Recordset.MoveNext Let mode = TrueCall Tampil
' End Sub
End IfEnd Sub I Private Sub cmdTutup_Clicko
Unload MePrfrvate Sub cmdPrev-ClickO End Sub
0n Error Resume NextPrivate Sub cmdUbah_Click( )
Sf Adodcl,Recordset.BOF Then Call AktifMsgBox "Record pertama."
Else Let txtKode.Enabled = FalseAdodcl.Recordset.MovePrevious Let mode = FalseCallTampil End Sub
End IfEnd Sub Private Sub Form-Loado
Let Adodcl.RecordSource = "SELECT * FROM' &Pr$vate Sub cmdSimpan-ClickO " karyawan ORDER BY kdanggota"
On Error GoTo ErrCmdSimpan Let Adodcl.Visible = FalseLet txtPassword.PasswordChar = "*"[f txtPassword.Text txtKonfirmasi.Text Then Let txtKonfirmasi.PasswordChar = "*"
MsgBox "Password yang Anda ketikan tidak Let DataGridl.Visible = Falsesesuai l "
Exit Sub cmblabatan.Addltem "ADMIN"End If cmblabatan.Addltem "KASIR"With Adodcl.Recordset Call Tampil
If mode = True Then .AddNew Call NonAktifEnd Sub
Let .Fields(O) = txtKode.TextLet .Fields(1) = txtNama.Text Private Sub Form_Unload(Cancel As fnteger)Let ,Fields(2) = cmblabatan.Text Dim tanya As ByteLet .Fields(3) = txtPassword,Text
Let tanya = MsgBox("Tutup program?", _.Update vbYesNo, "Konfirmasi")
End WithIf tanya = vbNo Then Let Cancel = -1
Call NonAktif End Sub$-et mode = False
Buatlah sebuah moduldengan nama file Modull.bas !
-
-\Kode Program Modull.bas
Put:lic KodeKasir As String
Form Penyewaan dan Pengembalian
: : : : : : : : : : ; : : : : : : : i L i .t*anlterdekatrln- ig8-BooryTdeoontl2nl.ets'Ssd ; : : : : ; : : : : : : : : : : : ,DdaSewa----
Kode Program Form Penyewaan dan Pengembalian
Din:r total, subtotal As Currency
Private Sub SiapkanDatabaseoLet AdoSewa.RecordSource = ''SELECT * FROM
ser',va ORDER BY nosewa"j-et AdoDetsewa,RecrrrdSource = "SELECT * FROMd,elail_sewa WHERE nosewa = "' & txtKdSewa.Text &
Let AdoMobil.RecordSource = "SELECT x FROMmobil WHERE nopolisi NOT IN (SELECT nopolisi FROMdeLail_sewa WHERE status = 'S')"
.et AdoAnggota.Recordsource = 'SELECT * FROManggota ORDER BY kdanggota"
lAdoSewa. RefreshAdoDetSewa. RefreshAdoMobil. Refresh,AdoAnggota . Refresh
End Sub
Private Sub IsiComboo;On Error GoTo ErrlsiCombo
Combol.Clear,AdoMobil. Refresh
With AdoMobil, Recordset. MoveFirstWhile Not .EOF
Combol.AddItem . Fields(0).Value
Nc. Sewa
No Polei h4ul,*
Selesai
t
. MoveNextV/end
End With
ErrlsiCombo:
End Sub
Private Sub AktifoLet txtSub.Enabled = TrueLet txtTotal.Enabled = TrueLet txtKdSewa.Enabled = TrueLet txtKdAnggota.Enabled = TrueLet DataCombol.Enabled = TrueLet DTPMulai.Enabled = TrueLet DTPSelesai.Enabled = True
End Sub
Private Sub NonAktifoLet opSewa.Enabled = FalseLet opKembali.Enabled = FalseLet txtSub.Enabled = FalseLet txtTotal.Enabled = FalseLet txtKdSewa.Enabled = FalseLet txtKdAnggota.Enabled = FalseLet Combol.Enabled = FalseLet DTPMulai.Enabled = FalseLet DTPSelesai.Enabled = False
End Sub
f Fenprrhafian$ub TotdBp.
Iddflp
i lrans*si I it,--.--,.-r----.-_----Z-:
Iextl
IextZ
-
Private Sub Bersihoilet opSewa.Value = False[-et opKembali.Value = Falsefi-et txtsub.Text = ""llet txtTotal.Text = ""ilet txtKdSewa.Text = ""{-et txtKdAnggota.Text = ""
End Sub
Prlvate Sub HitungSubTotaloDim lama As Integer
t-et lama = DTPSelesai.Value - DTPMulai.Valuel-et subtotal = lama * AdoMobil.Recordset.Fields
(2),tlet txtSub.Text = Format(subtotal, " #,# # #.OO")
End Sub
Function KodeOtomatisO As StringDim urut As Byte
With AdoSewa. RecordsetIf.RecordCount>0Then
.MoveLastLet urut = Val(Right(.Fields(O), 3)) + 1
ElseLet urut = 1
End IfFnd With
t-et KodeOtomatis = Format(Now, "yyMMdd") &Forrnat(urut, "000")End Function
Prtoate Sub cmdSelesai_Clicko
With AdoSewa. Recordset.AddNewLet .Fields(0),Value = txtKdSewa.TextLet .Fields(1),Value = txtKdAnggota.TextLet .Fields(2).Value = KodeKasir. Update
End With
Call BersihCall NonAktif
lLet AdoDetSewa,Recordsource = "SELECT * FROMdetrail_sewa WHERE nosewa = "' & txtKdSewa.Text &
AdoDetSewa. RefreshEnd Sub
Prlqrate Sub cmdTambah_Click( )l-et txtKdAnggota,Enabled = False
llet AdoDetSewa.RecordSource = "SELECT x FRoMdebail_sewa WHERE nopolisi = "' & Combol.Text & "'AND status = 'S"'
zAdoDetSewa.Refresh
Ef AdoDetSewa.Recordset.RecordCount > 0 ThenMsgBox "Mobil sudah disewa! Silahkan pilih
mohil lain!"Let AdoDetSewa.RecordSource = "SELECT *
FROM detail_sewa WHERE nosewa = "' &txtKdSewa.Text & ""'
AdoDetSewa, Refresh
Exit SubEnd If
Let AdoDetSewa,RecordSource = "SELECT x FROMdetail_sewa WHERE nosewa = "' & txtKdSewa.Text &
AdoDetSewa.RefreshAdoDetSewa. Recordset. Requery
With AdoDetSewa. Recordset.AddNew. Fields(0).Value = txtKdSewa.Text.Fields(1).Value = Combol.Text.Fields(2).Value = DTPMulai.Value,Fields(3).Value = DTPSelesai.Value.Fields(4),Value = "S",Update
End With
Let total = total + subtotalLet txtTotal.Text = Format(total, " #,# # #.O0")DataGridl.Refresh
End Sub
Private Sub cmdTransaksi_Click( )Call BersihCall NonAktifCall IsiComboLet opSewa.Enabled = TrueLet opKembali.Enabled = True
Let total = 0End Sub
Private Sub Combol_LostFocus( )AdoMobi L Recordset. MoveFi rstAdoMobil.Recordset.Find "nopolisi = "' &
Combol.Text & ""', , adSearchForward, 0Call HitungSubTotal
End Sub
Private Sub DTPSelesai_ChangeoCall HitungSubTotal
End Sub
Private Sub Form_LoadoCall NonAktifCall SiapkanDatabase
End Sub
Private Sub opKembali_ClickoLet txtKdSewa.Enabled = TrueLet txtKdSewa.Text = ""Let opSewa.Enabled = FalsetxtKdSewa . SetFocus
End Sub
Private Sub opSewa_Click( )Let txtKdSewa.Text = KodeOtomatisLet txtKdAnggota.Enabled = TrueLet opKembali.Enabled = FalsetxtKdAn g gota. SetFocus
End Sub
Private Sub txtKdAnggota_KeyPress(KeyAsciiAs Integer)
If KeyAscii = 13 Then
-
AdoAnggota.RecordSource = "SELECTkdanggota FROM anggota WHERE kdanggota = "'& Exit SubtxtKdAnggota.Text & ""' End If
AdoAnggota.RefreshWith AdoSewa. Recordset
If AdoAnggota.Recordset.RecordCount > 0 Then .MoveFirstLet Combol.Enabled = True .Find "nosewa = "' & txtKdSewa.Text & ""', ,Let DTPMulai.Enabled = True adSearchForward, 0Let DTPSelesai.Enabled = True Let txtKdAnggota.Text = .Fields(1).ValueCombol.SetFocus End With
ElseLet Combol.Enabled = False With AdoDetSewa.RecordsetMsgBox "Kode anggota tidak ada!" .MoveFirst
End If While .EOF = FalseEnd If .Fields(4).Value = "K"
End Sub .Update.MoveNext
Prlvate Sub txtKdSewa_KeyPress(KeyAscii As WendInteger) End With
Sf KeyAscii = 13 ThenLet AdoDetSewa.RecordSource = "SELECT *'{ MsgBox "Terima kasihl"
FROM detail sewa WHERE nosewa = "'&txtKdSewa.Text & "' AND status = 'S"' Call BersihAdoDetSewa.Refresh Call NonAktif
If AdoDetSewa.Recordset.RecordCount = 0 Let AdoDetSewa.RecordSource = 'SELECT *Then FROM detail_sewa WHERE nosewa = "' &MsgBox "Tidak ada penyewaan dengan txtKdSewa.T
nornor" &txtKdSewa.Text &"!" AdoDetSewa.RefreshCall Bersih End IfCall NonAktif End Sub
Ga*atan:
. Hubungkan objek Text1, Text2 dan Text3 dengan properti AdoSewa, AdoMobil dan AdoAnggota.
. Objek DBGridl menggunakan Datasource dariobjek AdoDetSewa.
top related