modul vb ti

download modul vb ti

of 20

Transcript of modul vb ti

Pemrograman Visual Basic Lanjut

MODUL 1ACCESS DAN CONTROL ADO FORM ISI DATA BARANG

Buatlah folder pada drive D sesuai dengan nim dan nama anda 1. Masukklah ke dalam ACCESS dan buat database dengan nama Inventory.MDB dan buatlah tabel dengan nama Barang dengan susunan field sbb

2. Simapanlah file tersebut kedalam folder kerja yang telah anda buat tadi kemudian tutuplah MS Access 3. Buka program Visual basic dan ubah aktifkan seting references dengan memilih project kemudian refrences, tandai pada cek box beberapa references sbb

Copyright by Smart 2007

1

Pemrograman Visual Basic Lanjut

4. Tambahkan setting komponen dengan cara klik Project kemudian components, tandai pada cex box components sbb a. b. c. Crystal Report Control Microsoft Ado Data Control 6.0 (OLEDB) Microsoft Datagrid Control 6.0 (OLEDB)

5. Desainlah sebuah Form SBB

6. Settinglah Property sbbNO 1 2 3 4 5 6 7 8 OBJEK Form Label Label Label Label Textbox Textbox Combo Box PROPETIES Name Caption Caption Caption Caption Caption Name Text Name Text Name Text List NILAI Barang Data Barang Master Barang Kode Nama Satuan Txtkode(dikosongkan)

Txtnama(dikosongkan)

Txtsat(dikosongkan) Kilogram Meter Liter

Copyright by Smart 2007

2

Pemrograman Visual Basic Lanjut 9 10 11 12 13 14 15 16 17 18 Datagrid Commandbutto n Commandbutto n Commandbutto n Commandbutto n Commandbutto n Commandbutto n Commandbutto n Commandbutto n Commandbutto n Name Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Datagrid1 Cmdpertama Cmdterakhir >> Cmdbaru Baru Cmdsimpan Simpan Cmdubah Edit Cmdhapus Hapus Cmdexit Tutup

7. Tulis program sbb a. Deklarasi Variabel global Public cn As ADODB.Connection Public rs As ADODB.Recordset Public rs2 As ADODB.Recordset Public statusubah As Boolean b. Prosedur pada saat form loadPrivate Sub Form_Load() Set cn = New ADODB.Connection cn.Provider = "microsoft.jet.oledb.4.0" cn.CursorLocation = adUseClient cn.Open App.Path & "\inventori.mdb" Set rs = New ADODB.Recordset rs.Open "select * from barang order by kode_brg asc", cn, adOpenDynamic, adLockOptimistic If rs.RecordCount = 0 Then Call KondisiRecordKosong Else rs.MoveFirst Call TampilkanData Call KunciTextEditor End If statusubah = False End Sub

c.

Prosedur pada saat form actifPrivate Sub Form_Activate() Set DataGrid1.DataSource = rs End Sub3

Copyright by Smart 2007

Pemrograman Visual Basic Lanjut

d.

Buatlah prosedur dibawah iniSub KondisiRecordKosong() cmdsimpan.Enabled = True cmdbaru.Caption = "Batal" cmdpertama.Enabled = False cmdsebelum.Enabled = False cmdsesudah.Enabled = False cmdterakhir.Enabled = False cmdexit.Enabled = True cmdubah.Enabled = False cmdhapus.Enabled = False txtkode.Locked = False txtnama.Locked = False txtsat.Locked = False txtkode.Text = "" txtnama.Text = "" txtsat.Text = "" End Sub Sub TampilkanData() txtkode.Text = rs.Fields("kode_brg") txtnama.Text = rs.Fields("nama") txtsat.Text = rs.Fields("satuan") txtkode.Enabled = False End Sub Sub KunciTextEditor() txtkode.Locked = True txtnama.Locked = True txtsat.Locked = True End Sub Sub BukaTextEditor() txtkode.Locked = False txtnama.Locked = False txtsat.Locked = False txtkode.Enabled = True txtkode.SetFocus End Sub Sub KondisiMauIsiData() cmdsimpan.Enabled = True cmdpertama.Enabled = False cmdsebelum.Enabled = False cmdsesudah.Enabled = False cmdterakhir.Enabled = False cmdbaru.Caption = "Batal" cmdexit.Enabled = False cmdubah.Enabled = False

Copyright by Smart 2007

4

Pemrograman Visual Basic Lanjutcmdhapus.Enabled = False txtkode.Text = "" txtnama.Text = "" txtsat.Text = "" txtkode.Locked = False txtnama.Locked = False txtsat.Locked = False txtkode.Enabled = True txtkode.SetFocus End Sub Sub KondisiHanyaTampilkan() cmdsimpan.Enabled = False cmdpertama.Enabled = True cmdsebelum.Enabled = True cmdsesudah.Enabled = True cmdterakhir.Enabled = True cmdbaru.Caption = "Baru" cmdubah.Caption = "Ubah" cmdexit.Enabled = True cmdubah.Enabled = True cmdhapus.Enabled = True txtkode.Locked = True txtnama.Locked = True txtsat.Locked = True txtkode.Enabled = False End Sub Sub KondisiMauUbahData() cmdubah.Caption = "Ubah" cmdsimpan.Enabled = True cmdbaru.Caption = "Batal" cmdpertama.Enabled = False cmdsebelum.Enabled = False cmdsesudah.Enabled = False cmdterakhir.Enabled = False cmdexit.Enabled = False cmdubah.Enabled = False cmdhapus.Enabled = False txtkode.Locked = False txtnama.Locked = False txtsat.Locked = False txtkode.Enabled = True txtkode.SetFocus statusubah = True End Sub

e.

Kejadian pada saat txtkode di tekan enterPrivate Sub txtkode_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then txtnama.SetFocus End If End Sub

f.

Kejadian pada saat txtknama di tekan enterPrivate Sub txtnama_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then txtsat.SetFocus

Copyright by Smart 2007

5

Pemrograman Visual Basic LanjutEnd If End Sub

g.

Kejadian pada saat cmdpertama di klikPrivate Sub cmdpertama_Click() If Not rs.BOF Then rs.MoveFirst Call TampilkanData End If End Sub

h.

Kejadian pada saat cmdsebelum di klikPrivate Sub cmdsebelum_Click() rs.MovePrevious If rs.BOF Then rs.MoveNext End If Call TampilkanData End Sub

i.

Kejadian pada saat cmdsesudah di klikPrivate Sub cmdsesudah_Click() rs.MoveNext If rs.EOF Then rs.MovePrevious End If Call TampilkanData End Sub

j.

Kejadian pada saat cmdterakhir di klikPrivate Sub cmdterakhir_Click() If Not rs.EOF Then rs.MoveLast Call TampilkanData End If End Sub

k.

Kejadian pada saat cmdbaru di klikPrivate Sub cmdbaru_Click() If cmdbaru.Caption = "Baru" Then Call KondisiMauIsiData rs.AddNew Else If rs.RecordCount = 0 Then Call KondisiRecordKosong Else If txtkode.Text = "" Then txtkode.SetFocus Else

Copyright by Smart 2007

6

Pemrograman Visual Basic Lanjutrs.CancelUpdate Call TampilkanData Call KondisiHanyaTampilkan End If End If End If statusubah = False End Sub

l.

Kejadian pada saat cmdsimpan di klikPrivate Sub cmdsimpan_Click() If txtkode.Text = "" Or txtnama.Text = "" Or txtsat.Text = "" Then MsgBox "isi semua data yang diberikan", vbExclamation, "Masukan Data" Exit Sub End If If statusubah = False Then Set rs2 = New ADODB.Recordset rs2.Open "select * from barang", cn, adOpenDynamic, adLockOptimistic If rs2.RecordCount 0 Then rs2.MoveFirst rs2.Find ("Kode_brg='" & txtkode.Text & "'") If Not rs2.EOF Then MsgBox "Kode Barang Telah Ada, silahkan isi yang baru", vbInformation, "Mencari data" rs2.Close Exit Sub End If End If End If If rs.RecordCount = 0 Then rs.AddNew End If rs.Fields("kode_brg") = Trim(txtkode.Text) rs.Fields("nama") = Trim(txtnama.Text) rs.Fields("satuan") = Trim(txtsat.Text) rs.Update rs.Requery Call TampilkanData Call KondisiHanyaTampilkan statusubah = False End Sub

m.

Kejadian pada saat cmdubah di klikPrivate Sub cmdubah_Click() Call KondisiMauUbahData End Sub

n.

Kejadian pada saat cmdhapus di klikPrivate Sub cmdhapus_Click() a = MsgBox("Data benar mau di hapus ?", vbYesNo, "Konfirmasi") If a = vbYes Then If rs.RecordCount 0 Then rs.Delete

Copyright by Smart 2007

7

Pemrograman Visual Basic LanjutIf rs.RecordCount = 0 Then Call KondisiRecordKosong Call BukaTextEditor Else Call cmdsebelum_Click End If End If Else Call TampilkanData End If End Sub

o.

Kejadian pada saat cmdexit di klikPrivate Sub cmdexit_Click() rs.Close Unload Me End Sub

Copyright by Smart 2007

8

Pemrograman Visual Basic Lanjut

MODUL 2ACCESS DAN CONTROL ADO FORM ISI DATA SUPLIER 1. Masukklah ke dalam ACCESS dan tambahkan tabel pada database

Inventory.MDB dengan nama Suplier dengan susunan field sbb

2.

Desainlah sebuah Form SBB

Copyright by Smart 2007

9

Pemrograman Visual Basic Lanjut

3. Dengan cara yang sama buatlah program isi data untuk form diatas

MODUL 3ACCESS DAN CONTROL ADO FORM ISI DATA PEMBELIAN 1. Masukklah ke dalam ACCESS dan tambahkan tabel pada database

Inventory.MDB dengan nama MASUK dengan susunan field sbb

2.

Desainlah sebuah Form SBB

Copyright by Smart 2007

10

Pemrograman Visual Basic Lanjut

8. Settinglah Property sbbNO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 OBJEK Form Label Textbox DTPicker Combobox Textbox Textbox Combobox Textbox Textbox Textbox Textbox Textbox Datagrid CommandButto n CommandButto n CommandButto n CommandButto n PROPETIES Name Caption Caption Name Text Name Name Name Text Name Text Name Name Text Name Text Name Text Name Text Name Text Name Name Caption Name Caption Name Caption Name Caption NILAI Beli Data Pembelian Barang ISI BARANG MASUK NOB(dikosongkan)

TGL KDS NAS(dikosongkan)

ALM(dikosongkan)

KDB NMB(dikosongkan)

STO(dikosongkan)

JML(dikosongkan)

HAR(dikosongkan)

TOT(dikosongkan)

Datagrid1 CMDBARUBaru

CMDSIMPANSimpan

CMDUBAHEdit

CMDHAPUSHapus

Copyright by Smart 2007

11

Pemrograman Visual Basic Lanjut 19 20 CommandButto n CommandButto n Name Caption Name Caption CMDCARICari

CMDEXITTutup

9. Tulis program sbb a. Deklarasi Variabel global Public cn As ADODB.Connection Public rsmas As ADODB.Recordset Public SUP As ADODB.Recordset Public rsbar As ADODB.Recordset b. Prosedur pada saat form loadPrivate Sub Form_Load() Set cn = New ADODB.Connection cn.Provider = "microsoft.jet.oledb.4.0" cn.CursorLocation = adUseClient cn.Open App.Path & "\inventori.mdb" Set rsmas = New ADODB.Recordset rsmas.Open "select * from masuk ", cn, adOpenDynamic, adLockOptimistic Set SUP = New ADODB.Recordset SUP.Open "select * from suplier ", cn, adOpenDynamic, adLockOptimistic Set bar = New ADODB.Recordset bar.Open "select * from barang order by kode_brg", cn, adOpenDynamic, adLockOptimistic nomor otomatis Dim Urutan As String Dim Hitung As Byte With rsmas If .RecordCount = 0 Then Urutan = "000001" Else rsmas.MoveLast Hitung = Val(Right(!no_MSK, 6)) + 1 Urutan = Right("000000" & Hitung, 6) End If nob.Text = "P-" & Urutan End With

Copyright by Smart 2007

12

Pemrograman Visual Basic Lanjut' mengisi kode suplier With SUP While Not SUP.EOF a = SUP("KD_SUP") KDS.AddItem a SUP.MoveNext Wend SUP.MoveFirst End With 'mengisi kode barang With bar While Not bar.EOF b = bar("Kode_brg") kdb.AddItem b bar.MoveNext Wend bar.MoveFirst End With

c.

Prosedur pada saat form actifPrivate Sub Form_Activate() Set rsbel = New ADODB.Recordset rsbel.Open "select * from masuk where no_msk= '" & nob.Text & "'", cn, adOpenDynamic, adLockOptimistic Set DataGrid1.DataSource = rsbel cmdubah.Enabled = False cmdhapus.Enabled = False End Sub

d. Kejadian saat combo suplier diklikPrivate Sub KDS_Click() Set rssup = New ADODB.Recordset rssup.Open "Select * from suplier where kd_sup= '" & KDS.Text & "' order by kd_sup asc", cn, adOpenDynamic, adLockOptimistic If Not rssup.EOF Then nas.Text = rssup("nama_sup") alm.Text = rssup("alm_sup") Else MsgBox "Data Kosong", vbExclamation End If

Copyright by Smart 2007

13

Pemrograman Visual Basic LanjutEnd Sub

E Kejadian saat cobo diklikPrivate Sub kdb_Click() Set rsbar = New ADODB.Recordset rsbar.Open "Select * from barang where kode_brg= '" & kdb.Text & "' order by kode_brg asc", cn, adOpenDynamic, adLockOptimistic If Not rsbar.EOF Then nmb.Text = rsbar("nama") sto.Text = rsbar("jumlah") jml.SetFocus Else MsgBox "Data Kosong", vbExclamation End If End Sub

F. Kejadian saat text jml ditekan enterPrivate Sub jml_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then har.SetFocus End If End Sub

G. Kejadian saat text harga ditekan enterPrivate Sub har_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then tot.Text = Val(har.Text) * Val(jml.Text) cmdsimpan.SetFocus End If End Sub H. Kejadian saat tombol baru di klik Private Sub cmdbaru_Click() cmdubah.Enabled = False cmdhapus.Enabled = False cmdsimpan.Enabled = True jml.Text = "" har.Text = "" tot.Text = ""

Copyright by Smart 2007

14

Pemrograman Visual Basic Lanjutkdb.Text = "" nmb.Text = "" sto.Text = "" kdb.SetFocus KDS.Text = "" nas.Text = "" alm.Text = "" Dim Urutan As String Dim Hitung As Byte Set rsbel = New ADODB.Recordset rsbel.Open "Select * from beli adLockOptimistic With rsbel If .RecordCount = 0 Then Urutan = "000001" Else rsbel.MoveLast Hitung = Val(Right(!no_beli, 6)) + 1 Urutan = Right("000000" & Hitung, 6) End If nob.Text = "P-" & Urutan End With Set rsbel = New ADODB.Recordset rsbel.Open "select * from beli where no_beli= '" & nob.Text & "'", cn, adOpenDynamic, adLockOptimistic Set DataGrid1.DataSource = rsbel End Sub I. kejadian saat tobol simpan di klik Private Sub cmdsimpan_Click() If nob.Text = "" Or har.Text = "" Or tot.Text = "" Or jml.Text = "" Or KDS.Text = "" Or kdb.Text = "" Or nmb.Text = "" Then MsgBox "isi semua data yang diberikan", vbExclamation, "Masukan Data" Exit Sub End If rsmas.AddNew rsmas.Fields("no_msk") = Trim(nob.Text) order by no_beli asc", cn, adOpenDynamic,

Copyright by Smart 2007

15

Pemrograman Visual Basic Lanjutrsmas.Fields("kd_sup") = Trim(KDS.Text) rsmas.Fields("kode_brg") = Trim(kdb.Text) rsmas.Fields("jml") = Trim(jml.Text) rsmas.Fields("harga") = Trim(har.Text) rsmas.Fields("total") = Trim(tot.Text) rsmas.Fields("tgl_msk") = tgl.Value rsmas.Update rsmas.Requery Set rsbar = New ADODB.Recordset rsbar.Open "Select * from barang where kode_brg= '" & kdb.Text & "' order by kode_brg asc", cn, adOpenDynamic, adLockOptimistic If Not rsbar.EOF Then j = Val(sto.Text) + Val(jml.Text) rsbar.Fields("jumlah") = j rsbar.Update rsbar.Requery Else MsgBox "Data Kosong", vbExclamation End If Set rsmas = New ADODB.Recordset rsmas.Open "select * from masuk adOpenDynamic, adLockOptimistic Set DataGrid1.DataSource = rsmas a = MsgBox("Masih Ada Barang Lagi.... ?", vbYesNo, "Konfirmasi") If a = vbYes Then jml.Text = "" har.Text = "" tot.Text = "" kdb.Text = "" nmb.Text = "" sto.Text = "" kdb.SetFocus Else jml.Text = "" har.Text = "" tot.Text = "" where no_msk= '" & nob.Text & "'", cn,

Copyright by Smart 2007

16

Pemrograman Visual Basic Lanjutkdb.Text = "" nmb.Text = "" sto.Text = "" kdb.SetFocus KDS.Text = "" nas.Text = "" alm.Text = "" Dim Urutan As String Dim Hitung As Byte With rsmas If .RecordCount = 0 Then Urutan = "000001" Else rsmas.MoveLast Hitung = Val(Right(!no_MSK, 6)) + 1 Urutan = Right("000000" & Hitung, 6) End If nob.Text = "P-" & Urutan End With Set rsmas = New ADODB.Recordset rsmas.Open "select * from masuk where no_msk= '" & nob.Text & "'", cn, adOpenDynamic, adLockOptimistic Set DataGrid1.DataSource = rsmas End If End Sub J. Kejdian saat tombol cari di klik Private Sub cmdcari_Click() Set rsmas = New ADODB.Recordset rsmas.Open "Select * from masuk order by no_msk asc", cn, adOpenDynamic, adLockOptimistic vinput = InputBox("Masukkan no beli yang akan dicari ", "Mencari Data") If vinput "" Then rsmas.MoveFirst rsmas.Find ("no_MSK='" & vinput & "'") If rsmas.EOF Then MsgBox "Data tidak ada ", vbExclamation, "Perhatian" rsmas.MoveFirst Else

Copyright by Smart 2007

17

Pemrograman Visual Basic Lanjutnob.Text = rsmas("no_MSK") KDS.Text = rsmas("kd_sup") kdb.Text = rsmas("kode_brg") tgl.Value = rsmas("tgl_MSK") jml.Text = rsmas("jml") har.Text = rsmas("harga") tot.Text = rsmas("total") Set rsmas = New ADODB.Recordset rsmas.Open "select * from MASUK where no_MSK= '" & nob.Text & "'", cn, adOpenDynamic, adLockOptimistic Set DataGrid1.DataSource = rsmas Set rssup = New ADODB.Recordset rssup.Open "Select * from suplier where kd_sup= '" & KDS.Text & "' order by kd_sup asc", cn, adOpenDynamic, adLockOptimistic If Not rssup.EOF Then nas.Text = rssup("nama_sup") alm.Text = rssup("alm_sup") Else MsgBox "Data Kosong", vbExclamation End If Set rsbar = New ADODB.Recordset rsbar.Open "Select * from barang where kode_brg= '" & kdb.Text & "' order by kode_brg asc", cn, adOpenDynamic, adLockOptimistic If Not rsbar.EOF Then nmb.Text = rsbar("nama") sto.Text = rsbar("jumlah") jml.SetFocus Else MsgBox "Data Kosong", vbExclamation End If cmdubah.Enabled = True cmdhapus.Enabled = True cmdsimpan.Enabled = False End If End If End Sub K. Kejadian saat tombol edit diklik Private Sub cmdubah_Click()

Copyright by Smart 2007

18

Pemrograman Visual Basic LanjutIf nob.Text = "" Or har.Text = "" Or tot.Text = "" Or jml.Text = "" Or KDS.Text = "" Or kdb.Text = "" Or nmb.Text = "" Then MsgBox "isi semua data yang diberikan", vbExclamation, "Masukan Data" Exit Sub End If rsbel.Fields("no_beli") = Trim(nob.Text) rsbel.Fields("kd_sup") = Trim(KDS.Text) rsbel.Fields("kode_brg") = Trim(kdb.Text) rsbel.Fields("jml") = Trim(jml.Text) rsbel.Fields("harga") = Trim(har.Text) rsbel.Fields("total") = Trim(tot.Text) rsbel.Fields("tgl_beli") = tgl.Value rsbel.Update rsbel.Requery Set rsbel = New ADODB.Recordset rsbel.Open "select * from beli where no_beli= '" & nob.Text & "'", cn, adOpenDynamic, adLockOptimistic Set DataGrid1.DataSource = rsbel End Sub L. Kejadian saat tombol hapus di klik Private Sub cmdhapus_Click() a = MsgBox("Data benar mau di hapus ?", vbYesNo, "Konfirmasi") If a = vbYes Then If rsmas.RecordCount 0 Then rsmas.Delete jml.Text = "" har.Text = "" tot.Text = "" kdb.Text = "" nmb.Text = "" sto.Text = "" kdb.SetFocus KDS.Text = "" nas.Text = "" alm.Text = "" Dim Urutan As String Dim Hitung As Byte With rsbel If rsmas.RecordCount = 0 Then Urutan = "000001"

Copyright by Smart 2007

19

Pemrograman Visual Basic LanjutElse rsmas.MoveLast Hitung = Val(Right(!no_MSK, 6)) + 1 Urutan = Right("000000" & Hitung, 6) End If nob.Text = "P-" & Urutan End With Set rsmas = New ADODB.Recordset rsmas.Open "select * from MASUK where no_MSK= '" & nob.Text & "'", cn, adOpenDynamic, adLockOptimistic Set DataGrid1.DataSource = rsmas Else Exit Sub End If Else Exit Sub End If End Sub

Copyright by Smart 2007

20