modul mandiri vb6 indraes keren dasar master_detail 25-12-2011

176
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84 Modul belajar pemograman mandiri .. Indra Erawan Sanjaya VB6 Program Penjualan My emotion….Naruto Update: 1-Desember-2011 Indra erawan sanjaya Dosen programming parttimer, Aktif dalam membangun system untuk system Produksi Penuh ramah, manis, periang, hangat, harmonis, penyayang, seru, lucu, imut, aseek, dll…… Semoga ilmu ini membawa mamfaat & mendapat RIDHO dari ALLAH SWT…… amin

Upload: eko-budi-susilo

Post on 09-Oct-2014

320 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Modul belajar pemograman mandiri .. Indra Erawan Sanjaya

VB6 Program Penjualan

My emotion….Naruto

Update: 1-Desember-2011

Indra erawan sanjaya

Dosen programming parttimer, Aktif dalam membangun system untuk system Produksi Penuh ramah, manis, periang, hangat, harmonis, penyayang, seru, lucu, imut, aseek, dll…… Semoga ilmu ini membawa mamfaat & mendapat RIDHO dari ALLAH SWT…… amin

Page 2: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Page 3: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Hayoooo.. MENIKAH jangan PACARAN.. ^_^

Dengan MENIKAH hati menjadi tenang karena si –yayang- sudah HALAL diapain aja boleh…disentuh, dipegang, diremas,dibejeg bejeg, dilipat dll.. karena menikah Sunnah

Rosul mendapat PAHALA & RIDHO dari Allah SWT bukan pacaran. Bagi pemuda/i yg belum sanggup untuk menikah & ber-tegangan TINGGI dianjurkan

oleh Nabi untuk BERPUASA bukan pacaran.. MENIKAH-lah diusia MUDA (umur 20-25) karena DARAH lagi PANAS-PANAS nya dan

membuat pribadi jadi matang dewasa serta memberikan Semangat juang pantang menyerah..

(saya nikah diumur 25 thn-lg GANTENG GANTENG nya..loh lihat poto

dibawah)

Page 4: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Ane nih.. sekarang & dulu…

Wihhhhhh… nih orang

KEREN banget.. mirip Gue

lagi.., wah pasaran MODEL

bisa turun nih..

Bisa minta Tanda

Tangannya ga yah… atau

Foto bareng dehhh..

Page 5: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Iklan baris dulu….

J U A L A N

Page 6: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Page 7: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Page 8: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Visual Basic 6 Terapan

Membuat program toko:

PENJUALAN &

STOK dg

SQL Server

Page 9: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Page 10: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Page 11: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

*Ngobrol dulu: DATABASE Ngobrol-ngonrol tentang database yang sering digunakan yuuukkkkkkkkkkkkkkkk….

ACCESS Adalah database BUKAN SERVER, database yang mudah, ringan, tidak memerlukan installasi, maintenance database mudah, dll untuk digunakan dalam pemograman. Access juga ada dalam paket Microsoft OFFICE jadi hampir semua computer mempunyai database Access VERSI ACCESS Versi access mulai access 97, 2000, 2002, 2003, 2007 dan seterusnya mengikuti versi ms.Office. Tapi untuk keperluan pemograman database dari pengalaman yang sudah-sudah… lebih baik menggunakan VERSI 2003 (Office 2003) CONTOH SYSTEM Program – program hanya dalam 1 departemen, usaha kecil, UKM, sekalipun lintas dept. tapi tidak memerlukan data yang besar. Contohnya: usaha-usaha kecil, program toko, program untuk service HP, Program penjualan konter, Program gudang, Program apotek, dll

SQL SERVER Adalah database SERVER untuk SKALA MENENGAH ~ BESAR, memang dipersiapkan untuk menangani system yang luas dan komplek. VERSI SQL SERVER Versi SQL server dimulai dari SQL server 7, SQL 2000 versi ini adalah favorit para programmer karena pada versi ini database tidak membutuhkan SPEK KOMPUTER yang tinggi dan TIDAK membutuhkan FRAMEWORK, SQL 2005, SQL 2008 mulai versi 2005 database SQL membutuh spek computer yang tinggi dan membutuhkan FRAMEWORK 2.0 ke-atas VERSI GRATIS SQL SERVER (Express) SQL server mempunyai versi GRATIS… yah benar kita TIDAK PERLU MEMBAYAR LISENCE ke Microsoft karena memang betul2 gratis, bias digunakan untuk edukasi, pribadi ataupun pengembangan system. Yaitu versi SQL 2005 EXPRESS (maximum ukuran database 4 Gb), SQL 2008 EXPRESS (maximum ukuran database 10 Gb) CONTOH SYSTEM Program – program besar yang biasanya sudah lintas dept, melibatkan banyak user. Contoh: program pabrik /perusahaan (penjualan, pembelian, gudang, dll), SAP, dll DATABASE LAINNYA : ORACLE, DB2, MYSQL, POSTGRESQL, FIREBIRD, Dll

Page 12: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

*Ngobrol dulu: DAFTAR JENIS FIELD

Disini menampilkan daftar FIELD yang ada di ACCESS dengan field serupa pada SQL SERVER, ini berguna jika ingin meng-konversi database dari access ke sql server ataupun untuk code2 lainnya. Ini merupakan field2 yang sering digunakan dalam pemograman

No ACCESS SQL SERVER KETERANGAN

1 TEXT VARCHAR Field untuk text. Contoh: nama, kode, alamat, dll

2 DATETIME DATETIME Field untuk tanggal. Contoh: tanggal lahir, tanggal pendaftaran, Tgl pembayaran SMALLDATETIME tahun terbatas DATETIME tahun tidak terbatas

3 AUTONUMBER INT (increment=1)

Field untuk nomer urut otomatis Setiap data bertambah, maka table otomais akan membuat angka urut yg unik

4 NUMBER (DOUBLE)

FLOAT MONEY

Field untuk angka dengan DESIMAL Contoh: harga untuk matauang selain RP, berat barang, subtotal invoice, total penjualan, dll MONEY angka dg 4 desimal FLOAT jumlah decimal bebas (bias angka bulat/ ada decimal nya jad flexible)

5 NUMBER (LONG INTEGER)

FLOAT

Field untuk angka BULAT (tidak ada decimal) Contoh: harga dalam RP, jumlah barang

6 OLE IMAGE

Field untuk menyimpan gambar

Page 13: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

*Ngobrol dulu: KONEKSI VB ke DATABASE

Untuk koneksi VB ke database ada banyak cara lohhhh; 1.dengan OLEDB 2.dengan ODBC ILUSTRASI : OLEDB ILUSTRASI : ODBC (favorit ane nih…)

Visual Basic Database

Code koneksi

database ada

di MODULE

Visual Basic

Database

Code koneksi

database ada

di MODULE

ODBC di control

panel windows

Page 14: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Page 15: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

OLAH DASAR Database SQL Server

a.membuat database b.attach database c.copy file Database ke flashdisk/lokasi lain d.registrasi local komputer

Page 16: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

a.Membuat Database

1.Membuat Database SQL Server

(Klik kanan di database + NEW Database)

2.Mengetik Nama Database

Page 17: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

(Klik NAMA DATABASE nya)

3.Menyimpan Lokasi File Database SQL Server

Klik kotak.. Location, dan pilih folder

untuk simpan database

Page 18: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

4.Membuat TABLE

(Klik kanan di TABLE + pilih NEW TABLE)

5.Input FIELD

(Ketik nama FIELD dan TYPE nya, jika sudah KLIK ICON SAVE)

Page 19: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

6.Input DATA di table

(klik KANAN di table BARANG + OPEN TABLE + RETURN ALL ROWS )

INGAT… input datanya per BARIS , jangan per KOLOM

7.Edit FIELD (modifikasi field : hapus/tambah)

( Klk KANAN di table BARANG + DESIGN TABLE )

Page 20: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

b.Attach Database

Memasukkan file database SQL server kita kedalam Enterprise Manager SQL Server

1

2

Page 21: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

3.ambil file database sql nya (*.MDF)

3

4

Page 22: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

B

5

Page 23: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

c.Copy file db ke flashdisk

Jika ingin meng-copy file database ke FLASHDISK / ke tempat lainnya, langkah sbb:

1.MATIKAN SERVICE SQL SERVER

1

2

3

Page 24: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Service sql sudah mati…. Sekarang tinggal COPY DEH FILE DATABASE SQL nya ke FLASHDISK

Page 25: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

=

Mirip …. Sama2 keren, BEDA tipis..

Ihhhh dosen nya

manis Beuttt..

Dosennya mirip

AFGAN dehh

Page 26: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Page 27: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

VB6. Program Penjualan & Stok Toko

Page 28: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

1.SYSTEM PENJUALAN TOKO

Database SQL Server

Table: BARANG No NAMA FIELD JENIS LEBAR KET

1 KDBARANG VARCHAR 20 PrimaryKey

2 NMBARANG VARCHAR 50

3 HARGA FLOAT

4 STOK FLOAT

Table: CUSTOMER No NAMA FIELD JENIS LEBAR KET

1 KDPELANGGAN VARCHAR 20 PrimaryKey

2 NMPELANGGAN VARCHAR 50

3 ALAMAT VARCHAR 100

4 TELP VARCHAR 50

5 KONTAK_PERSON VARCHAR 50

Isi data sebanyak 5 data

Untuk SQL SERVER jangan lupa untuk MERUBAH LOKASI PENYIMPANAN DATA DATABASE nya

Page 29: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

2.membuat koneksi ODBC

Buka CONTROL PANEL ADMINISTRATION TOOLS ODBC

(Klik tombol ADD )

1

Page 30: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

(Klik SQL SERVER –untuk SQL server 2000--, jika menggunakan SQL2005, pilih SQL NativeClient)

(Ketik NAME ODBC_TOKO ..untuk nama odbc nya,nama ini digunakan dalam MODULE VB)

(Ketik SERVER (local) atau TITIK ―.‖ …karena LOKASI DB di local komp, jika di server,

maka ketik NAMA SERVER nya

2

3

4

5

6

Page 31: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

(Untuk LOCAL, klik NEXT aja, tapi jika DB di SERVER di input USER-PASSWORD nya)

(ketik/ pilih NAMA DATABASE nya –9) NEXT – FINISH - OK

7

8

9

10

Page 32: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Hasil setting ODBC

Muncul nama baru ODBC_TOKO yang baru kita buat

Jika ada MODIFIKASI klik tombol CONFIGURE

Penting 1

Nama Odbc (ODBC_TOKO) akan digunakan dalam MODULE VB, Jadi NAMA ODBC ini akan sama dengan

code koneksi di modul (jangan sampe SALAH)

Penting 2

Nama Odbc (ODBC_TOKO) harus dibuat terlebih dahulu di Komputer nya

Page 33: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Vb6 ADODB

Page 34: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Tehnik pemograman VB database dg AdoDB

3.sekitar ADODB

Tahapan menggunakan ADODB dalam pemograman, Secara umum tahapan Adodb yang biasa kita gunakan dalam CODE sbb :

No Langkah Keterangan

DIFINISI

0 Jangan LUPA meng-aktifkan REFERENSI ADODB nya

Menu= Project + Reference

1 Difinisikan VARIABLE PUBLIC KONEKSI untuk: -Koneksi DATABASE

(code di module) Public Conn As ADODB.Connection

2 Difinisikan VARIABLE PUBLIC TABLE untuk: -Koneksi MEMBUKA TABLE Jumlah VARIABLE tergantung kebutuhan untuk membuka jumlah table nya. Misalnya jika hanya ada 1 table maka VARIABEL juga cukup 1 saja, jika ada 3 table, maka VARIABLE bisa dibuat 3

(code di module) Public Rs As ADODB.Recordset Atau Public Rs_Barang As ADODB.Recordset Public Rs_supplier As ADODB.Recordset

3 Membuat KONEKSI DATABASE di MODULE (code di module) Sub BUKA_DB

PENGGUNAAN, MEMBUKA DATA 4 Panggilah KONEKSI pada saat ingin meng-akses

data/table (Code di Form) Call BUKA_DB

5 Buat SQL Query untuk membaca table/ mengambil data yg diperlukan

Aa=” SELECT……”

6 Aktifkan VARIABEL TABLE Set Rs = New ADODB.Recordset

7 Buka TABLE nya Rs.Open AA, Conn, adOpenStatic, adLockOptimistic

8 ….jika telah selesai, jangan lupa TUTUP KEMBALI variable table nya, agar dapat digunakan kembali

Rs.Close Set Rs = Nothing

Page 35: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

a.ADODB. Aktifkan referensi Buatlah sebuah PROJECT Aktifkan REFERENSI ADODB terlebih dahulu, sbb:

(Klik menu PROJECT + REFERENCES )

[X] Microsoft active data objects 2.8 Library [X] Microsoft active data objects RECORDSET 2.8 Library

Page 36: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

INPUT DATA

BARU

Page 37: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

1.Membuat FORM DASAR: INPUT DATA BARANG

INI adalah FORM DASAR untuk input data baru. Form TIDAK DIGABUNGKAN dengan fungsi-fungsi yang lain, hanya INPUT-SAVE saja.

Setelah MENGERTI, maka fungsi TAMBAH DATA akan digabungkan dengan fungsi-fungsi yang lain (Edit,Delete, Find)

LANGKAH PADA SAAT proses SIMPAN DATA BARU:

1. CEK PRIMARY KEY, apakah data sudah ada? Jika sudah ada

Munculkan pesan & batalkan proses

2. CEK input data ANGKA jika ada input angka (contohnya=

jumlah,harga,stok,dll) apakah user input data nya sudah benar. Gunakan fungsi ISNUMERIC, jika IsNumeric bernilai FALSE artinya user input data angka salah (ada hurufnya), batalkan proses

3. Setelah semua CEK ok, baru data di SIMPAN

Page 38: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Form input data barang baru:

Name:

TOMBOL INPUT, TOMBOL_SAVE, TOMBOL_CANCEL, TOMBOL_CLOSE

DATA BARANG

Page 39: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Membuat

KONEKSI ke SQL server

di MODULE

TAMBAHKAN MODULE : menu PROJECT + MODULE

Page 40: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Ini BUDI ehhhh…salah; ini adalah code untuk koneksi ke database dengan tehnik ODBC

'/----- buat variable PUBLIC untuk KONEKSI dan TABLE (Record) nya '/----- nama variable BEBAS (conn bisa diganti missal: EMBER,PANCI,dll) '/----- variable KONEKSI cukup 1 saja '/----- variable TABLE (Record) BISA LEBIH DARI 1, '/----- tergantung banyak table yang akan digunakan

Public Conn As ADODB.Connection '/ untuk koneksi keDB Public Rs As ADODB.Recordset '/ untuk buka TABLE '/----- ini adalah PROCEDURE untuk koneksi ke database

Sub BUKA_db()

On Error GoTo CEK Set Conn = New ADODB.Connection Conn.CursorLocation = adUseClient '/----- nama ODBC_TOKO harus sama dengan di ODBC CONTROL PANEL '/----- UID, PWD jika database server pake username & password

AA = "DSN=ODBC_TOKO;uid=;pwd=" Conn.Open AA Exit Sub CEK: MsgBox "KONEKSI ke DATABASE ERROR : " & Err.Description, vbCritical End

Page 41: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Code di Form

Code di TOMBOL

Code TOMBOL INPUT

'/-----PANGGIL PROCEDURE UNTUK KOSONGKAN INPUT

CALL KOSONG '/-----HILANGKAN TOMBOL TOMBOL

Me.TOMBOL_input.Visible = False Me.TOMBOL_CLOSE.Visible = False '/-----MUNCULKAN TOMBOL TOMBOL Me.TOMBOL_simpan.Visible = True Me.TOMBOL_cancel.Visible = True '/-----LETAKKAN KURSOR DI KDBARANG

Me.TXT_KDBARANG.SetFocus

Page 42: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Code TOMBOL SAVE

'/ SIMPAN DATA ==============/

'/=====================================/

'/ #1, CEK INPUT DATA PENTING

'/ jika kode barang blm diinput,beri pesan '/=====================================/ If ME.TXT_KDBARANG=‖‖ Then MsgBox "KODE BARANG BELUM DIINPUT", vbInformation Exit Sub End If

'/=====================================/

'/ #2, CEK INPUT ANGKA

'/=====================================/

If IsNumeric(Me.TXT_HARGA) = False Then

MsgBox "INPUT HARGA DENGANA ANGKA", vbInformation Exit Sub End If

If IsNumeric(Me.TXT_STOK) = False Then

MsgBox "INPUT STOK DENGANA ANGKA", vbInformation Exit Sub End If

Page 43: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

'/=========================================================/

'/ CEK '/ #1, CEK PRIMARY KEY TIDAK BOLEH SAMA '/=========================================================/

Call BUKA_db IMUT = "" IMUT = " SELECT * FROM BARANG " & _

" WHERE KDBARANG='" & Trim(Me.TXT_KDBARANG) & "' "

Set Rs = New ADODB.Recordset Rs.Open IMUT, Conn, adOpenStatic, adLockOptimistic

If Not Rs.EOF Then ‗--Apakah data ada?

'/====================================/ '/ KODE SUDAH ADA '/ PROSES DI BATALKAN '/====================================/ MsgBox "KODE BARANG SUDAH ADA..", vbInformation Exit Sub ‗—keluar dari code kembali ke form End If Rs.Close Set Rs = Nothing

Page 44: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

'/===============/ '/ #3, SIMPAN DATA '/===============/ IMUT = ""

IMUT = " SELECT * FROM BARANG " & _

" WHERE KDBARANG='" & Trim(Me.TXT_KDBARANG) & "' "

Set Rs = New ADODB.Recordset Rs.Open IMUT, Conn, adOpenStatic, adLockOptimistic

Rs.AddNew ‘--siapkan data baru Rs("KDBARANG") = Trim(Me.TXT_KDBARANG) Rs("NMBARANG") = Me.TXT_NMBARANG Rs("HARGA") = Me.TXT_HARGA Rs("STOK") = Me.TXT_STOK

Rs.Update ‘—simpan data

Rs.Close ‘—tutup table

Set Rs = Nothing ‘—hapus data dr memori '/=========================================================/ '/ atur kembali tombol tombol '/=========================================================/ '/-----MUNCULKAN TOMBOL TOMBOL

Me.TOMBOL_input.Visible = TRUE Me.TOMBOL_CLOSE.Visible = TRUE

Page 45: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

'/-----MATIKAN TOMBOL TOMBOL Me.TOMBOL_simpan.Visible = FALSE Me.TOMBOL_cancel.Visible = FALSE MsgBox "DATA TELAH DI SIMPAN..", vbInformation

Code TOMBOL CANCEL

'/-----PANGGIL PROCEDURE UNTUK KOSONGKAN INPUT

CALL KOSONG '/-----MUNCULKAN TOMBOL TOMBOL

Me.TOMBOL_input.Visible = False Me.TOMBOL_CLOSE.Visible = False '/-----HILANGKAN TOMBOL TOMBOL Me.TOMBOL_simpan.Visible = True Me.TOMBOL_cancel.Visible = True MsgBox "CANCEL..", vbInformation

Page 46: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Code di FORM

Code : FORM – LOAD

'/-----PANGGIL PROCEDURE UNTUK KOSONGKAN INPUT

CALL KOSONG '/-----MUNCULKAN TOMBOL TOMBOL

Me.TOMBOL_input.Visible = TRUE Me.TOMBOL_CLOSE.Visible = TRUE '/-----HILANGKAN TOMBOL TOMBOL Me.TOMBOL_simpan.Visible = FALSE Me.TOMBOL_cancel.Visible = FALSE

Code PROCEDURE

Procedure untuk mengosongkan input

SUB KOSONG() Me.TXT_KDBARANG = "" Me.TXT_NMBARANG = "" Me.TXT_HARGA = "" Me.TXT_STOK = "" END SUB

Page 47: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Membuat perpindahan

cursor ke textbox berikut

nya Jika di ENTER..

Page 48: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Ilustrasiiiiiiiiiiiiii….

Ada 2 cara tehnik : 1. Menggukan code : SETFOCUS

2. Menggunakan INDEX dan SENDKEYS ―{TAB}‖

Pada sata KURSOR

di TXT_KDBARANG

lalu kita ENTER

maka CURSOR

pindah ke

TXT_NMBARANG

Page 49: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Code di TEXTBOX:

TEHNIK 1: dengan SETFOCUS

Code : TXT_KDBARANG – KEYDOWN

‗/-----Jika di TEKAN ENTER di TXT_KDBARANG, ‗/-----maka cursor pindah ke TXT_NMBARANG

IF KEYCODE=VbKeyReturn THEN

Me.TXT_NMBARANG.Setfocus

END IF

Code : TXT_NMBARANG – KEYDOWN

‗/-----Jika di TEKAN ENTER di TXT_NMBARANG, ‗/-----maka cursor pindah ke TXT_HARGA

IF KEYCODE=VbKeyReturn THEN

Me.TXT_HARGA.Setfocus

END IF

…begitu seterusnya, disemua textbox: TXT_HARGA, TXT_STOK

Page 50: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

TEHNIK 2: dengan TABINDEX

#1, SETTING TABINDEX Aturlah TABINDEX (di properties) masing2 textbox, buat URUT dari input pertama bernilai=1… sampai ke input akhir. Nomer urut ini merupakan URUTAN PERPINDAHAN CURSOR

1

2

Page 51: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

TXT_KDBARANG tabindex = 1 TXT_NMBARANG tabindex = 2 TXT_HARGA tabindex = 3 TXT_STOK tabindex = 4

Begitu seterusnya sampai data terakhir….

#2, CODE DI TEXTBOX

Code : TXT_KDBARANG – KEYDOWN

‗/-----Jika di TEKAN ENTER di TXT_KDBARANG, ‗/-----maka jalankan fungsi ―TAB‖ ‗/-----yg MEMINDAHKAN CURSOR sesuai urutan TABINDEX

IF KEYCODE=VbKeyReturn THEN

SENDKEYS ―{TAB}‖ END IF

3 4

Page 52: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Code : TXT_NMBARANG – KEYDOWN

‗/-----Jika di TEKAN ENTER di TXT_NMBARANG, ‗/-----maka jalankan fungsi ―TAB‖ ‗/-----yg MEMINDAHKAN CURSOR sesuai urutan TABINDEX

IF KEYCODE=VbKeyReturn THEN

SENDKEYS ―{TAB}‖ END IF

Begitu seterus nya… di TXT_HARGA, TXT_STOK

Page 53: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Bagaimana mengatur TOMBOL TOMBOL (Enabled)

Page 54: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

SAAT FORM MUNCUL (form standby): TOMBOL YANG MATI : Tombol SAVE, CANCEL TOMBOL YANG AKTIF: Tombol NEW,EDIT,DELETE,FIND,CLOSE

SAAT TOMBOL INPUT DI KLIK (mau input data baru): TOMBOL YANG MATI : Tombol NEW,EDIT,DELETE,FIND,CLOSE TOMBOL YANG AKTIF: Tombol SAVE, CANCEL

SAAT TOMBOL SAVE (simpan data baru) DI KLIK (data mau di

save): TOMBOL YANG MATI : Tombol SAVE, CANCEL TOMBOL YANG AKTIF: Tombol NEW,EDIT,DELETE,FIND,CLOSE

SAAT TOMBOL CANCEL DI KLIK: TOMBOL YANG MATI : Tombol SAVE, CANCEL TOMBOL YANG AKTIF: Tombol NEW,EDIT,DELETE,FIND,CLOSE

SAAT TOMBOL EDIT DI KLIK (mau rubah data): TOMBOL YANG MATI : Tombol NEW,EDIT,DELETE,FIND,CLOSE TOMBOL YANG AKTIF: Tombol SAVE, CANCEL

Page 55: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

SAAT TOMBOL UPDATE (simpan data yg dirubah) DI KLIK (data

mau di simpan): TOMBOL YANG MATI : Tombol SAVE, CANCEL TOMBOL YANG AKTIF: Tombol NEW,EDIT,DELETE,FIND,CLOSE Code yang digunakan :

Tombol aktif:

TOMBOL_NEW.Enaled=True

Tombol mati:

TOMBOL_NEW.Enaled=False

…Aturlah FORM yang sudah ada, sehingga USER menjadi jelas tombol-tombol mana saja yang

BOLEH DI KLIK atau TIDAK

Page 56: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Page 57: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

2.Cari, Hapus Edit-

Update, data

Page 58: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Cari , Hapus, Edit-Update data

Code di TOMBOL CARIKODE

Code TOMBOL CARI

'/=========================================/ '/ INPUT DATA KODE BARANG YANG DICARI '/=========================================/ Dim CARI CARI = InputBox("INPUT KODE BARANG YANG DICARI :") '/--JIKA TIDAK DI INPUT, MAKA BATALKAN PROSES If CARI = "" Then Exit Sub End If '/--JIKA KODE BARANG DIINPUT, MAKA CARI KODE

Name: TOMBOL_EDIT,

TOMBOL_UPDATE, TOMBOL_DELETE,

TOMBOL_CARI

Page 59: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

'/--buka koneksi ke database Call BUKA_db '/--buka SQL; data barang dg WHERE untuk mencari KODE BARANG KEREN = ""

KEREN = " SELECT * FROM BARANG “ & _

“ WHERE KDBARANG ='" & CARI & "' " Set Rs = New ADODB.Recordset Rs.Open KEREN, Conn, adOpenStatic, adLockOptimistic '/--CEK, APAKAH DATA TIDAK ADA (EOF), '/--jika TIDAK ADA munculkan pesan, jika ADA munculkan DATA ke FORM

If NOT Rs.EOF Then '/--apakah data ada? '/--data kodebarang ada, munculkan ke form Me.TXT_KDBARANG = Rs("KDBARANG") Me.TXT_NMBARANG = Rs("NMBARANG") Me.TXT_HARGA = Rs("HARGA") Me.TXT_STOK = Rs("STOK") Else

'/--data kodebarang TIDAK ADA, beri pesan MsgBox "DATA TIDAK ADA", vbInformation End If Rs.Close Set Rs = Nothing

INFO: IF RS.EOF then Apakah data tidak ada

IF NOT RS.EOF then apakah data ada

Page 60: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Code di TOMBOL DELETE

Code TOMBOL DELETE

'/--- TANYA DULU ---/ KEREN = "" KEREN = MsgBox("APAKAH DATA AKAN DI HAPUS ?", vbQuestion + vbYesNo) If KEREN = vbNo Then Exit Sub End If '/==============================================================/ '/ DATA DI HAPUS ‗/ gunakan perintah sql: DELETE dengan WHERE untuk kreterianya '/==============================================================/ ‗/----- buka koneksi database Call BUKA_db MANIS = ""

MANIS = " DELETE FROM BARANG " & _

" WHERE KDBARANG ='" & Trim(Me.TXT_KDBARANG) & "' " Conn.Execute MANIS '/-- EXECUTE Jalankan langsung perintah SQL MsgBox "DATA TELAH DI HAPUS", vbInformation Call KOsonG '/--panggil procedure untuk kosongkan text

Code di TOMBOL EDIT

Code TOMBOL EDIT

'/--- data KDBARANG adalah PRIMARYKEY yang TIDAK BOLEH BERUBAH '/--- maka pada saat di EDIT, TEXTBOX nya kita MATIKAN

Me.TXT_KDBARANG.Enabled = False ME.Txt_NMBarang.SetFocus '/--- Letakkan kursor

Page 61: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

'/--- ATUR TOMBOL YG MUNCUL Me.TOMBOL_input. VISIBLE = False Me.TOMBOL_simpan. VISIBLE = False Me.TOMBOL_cancel. VISIBLE = False Me.TOMBOL_edit.VISIBLE = False Me.TOMBOL_delete. VISIBLE = False Me.TOMBOL_cari. VISIBLE = False Me.TOMBOL_update. VISIBLE = True

Code di TOMBOL UPDATE

Code TOMBOL UPDATE

'/=========================================================/

'/ #1, CEK INPUT ANGKA dg perintah IsNumeric

'/=========================================================/

If IsNumeric(Me.TXT_HARGA) = False Then

MsgBox "INPUT HARGA DENGAN ANGKA", vbInformation Exit Sub End If

If IsNumeric(Me.TXT_STOK) = False Then

MsgBox "INPUT STOK DENGAN ANGKA", vbInformation Exit Sub End If '/=========================================================/

'/ #2, UPDATE DATA

'/=========================================================/ Call BUKA_db ‘/--buka koneksi ke database

IMUT = ""

Page 62: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

'/ buka data BARANG dg sql: SELECT menggunakan WHERE '/ untuk seleksi/kreteria per KODE BARANG yg akan di update

IMUT = " SELECT * FROM BARANG " & _

" WHERE KDBARANG='" & Me.TXT_KDBARANG & "' "

Set Rs = New ADODB.Recordset

Rs.Open IMUT, Conn, adOpenStatic, adLockOptimistic

'/--- simpan data FORM ke TABLE

Rs("KDBARANG") = Me.TXT_KDBARANG

Rs("NMBARANG") = Me.TXT_NMBARANG

Rs("HARGA") = Me.TXT_HARGA

Rs("STOK") = Me.TXT_STOK

Rs.Update '/ ---UPDATE save

Rs.Close

Set Rs = Nothing MsgBox "DATA TELAH DI UPDATE..", vbInformation '/--- ATUR TOMBOL YG MUNCUL Me.TOMBOL_input. VISIBLE = TRUE Me.TOMBOL_cancel. VISIBLE = TRUE Me.TOMBOL_edit.VISIBLE = TRUE Me.TOMBOL_delete. VISIBLE = TRUE Me.TOMBOL_cari. VISIBLE = TRUE Me.TOMBOL_simpan. VISIBLE = FALSE Me.TOMBOL_update. VISIBLE = FALSE

Page 63: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Page 64: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

3.Menampilkan data dg

LISTVIEW

Page 65: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Menampilkan data dari TABLE ke FORM LISTVIEW

LISTVIEW1

Name: TOMBOL_REFRESH Name: TXT_CARI

Page 66: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

TAMBAH COMPONENT :

[v] Microsoft WINDOWS COMMON CONTROL 6.0 buat LISTVIEW

[v] Microsoft WINDOWS COMMON CONTROL 2.6 buat TANGGAL

Page 67: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Buatlah PROCEDURE

Procedure menampilkan data dari sql ke listview

Sub TABLE_to_LISTVIEW() Call BUKA_db ‘—buka koneksi ke database

KEREN = "SELECT * FROM BARANG " ‘—pilih data barang

Set Rs = New ADODB.Recordset Rs.Open KEREN, Conn, adOpenStatic, adLockOptimistic ‘—buka table dg select..

If Not Rs.EOF Then ‘—cek apakah data nya ada

'/--------------------------------------------------------/ '/SETTING LISTVIEW '/--------------------------------------------------------/ With ListView1 .ListItems.Clear ‘—kosongkan isi listview .ColumnHeaders.Clear ‘—kosongkan judul kolom .View = lvwReport ‘—tampilan listview .FullRowSelect = True ‘—seleksi per baris penuh .GridLines = True .ColumnHeaders.Add , , "KODE BARANG", 1500 ‘—bikin JUDUL KOLOM .ColumnHeaders.Add , , "NAMA BARANG", 2500 ‘—sesuai field nya .ColumnHeaders.Add , , "HARGA", 1000, 1 ‘—1500,2500 =lebar kolom .ColumnHeaders.Add , , "STOK", 1000, 1 ‘—0=rata kiri, 1=kanan, 2=tgh End With '/--------------------------------------------------------/ '/LOOPIING '/MASUKKAN DATA TABEL KE LISTVIEW '/--------------------------------------------------------/

Page 68: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Dim xx As ListItem

While Not Rs.EOF

'/ KET: '/ RS(“kdbarang”) , RS(“Nmbarang”) nama FIELD, '/ IsNULL fungsi untuk cek, apakah data NULL, karena jika NULL listview akan ERROR

Set xx = ListView1.ListItems.Add(, , Rs("KDBARANG")) xx.SubItems(1)=IIf(IsNull(Rs(“NMBARANG”)),"-", Rs("NMBARANG")) xx.SubItems(2) = IIf(IsNull(Rs(“HARGA”)), "-", Rs("HARGA")) xx.SubItems(3) = IIf(IsNull(Rs("STOK")), "-", Rs("STOK"))

Rs.MoveNext ‘/ baca data berikutnya Wend End If Rs.Close Set Rs = Nothing End Sub

Page 69: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Procedure untuk MENAMPILKAN data di LISTVIEW ke FORM jika lisview di KLIK

Sub LISTVIEW_to_FORM() On Error Resume Next With Me.ListView1

Me.TXT_KDBARANG = .SelectedItem.Text ‘/kdbarang Me.TXT_NMBARANG = .SelectedItem.ListSubItems.Item(1) '/nmbarang Me.TXT_HARGA = .SelectedItem.ListSubItems.Item(2) Me.TXT_STOK = .SelectedItem.ListSubItems.Item(3) End With End Sub

Code di TOMBOL Code : TOMBOL REFRESH

'/-----Panggil procedure data table - listview

Call TABLE_to_LISTVIEW

Code di FORM Code : LISTVIEW1 - ItemClik

'/-----Panggil procedure listview KE FORM

Call LISTVIEW_ke_FORM

Page 70: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Page 71: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

4.MENCARI

data INTERAKTIVE

Page 72: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

MENCARI DATA INTERAKTIF (di ketik langsung muncul, filter data langsung)

Data KODE BARANG yang dicari, di KETIK di textbox ini Dan data akan LANGSUNG TER-FILTER di ListView

Name: TXT_CARI

Page 73: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Buatlah PROCEDURE

Ket:Procedure menampilkan data dari sql ke listview secara INTERAKTIF

Sub TABLE_ke_LISTVIEW_INTERAKTIF () Call BUKA_db ‘—buka koneksi ke database

‘-- buka table BARANG dg WHER dan LIKE untuk mencari INTERAKTIF

AA = " select * from BARANG " & _

" where KDBARANG LIKE '" & Me.TXT_CARI & "%' " & _ " order by KDBARANG" Set Rs = New ADODB.Recordset Rs.Open AA, Conn, adOpenStatic, adLockOptimistic ‘—buka table dg select..

If Not Rs.EOF Then ‘—cek apakah data nya ada

'/--------------------------------------------------------/ '/SETTING LISTVIEW '/--------------------------------------------------------/ With ListView1 .ListItems.Clear ‘—kosongkan isi listview .ColumnHeaders.Clear ‘—kosongkan judul kolom .View = lvwReport ‘—tampilan listview .FullRowSelect = True ‘—seleksi per baris penuh .GridLines = True .ColumnHeaders.Add , , "KODE BARANG", 1500 ‘—bikin JUDUL KOLOM .ColumnHeaders.Add , , "NAMA BARANG", 2500 ‘—sesuai field nya .ColumnHeaders.Add , , "HARGA", 1000, 1 ‘—1500,2500 =lebar kolom .ColumnHeaders.Add , , "STOK", 1000, 1 ‘—0=rata kiri, 1=kanan, 2=tgh End With

Page 74: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

'/--------------------------------------------------------/ '/LOOPIING '/MASUKKAN DATA TABEL KE LISTVIEW '/--------------------------------------------------------/ Dim xx As ListItem

While Not Rs.EOF

'/ KET: '/ RS(“kdbarang”) , RS(“Nmbarang”) nama FIELD, '/ IsNULL fungsi untuk cek, apakah data NULL, karena jika NULL listview akan ERROR

Set xx = ListView1.ListItems.Add(, , Rs("KDBARANG")) xx.SubItems(1)=IIf(IsNull(Rs(“NMBARANG”)),"-", Rs("NMBARANG")) xx.SubItems(2) = IIf(IsNull(Rs(“HARGA”)), "-", Rs("HARGA")) xx.SubItems(3) = IIf(IsNull(Rs("STOK")), "-", Rs("STOK"))

Rs.MoveNext ‘/ baca data berikutnya Wend End If Rs.Close Set Rs = Nothing End Sub

Code di TEXTBOX Code : TXT_CARI – Change

Call TABLE_ke_LISTVIEW_INTERAKTIF

Page 75: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Page 76: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

REPORT

Page 77: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Crystal REPORT

Database SQL server 1 tabel dg ODBC

Page 78: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Membuat Report

DAFTAR BARANG Tampilan report:

Page 79: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

KETERANGAN DETAIL REPORT

1 : menambah JUDUL laporannya 2 : menyisipkan gambar 3 : membuat TGL CETAK LAPORAN dan NOMER HALAMAN LAPORAN 4 : membuat GARIS / KOTAK & FORMAT 5 : membuat GARIS PENUTUP PADA AKHIR DATA LAPORAN 6 : FORMAT angka ribuan 7 : FORMAT tanggal 8 : membuat NOMER URUT RECORD

1 2

3

4

5 6 7

8

Page 80: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

SUSUNAN Form & Report

LANGKAH: Untuk membuat REPORT kita mempunyai susunan sbb :

1. MEMBUAT DESIGN CRYSTAL REPORT terlebih dahulu di

Crystal Report

2. lalu.. MEMBUAT FORM REPORT di VB

KONEKSI ODBC:

INGAT kita membuat report menggunakan KONEKSI ODBC, jadi pastikan ODBC nya telah dibuat

Page 81: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

a.Membuat DESIGN REPORT

KETERANGAN RUANG DESIGN:

REPORT HEADER : judul di cetak di halaman-1 (diatas)

PAGE HEADER : judul di cetak DI SEMUA HALAMAN (diatas)

DETAIL : untuk data nya

REPORT FOOTER : keterangan/catatan di cetak di HALAMAN AKHIR DATA LAPORAN (di bawah)

PAGE FOOTER : keterangan/catatan di cetak di DISEMUA HALAMAN (di bawah)

CONTOH DATANYA: REPORT HEADER : cover buku (di cetak hanya 1 x, di awal laporan) PAGE HEADER : judul laporan, nomer halaman DETAIL : untuk data nya REPORT FOOTER : footnote buku (di cetak di akhir, GRANT TOTAL), garis akhir laporan PAGE FOOTER : nomer halaman, catatan kaki, SUBTOTAL per HALAMAN

Page 82: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

b.Langkah bikin Report

1) Buka crystal report

TAMPILAN :

1

2

3

Page 83: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

7

4

5

6

Page 84: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

KLIK TABLE YG AKAN DIGUNAKAN DALAM REPORT (Table Barang), lalu KLIK TOMBOL ADD

8

9

10

11

Page 85: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Hasilnya TABLE BARANG ter-ambil, dan muncul di kota report

PILIH-LAH FIELD yg akan ditampilkan ke report, lalu klik ADD atau ADD ALL (semua field). Jika SUDAH klik TAB STYLE, jangan KLIK TOMBOL NEXT (design report amburadol)

12

13

14

Page 86: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Pilih jenis style report nya, atau STANDARD aja yg biasa2 aja

Selesai…

15

16

Page 87: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

HASIL NYA (masih polos belum di per-cantik) :

PREVIEW

\

DESIGN:

Page 88: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

c.Design report

TOOLBAR UMUM

FIELD EXPLORER sisip NOMER RECORD, NOMER HALAMAN, dll

(ab) Buat bikin JUDUL/ LABEL

(1) Buat bikin GARIS (2) buat bikin KOTAK

(3) buat SISIP GAMBAR

Page 89: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

1.LEBARKAN RUANG PAGE HEADER

LEBARKAN ruang PAGE HEADER buat bikin judul, halaman, kotak, dll

2.AKTIFKAN ruang REPORT FOOTER

AKTIFKAN ruang Report Footer untuk GARIS AKHIR LAPORAN/GRANT TOTAL.

Jika TIDAK DIAKTIFKAN, maka garis/data yg ada didalamnya TIDAK MUNCUL

>>Klik kanan di ruang REPORT FOOTER + DON’T SUPPRESS

Page 90: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

3.Membuat NOMER HALAMAN, NOMER URUT RECORD, TGL CETAK

Membuat NOMER HALAMAN, NOMER URUT RECORD dan TGL PRINT

1. KLIK FIELD EXPLORER 2. Pilihlah SPECIAL FIELD; ambil data yg di perlukan langsung TARIK KE REPORT 3. TARiiiiiiiiiiiiiiiiiiiiiiiikkkkkkkkkkkkkkkkkkkkkk ke report

SPESIAL FIELD YG SERING DIGUNAKAN : Page N of M nomer halaman 1 of 10

Page Number nomer halaman Print Time Cetak jam

Print Date Cetak tanggal Record Number nomer urut data

1

2

3

Page 91: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

4.Insert GAMBAR untuk LOGO

MENU = INSERT + PICTURE

>> Pilih gambar nya + klik TOMBOL OPEN

1

2

4

3

Page 92: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

FORMAT

di Crystal Report : KLIK KANAN di object nya + FORMAT

5. FORMAT ANGKA

>> KLIK KANAN di FIELD HARGA + FORMAT FIELD

1

2

Page 93: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

3

Page 94: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

6. FORMAT TANGGAL (dd-MMM-yyyy)

>> KLIK KANAN di FIELD TANGGAL + FORMAT FIELD

1

2

3

Page 95: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Page 96: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

UKURAN KERTAS (A3,A4,Landscape, Potrait)

>> MENU : FILE + PRINTER SETUP

2

3

1

4

Page 97: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

MARGIN KERTAS

(Margin atas, bawah, kiri, kanan)

>> MENU : FILE + PAGE SETUP

2

3

1

Page 98: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

VB

Page 99: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

VB

FORM REPORT Laporan Barang

>> TAMBAHN COMPONEN CRYSTAL REPORT :

[v] Crystal Report Control

OPTION_SEMUA

OPTION_BY_KODE

OPTION_PREVIRE

OPTION_PRINTER

CRYSTALREPORT1

Page 100: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Code : TOMBOL PRINT

With CrystalReport1

'/---KONEKSI REPORT DG ODBC---/

.ReportFileName = App.Path & "\LAP_BARANG.RPT"

.Connect = "DSN=ODBC_TOKO;UID=sa;PWD=;database=TOKO"

'/---SELEKSI DATA---/ If Me.Option_SEMUA.Value = True Then .SelectionFormula = "" End If If Me.Option_BY_KODE.Value = True Then .SelectionFormula = "{BARANG.KDBARANG}='" & Me.Text1 & "' " End If

'/---TUJUAN PRINT---/ If Me.Option_PREVIEW.Value = True Then .Destination = crptToWindow If Me.Option_PRINTER.Value = True Then .Destination = crptToPrinter

'/---SETINGAN LAINNYA---/ .WindowState = crptMaximized '/--TAMPILAN PENUH .WindowShowRefreshBtn = True '/--TOMBOL REFRESH MUNCUL .Action = 1 '/--JALANKAN REPORT End With

SELESAI…..

Nama report

yg akan di

tampilkan

Seleksi data..

lihat ket. Di

bawah

Page 101: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Ngobrol2 (Info) :

Memfilter laporan

( SELECTIONFORMULA)

.SelectionFormula = "{BARANG.KDBARANG}='" & Me.Text1 & "' "

DI APIT dg KURUNG KURUWAL {}

BARANG.KDBARANG nama TABLE dan nama FIELD seleksi nya

Jika ada 2 kondisi GUNAKAN PERINTAH AND

Page 102: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

HASIL RUNNING :

Page 103: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Page 104: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

VB Dg

Store Procedure SQL Server

Page 105: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

NGOBROL – NGOBROL :

STORE PROCEDURE adalah kumpulan code2 SQL untuk melakukan proses olah data,seperti: Menambah data (INSERT), Merubah data (UPDATE), hapus

data (DELETE), memilih data (SELECT), dll. Jadi VB akan MEMANGGIL store procredure yang ada di SQL Server untuk di

proses selanjutnya di FORM VB;

ILUSTRASI STORE PROCEDURE dan VB

TAHAPAN PENGETIKAN CODE PROGRAM

1. Membuat form VB + Design form + Pengetikan kode VB 2. Membuat STORE PROCEDURE di SQL Server 3. Jalankan VB

Visual Basic SQL SERVER

Store

procedure

(SP)

(1)VB memanggil NAMA SP

(2) SQL menjalankan isi

code dari SP yang

diminta

Atau.. (3) Data hasil SP

diberikan kembali

ke VB

Page 106: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

VB+SP SP input data

(INSERT) &

SP rubah data (UPDATE)

barang

Page 107: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

VB code dasar STORE PROCEDURE

Code di MODULE Ada penambahan 1 variabel untuk STORE PROCEDURE

Public Conn As ADODB.Connection '/ untuk koneksi keDB Public Rs As ADODB.Recordset '/ untuk buka TABLE Public RsCMD As ADODB.Command '/ untuk PANGGIL SP SQL

TOMBOL_input, TOMBOL_save, TOMBOL_update, TOMBOL_cari,

Page 108: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

'/----- ini adalah PROCEDURE untuk koneksi ke database

Sub BUKA_db()

On Error GoTo CEK Set Conn = New ADODB.Connection Conn.CursorLocation = adUseClient

AA = "DSN=ODBC_TOKO;uid=;pwd=" Conn.Open AA Exit Sub CEK: MsgBox "KONEKSI ke DATABASE ERROR : " & Err.Description, vbCritical End

CODE DI FORM CODE TOMBOL-TOMBOL

Code TOMBOL INPUT

'/-----PANGGIL PROCEDURE UNTUK KOSONGKAN INPUT

Me.TXT_KDBARANG = "" Me.TXT_NMBARANG = "" Me.TXT_HARGA = "" Me.TXT_STOK = "" '/-----LETAKKAN KURSOR DI KDBARANG

Me.TXT_KDBARANG.SetFocus

Kalo MODUL sama

aja dg kemaren..

Page 109: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Code TOMBOL SAVE

'/-----PANGGIL DATABASE

Call BUKA_db '/-----PERSIAPKAN COMMAND,KONEKSI,NAMA SP UNTUK STORE PROCEDURE

Set RScmd = New ADODB.Command ‘—aktifkan RScmd RScmd.ActiveConnection = Conn ‘--koneksinya

RScmd.CommandText = "SP_BARANG_INPUT" ‘--nama SP nya

RScmd.CommandType = adCmdStoredProc ‘—jenis storeproc

Set Rs = RScmd.Execute(, Array(Me.TXT_KDBARANG, _

Me.TXT_NMBARANG, _ Me.TXT_HARGA, _ Me.TXT_STOK)) Set RScmd = Nothing MsgBox "DATA TELAH DI SIMPAN..", vbInformation

Sebutkan lokasi TEXTBOX nya,

INGAT urutan ini = dg urutan di

STORE PROCEDURE nya

Page 110: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Code TOMBOL UPDATE,RUBAH DATA

'/-----PANGGIL DATABASE

Call BUKA_db '/-----PERSIAPKAN COMMAND,KONEKSI,NAMA SP UNTUK STORE PROCEDURE

Set RScmd = New ADODB.Command ‘—aktifkan RScmd RScmd.ActiveConnection = Conn ‘--koneksinya

RScmd.CommandText = "SP_BARANG_UPDATE" ‘--nama SP nya

RScmd.CommandType = adCmdStoredProc ‘—jenis storeproc

Set Rs = RScmd.Execute(, Array(Me.TXT_KDBARANG, _

Me.TXT_NMBARANG, _ Me.TXT_HARGA, _ Me.TXT_STOK)) Set RScmd = Nothing MsgBox "DATA TELAH DI SIMPAN..", vbInformation

PERHATIAN…! kode SIMPAN DATA BARU dengan UPDATE DATA hampir sama,

yang beda hanya NAMA STORE PROCEDURE (SP) yang

digunakannya.

Sebutkan lokasi TEXTBOX nya,

INGAT urutan ini = dg urutan di

STORE PROCEDURE nya

Page 111: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

CODE tombol cari sama dengan code latihan sebelumnya..

Code TOMBOL CARI

'/=========================================/ '/ INPUT DATA KODE BARANG YANG DICARI '/=========================================/ Dim CARI CARI = InputBox("INPUT KODE BARANG YANG DICARI :") '/--JIKA TIDAK DI INPUT, MAKA BATALKAN PROSES If CARI = "" Then Exit Sub End If '/--buka koneksi ke database Call BUKA_db '/--buka SQL; data barang dg WHERE untuk mencari KODE BARANG KEREN = ""

KEREN = " SELECT * FROM BARANG “ & _

“ WHERE KDBARANG ='" & CARI & "' " Set Rs = New ADODB.Recordset Rs.Open KEREN, Conn, adOpenStatic, adLockOptimistic '/--CEK, APAKAH DATA TIDAK ADA (EOF), '/--jika TIDAK ADA munculkan pesan, jika ADA munculkan DATA ke FORM

If NOT Rs.EOF Then '/--apakah data ada? '/--data kodebarang ada, munculkan ke form Me.TXT_KDBARANG = Rs("KDBARANG")

INFO: IF RS.EOF then Apakah data tidak ada

IF NOT RS.EOF then apakah data ada

Page 112: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Me.TXT_NMBARANG = Rs("NMBARANG") Me.TXT_HARGA = Rs("HARGA") Me.TXT_STOK = Rs("STOK") Else

'/--data kodebarang TIDAK ADA, beri pesan MsgBox "DATA TIDAK ADA", vbInformation End If Rs.Close Set Rs = Nothing

Page 113: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

CODE STORE PROCEDURE untuk INPUT DATA BARU & UPDATE DATA

Store procedure untuk simpan data baru:

CREATE PROCEDURE SP_BARANG_INPUT @kdbarang varchar(20), @nmbarang varchar(50), @harga float, @stok float AS INSERT INTO BARANG (kdbarang,nmbarang,harga,stok) VALUES(@kdbarang,@ nmbarang,@ harga,@ stok)

Store procedure untuk update data:

CREATE PROCEDURE SP_BARANG_UPDATE @kdbarang varchar(20), @nmbarang varchar(50), @harga float, @stok float AS UPDATE BARANG SET kdbarang=@ kdbarang, nmbarang=@ nmbarang, harga=@ harga, stok=@ stok WHERE kdbarang=@kdbarang

NAMA SP ini (SP_BARANG_INPUT, SP_BARANG_UPDATE) akan di panggil oleh VB

@kdbarang bebas,nama variable Varchar(20),varchar(50),float,float harus sama dg masing2 jenis field table nya.

BARANG(kdbarang..) nama table+field nya

@kdbarang bebas,nama variable Varchar(20),varchar(50),float,float harus sama dg masing2 jenis field table nya.

BARANG nama table KDBARANG,NMBARANG,HARGA,STOK nama field

Page 114: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

a.LANGKAH MENGETIK STORE PROCEDURE dg

ENTERPRISE MANAGER

Buka enterprise manager :

Lalu muncul kotak store procedure.. Ketikan code SP nya

Klik kanan di StoreProcedure

+ NEW store procedure

Page 115: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Catatan: perintah GO tidak perlu di ketik, karena OTOMATIS akan

muncul diberikan oleh SQL

(1) Ketik code SP nya disini

(2) jika sudah selesai ,KLIK

TOMBOL CHECK SYNTAX untuk cek

apakah code SP ada Error/tidak

(3) jika code

OK, klik

tombol OK

Page 116: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

b.LANGKAH meng-EDIT CODE SP

langkahnya untuk merubah code SP

KLIK 2X di Nama SP nya

c.LANGKAH meng-RUBAH NAMA SP

1. Klik kanan di NAMA SP nya + RENAME

2. Rubahlah nama nya

3.Editlah / KLIK 2x SP nya 4. Rubahlah NAMA SP nya, yang di CREATE PROCEDURE ….. (sesuai dg nama

di nomer.2) 5.Klik tombol OK

d.LANGKAH meng-HAPUS SP

1.Klik kana di nama SP + DELETE 2. Klik tombol DROP ALL

Page 117: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Page 118: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

VB

dan

PROSES TRANSAKSI

Page 119: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

SQL Server

Page 120: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

SYSTEM PENJUALAN TOKO Database SQL Server

BARANG No NAMA FIELD JENIS LEBAR KET

1 KDBARANG VARCHAR 20 PrimaryKey

2 NMBARANG VARCHAR 50

3 HARGA FLOAT

4 STOK FLOAT

CUSTOMER No NAMA FIELD JENIS LEBAR KET

1 KDPELANGGAN VARCHAR 20 PrimaryKey

2 NMPELANGGAN VARCHAR 50

3 ALAMAT VARCHAR 100

4 TELP VARCHAR 50

5 KONTAK_PERSON VARCHAR 50

Isi data sebanyak 5 data

BELI No NAMA FIELD JENIS LEBAR KET

1 NO_BELI VARCHAR 20 PrimaryKey

2 TGL DATETIME

3 KDBARANG VARCHAR 20

4 JUMLAH FLOAT

Page 121: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

JUAL No NAMA FIELD JENIS LEBAR KET

1 NO_JUAL VARCHAR 20 PrimaryKey

2 TGL DATETIME

3 KDPELANGGAN VARCHAR 20

4 TOTAL_JUAL FLOAT

5 PAJAK FLOAT

6 GRANT_TOTAL FLOAT

JUAL_DETAIL No NAMA FIELD JENIS LEBAR KET

1 NO_JUAL VARCHAR 20

2 KDBARANG VARCHAR 20

3 NMBARANG VARCHAR 20

4 JUMLAH FLOAT

5 HARGA FLOAT

6 SUBTOTAL FLOAT

7 NO_URUT INT (Identity=YES)

PRIMARY KEY (auto-number)

Page 122: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

TRANSAKSI DASAR

(>=2 table)

Page 123: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

NGOBROL - NGOBROL : Ada sebagian form yang menggunakan PROSES UPDATE BERTAMBAH atau BERKURANG pada saat menyimpan data. Contohnya:

BANK: Pada saat kita menarik uang di ATM, maka SALDO akan berkurang

ada 2 data:

(2) data penarikan uang [tgl,no.rekening,jumlahnya]. (3) Update SALDO nasaban BERKURANG

Atau pada saat kita menabung, maka SALDO akan bertambah

STOK: Pada saat kita membeli barang di TOKO, maka stok barang di toko tsb akan berkurang

Ada 2 data yg terlibat

Page 124: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

CICILAN CREDIT: Pada saat kita membayar CICILAN CREDIT misalnya cicilan motor, maka HUTANG ke dealer juga akan berkurang.

Jadi TRANSAKSI2 tsb pada saat simpan data melakukan

2x proses:

(1)simpan data transaksi nya (2)update data yang di perlukan

Page 125: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

NGOBROL - NGOBROL lagi…:

Pada proses TRANSAKSI tsb terkadang

TIDAK BOLEH

ADA PROSES BATAL (Cancel) atau HAPUS TRANSAKSI (Delete). Jadi proses yang ada HANYA INPUT-SAVE saja.. Contohnya:

BANK Pengambilan uang di ATM, setelah uang kita ambil dari ATM, bisa kah kita membatalkan transaksinya? Uang kita diMASUKKAN kembali ke ATM nya…. (Ngakak mode on)

BELANJA Setelah kita membayar belanja kita di kasir (Goro, matahari, dll) bisakah kita membatalkan belanja nya?

BELI BENSIN-PERTAMAX Setelah bensin masuk ke motor/mobil & kita telah membayar nya.. apakah TRANSAKSI tsb bisa di batalkan ??? jika BISA gimane caranyeeeee ???

Page 126: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

PERINTAH SQL untuk PROSES UPDATE :

Berkaitan dengan proses transaksi update, maka SQL

mempunyai perintah untuk Update table, perintah sbb:

Contoh2 proses update:

BANK; ambil uang di ATM, saldo akan berkurang UPDATE nasabah SET saldo=saldo-100000 WHERE no_rek=’001’

BELANJA; bayar kasir, stok barang berkurang

UPDATE barang SET stok=stok-5 WHERE kode_brg=’B001’

UPDATE nama_table_nya SET nama_field_yg_diupdate = nilainya WHERE nama_field_kunci=nilainya

Page 127: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Page 128: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

TRANSAKSI DASAR STOK

Pembelian barang &

Update stok barang +

“..karena stok barang di took sudah hamper habis, maka toko membeli barang-barang ke glodok,

setelah tiba di rumah maka barang2 tsb di input kedalam system..”

Page 129: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

FORM :

PEMBELIAN dan UPDATE STOK + Keterangan: kita sbg pemilik toko, telah belanja ke manggadua berbagai macam barang

& kita MENG-INPUT PEMBELIAN barang2 tsb kedalam system

KETERANGAN pada saat SAVE

SImpan data transaksi di table BELI

UPDATE stok barang di table barang

TOMBOL_NEW, TOMBOL_SAVE, TOMBOL_CANCEL, TOMBOL_CLOSE

Page 130: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

JANGAN LUPA CODE KONEKSI KE SQL SERVER

DI MODULE:

Code di MODUL untuk difinisi KONEKSI DATABASE, dan fungsi2 umum lainnya

Public Conn As ADODB.Connection ‘/--var.untuk koneksi DB Public Rs As ADODB.Recordset ‘/--var.untuk membuka TABLE

Sub BUKA_db_SQL()

On Error GoTo CEK Set Conn = New ADODB.Connection Conn.CursorLocation = adUseClient ‘/----- nama ODBC_TOKO harus sama dengan di ODBC CONTROL PANEL ‘/----- UID, PWD jika database server pake username & password

AA = “DSN=ODBC_TOKO;uid=;pwd=” Conn.Open AA Exit Sub CEK: MsgBox “KONEKSI ERROR : “ & Err.Description, vbCritical End

Kalo MODUL sama

aja dg kemaren..

Page 131: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Code di Form

Buat Procedure

Procedure untuk mengisi combo dg KDBARANG

Sub ISI_COMBO_BARANG() Call BUKA_db_SQL MANIS = “” MANIS = “ SELECT * FROM BARANG ORDER BY KDBARANG” ‘/---Buka table BARANG, looping isi data KDBARANG kedalam COMBOBOX---/ Set Rs = New ADODB.Recordset Rs.Open MANIS, Conn, adOpenStatic, adLockOptimistic If Not Rs.EOF Then ‘/---siapkan looping untuk membacan data While Not Rs.EOF ‘/---MASUKKAN KDBARANG kedalam COMBO1---/

Me.Combo1.AddItem Rs(“KDBARANG”) Rs.MoveNext Wend End If Rs.Close Set Rs = Nothing End Sub

CODE STANDARD

untuk ISI COMBO

dg Table

Page 132: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Procedure untuk menampilkan DATA BARANG saat Combo1 (KDBarang) di CLICK

Sub MUNCULIN_DATA_BARANG() Call BUKA_db_SQL ‘/---Buka table BARANG, CARI berdasarkan KDBARANG---/

KEREN = “” KEREN = “ SELECT * FROM BARANG “ & _ “ WHERE KDBARANG=’” & Me.Combo1 & “’ “ Set Rs = New ADODB.Recordset Rs.Open KEREN, Conn, adOpenStatic, adLockOptimistic If Not Rs.EOF Then ‘/---MUNCULKAN DATA YG DIPERLUKAN : NAMA BARANG , STOK ---/

Me.Text2 = Rs(“NMBARANG”) Me.Text3 = Rs(“STOK”) End If Rs.Close Set Rs = Nothing End Sub

CODE STANDARD

untuk MENAMPILKAN

data

Page 133: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

CODE di FORM

Code : FORM – LOAD

‘/---KOSONGKAN TEXTBOX---/ Me.Text1 = “” Me.Text2 = “” Me.Text3 = “” Me.Text4 = “” ‘/---ATUR TOMBOL---/ Me.TOMBOL_new.VISIBLE = True Me.TOMBOL_save. VISIBLE = False Me.TOMBOL_cancel. VISIBLE = False Me.TOMBOL_close. VISIBLE = True Call ISI_COMBO_BARANG

Code : COMBO1 – CLICK

‘/---Panggil procedure untuk menampilkan data barang---/

Call MUNCULIN_DATA_BARANG

Page 134: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Code di TOMBOL

Code : TOMBOL NEW

‘/---KOSONGKAN TEXTBOX---/ Me.Text1 = “” Me.Text2 = “” Me.Text3 = “” Me.Text4 = “” Me.DTPicker1.Value = Date Me.Text1.SetFocus ‘/---ATUR TOMBOL---/ Me.TOMBOL_new.VISIBLE = False Me.TOMBOL_save. VISIBLE = True Me.TOMBOL_cancel. VISIBLE = True Me.TOMBOL_close. VISIBLE = False

Code : TOMBOL CANCEL

‘/---KOSONGKAN TEXTBOX---/ Me.Text1 = “” Me.Text2 = “” Me.Text3 = “” Me.Text4 = “” MsgBox “BATAL..”, vbInformation ‘/---ATUR TOMBOL---/ Me.TOMBOL_new. VISIBLE = True Me.TOMBOL_save. VISIBLE = False Me.TOMBOL_cancel. VISIBLE = False Me.TOMBOL_close. VISIBLE = True

Page 135: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Code : TOMBOL SAVE

‘/ CEK 1 : PRIMARY KEY.code sama dg sebelumnya

‘/ CEK 2 : INPUT ANGKA. code sama dg sebelumnya

‘/---------------------------------------------------------/

‘/ PROSES 1: SIMPAN TRANSAKSI

‘/---------------------------------------------------------/ AA = “”

AA = “ SELECT * FROM BELI “ & _

“ WHERE NO_BELI=’” & Me.Text1 & “’ “ Set Rs = New ADODB.Recordset Rs.Open AA, Conn, adOpenStatic, adLockOptimistic

Rs.AddNew

Rs(“NO_BELI”) = Me.Text1 Rs(“TGL”) = Me.DTPicker1.Value Rs(“KDBARANG”) = Me.Combo1 Rs(“JUMLAH”) = Me.Text4

Rs.Update

Rs.Close Set Rs = Nothing

Page 136: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

‘/--------------------------------------------------------/

‘/ PROSES 2: UPDATE STOK +

‘/--------------------------------------------------------/ IMUT = “” IMUT = “ UPDATE BARANG “ & _

“ SET STOK=STOK +” & Text4 & _

“ WHERE KDBARANG=’” & Combo1 & “’ “

Conn.Execute IMUT MsgBox “OK”, vbInformation ‘/---KOSONGKAN TEXT---/ Me.Text1 = “” Me.Text2 = “” Me.Text3 = “” Me.Text4 = “” ‘/---ATUR TOMBOL---/ Me.TOMBOL_new.VISIBLE = True Me.TOMBOL_save. VISIBLE = False Me.TOMBOL_cancel. VISIBLE = False Me.TOMBOL_close. VISIBLE = True

Nah…. Ini PROSES

update transaksinya..

TEXT4 jumlah brg COMBO1 kodebrg

“..tambahkan stok yg

kdbarang nya= combo1..

Page 137: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Page 138: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

LATIHAN - LATIHAN

TRANSAKSI DASAR

Latihan TRANSAKSI BANK: Nasabah menabung (Saldo bertambah),

Pengambilan uang di ATM (Saldo berkurang)

Latihan PEMBAYARAN CICILAN CREDIT MOTOR: Pembayaran credit cicilan motor (hutang berkurang)

Page 139: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Page 140: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

LOGIN & MENU

LOGIN adalah form security untuk masuk kedalam system. Jika User tidak mengetahui USER dan PASSWORD nya, maka user tidak dapat masuk ke system… (gitu lohhhhh)

LOGIN ada 2 tehnik :

(1) Login dengan USER dan PASSWORD sudah FIX ditentukan oleh programmer, dan TIDAK DAPAT dirubah-ubah. Misalnya untuk masuk ke system dibutuhkan

USER=INDRAES ,PASSWORD=KEREN.. maka INDRAES dan KEREN tidak dapat dirubah-ubah ( )

(2) Login dengan USER dan PASSWORD FLEXIBEL , jika LOGIN flexible maka masing2 user mempunyai USER dan PASSWORD untuk masuk ke system. Tehnik ini

membutuhkan TABLE USER_PASSWORD untuk input/menyimpan nama user dan passwordnya..

JALANKAN FORM LOGIN :

Setiap kali system muncul/jalan, maka FORM LOGIN selalu MUNCUL #1

Page 141: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Page 142: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

TRANSAKSI

Master Detail

(1-many)

Page 143: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Page 144: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

FORM MASTER DETAIL penjualan

MSHFlexGrid1

TXT_NOMER

Page 145: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

CODE di MODUL

Code di MODUL untuk difinisi KONEKSI DATABASE, dan fungsi2 umum lainnya

Public Conn As ADODB.Connection ‘/--var.untuk koneksi DB Public Rs As ADODB.Recordset ‘/--var.untuk membuka TABLE

Sub BUKA_db_SQL()

On Error GoTo CEK Set Conn = New ADODB.Connection Conn.CursorLocation = adUseClient

AA = “DSN=ODBC_TOKO;uid=;pwd=” Conn.Open AA Exit Sub CEK: MsgBox “KONEKSI ERROR : “ & Err.Description, vbCritical End

Kalo MODUL sama

aja dg kemaren..

Page 146: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

PROCEDURE di FORM

Code : Procedure Procedure Untuk seting/ format grid

Sub SETTING_flexgrid() With Me.MSHFlexGrid1 .Clear .Cols = 6 ‘/ ada 6 kolom: No,Kode,Nama,Harga,Jumlah,Subtotal .Rows = 50 ‘/ buat 50 baris barang (secukupnya) .AllowUserResizing = flexResizeColumns .SelectionMode = flexSelectionByRow .FormatString = "No|Kode barang |Nama barang |Harga |Jumlah |Subtotal " '/ bikin nomer urut barang buat input data barang For Nomer = 1 To .Rows - 1 .TextMatrix(Nomer, 0) = Nomer Next End With End Sub

Page 147: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Untuk mengisi COMBO customer

Sub ISI_CUSTOMER() Me.CMB_customer.Clear x = "SELECT * FROM CUSTOMER ORDER BY KDPELANGGAN" Set RS = New ADODB.Recordset RS.Open x, Conn, adOpenStatic, adLockOptimistic If not RS.Eof Then While Not RS.EOF Me.CMB_customer.AddItem RS("KDPELANGGAN") RS.MoveNext Wend End If RS.Close Set RS = Nothing End Sub

Untuk mengisi COMBO BARANG dengan KODE

Sub ISI_BARANG() Me.CMB_barang.Clear x = "SELECT * FROM BARANG ORDER BY KDBARANG" Set RS = New ADODB.Recordset RS.Open x, Conn, adOpenStatic, adLockOptimistic If not RS.Eof Then While Not RS.EOF Me.CMB_barang.AddItem RS ("KDBARANG") RS.MoveNext Wend End If RS.Close Set RS = Nothing End Sub

Page 148: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Untuk menghitung total PO

Sub HITUNG_total_penjualan() On Error Resume Next DIM ttl, xx xx = 0 ttl = 0 With Me.MSHFlexGrid1 For brs = 1 To .Rows - 1 xx = .TextMatrix(brs, 5) ‘/ 5=adalah KOLOM SUBTOTAL If IsNull(xx) = True Then xx = 0 ttl = ttl + xx Next End With Me.TXT_total = ttl ‘/ hitung TOTAL BELANJA Me.TXT_pajak = ttl * 10/100 Me.TXT_grant_total = ttl + (ttl * 10/100) End Sub

Untuk menampilkan informasi BARANG saat COMBO BARANG di KLIK

Sub CARI_NAMA_BARANG()

On Error Resume Next x = "" x = " SELECT * FROM BARANG" x = x & " WHERE KDBARANG='" & Me.CMB_barang & "' " Set RS = New ADODB.Recordset RS.Open x, Conn, adOpenStatic, adLockOptimistic If NOT RS.Eof Then Me.TXT_namabarang = RS ("NMBARANG") ‘/ munculkan NAMA BARANG Me.TXT_harga = RS ("HARGA") ‘/ munculkan HARGA End If RS.Close Set RS = Nothing End Sub

Page 149: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Unutk mencari menampilkan DATA CUSTOMERT saat COMBO di KLIK

Sub CARI_NAMA_CUSTOMER() On Error Resume Next x = "" x = " SELECT * FROM CUSTOMER " x = x & " WHERE KDPELANGGAN='" & Me.CMB_customer & "' " Set RS = New ADODB.Recordset RS.Open x, Conn, adOpenStatic, adLockOptimistic If NOT RS.Eof Then Me.TXT_namacustomer = RS ("NMPELANGGAN") ‘/ munculkan NAMA CUST End If RS.Close Set RS = Nothing End Sub

Sub KOSONG() Me.TXT_no_penjualan = "" Me.DTPicker1.Value = Date Me.CMB_customer = "" Me.TXT_namacustomer = "" Me.TXT_nomer = "1" ' /---> 1 UNTUK BARIS KE-1 DI GRID.. POSISI PERTAMA Me.CMB_barang = "" Me.TXT_namabarang = "" Me.TXT_harga = 0 Me.TXT_qty = 0 Me.TXT_subtotal = 0 Me.TXT_total = 0 Me.TXT_pajak = 0 Me.TXT_grant_total = 0 End Sub

Page 150: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Code2 di FORM

FORM - LOAD Call BUKA_dB Call KOSONG Call SETTING_flexgrid ‘/ setting grid Call ISI_BARANG ‘/ isi combo barang Call ISI_CUSTOMER ‘/ isi combo customer

Code di COMBO, TEXT, GRID

COMBO CUSTOMER - CLICK Call CARI_NAMA_CUSTOMER

COMBO KODE BARANG - CLICK Call CARI_NAMA_BARANG

TXT_QTY - CHANGE On Error Resume Next Me.TXT_subtotal = Me.TXT_harga * Me.TXT_qty

Page 151: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

MSHFlexGrid1 - CLICK '/------------------------------------------------------/ '/ MUNCULKAN GRID ke FORM '/------------------------------------------------------/ On Error Resume Next With Me.MSHFlexGrid1 Me.TXT_nomer = .TextMatrix(.Row, 0) Me.CMB_barang = .TextMatrix(.Row, 1) Me.TXT_namabarang = .TextMatrix(.Row, 2) Me.TXT_harga = .TextMatrix(.Row, 3) Me.TXT_qty = .TextMatrix(.Row, 4) Me.TXT_subtotal = .TextMatrix(.Row, 5) End With

Code di TOMBOL-TOMBOL

TOMBOL : INPUT PENJUALAN BARU Call KOSONG Call SETTING_flexgrid Me.TXT_no_penjualan.SetFocus

TOMBOL SIMPAN PENJUALAN If Me.TXT_no_penjualan = "" Then MsgBox "NO.PENJUALAN HARUS DI ISI..!", vbCritical Exit Sub

Page 152: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

End If '-----hitung lagi------' Call HITUNG_total_penjualan '-----cek apakah NO_PENJUALAN sama/double-----' x = "" x = "SELECT * FROM JUAL “ & _ “ WHERE NO_JUAL='" & Me.TXT_no_penjualan & "' " Set RS = New ADODB.Recordset RS.Open x, Conn, adOpenStatic, adLockOptimistic If NOT RS.EOF Then MsgBox "NOMER PENJUALAN SUDAH ADA..!", vbCritical RS.Close Set RS = Nothing Exit Sub Else '-----jika nomer baru, maka simpan data HEADER RS.AddNew RS!NO_JUAL = Me.TXT_no_penjualan RS!TGL = Me.DTPicker1.Value RS!KDPELANGGAN = Me.CMB_customer RS!TOTAL_JUAL = Me.TXT_total RS!PAJAK = Me.TXT_pajak RS!GRANT_TOTAL = Me.TXT_grant_total RS.Update End If RS.Close Set RS = Nothing '----- simpan BARANG /detail, '----- gunakan LOOPING untuk baca BARIS KE-1 s/d bawah With Me.MSHFlexGrid1 For BB = 1 To .Rows - 1

Page 153: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

'-----cek apakah data di isi-----' If .TextMatrix(BB, 1) <> "" Then '-----simpan detail nya boooo-----' x = " SELECT * FROM PENJUALAN_D" Set RS = New ADODB.Recordset RS.Open x, Conn, adOpenStatic, adLockOptimistic RS.AddNew RS!NO_JUAL = Me.TXT_no_penjualan RS!KDBARANG = .TextMatrix(BB, 1) '--kolom 1 >kdbarang RS!NMBARANG = .TextMatrix(BB, 2) '--kolom 2 >NMbarang RS!HARGA = .TextMatrix(BB, 3) '--kolom 3 >harga RS!JUMLAH = .TextMatrix(BB, 4) '--kolom 4 >jumlah RS!SUBTOTAL = .TextMatrix(BB, 5) '--kolom 5 >subtotal RS.Update RS.Close Set RS = Nothing End If Next End With MSGBOX “Data penjualan telah di simpan..”

TOMBOL : CANCEL PENJUALAN Call KOSONG Call SETTING_flexgrid MsgBox "BATAL..", vbInformation

TOMBOL : CARI PENJUALAN dt = InputBox("INPUT NO.PENJUALAN :") If dt = "" Then Exit Sub

Page 154: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

End If Call SETTING_flexgrid '-----cari header-----' q = "" q = q & " SELECT * FROM JUAL " q = q & " WHERE NO_JUAL='" & dt & "' " Set RS = New ADODB.Recordset RS.Open q, Conn, adOpenStatic, adLockOptimistic If RS.EOF Then MsgBox "DATA TIDAK ADA..", vbCritical RS.Close Set RS = Nothing Exit Sub End If '-----munculkan header-----' Me.TXT_no_penjualan = RS ("NO_JUAL") Me.DTPicker1.Value = RS ("TGL") Me.CMB_customer = RS ("KDPELANGGAN") Me.TXT_total = RS ("TOTAL_JUAL") Me.TXT_PAJAK = RS ("PAJAK") Me.TXT_GRANT_TOTAL = RS ("GRANT_TOTAL") RS.Close Set RS = Nothing '-----munculkan detail------------------------------------------------------' q = "" q = q & " SELECT * FROM PENJUALAN_D" q = q & " WHERE NO_JUAL='" & dt & "' " Set RS = New ADODB.Recordset RS.Open q, Conn If Not RS.EOF Then

Page 155: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

NO = 0 While Not RS.EOF NO = NO + 1 With Me.MSHFlexGrid1 .TextMatrix(NO, 1) = RS ("KDBARANG") .TextMatrix(NO, 2) = Rs2("NMBARANG") .TextMatrix(NO, 3) = RS ("HARGA") .TextMatrix(NO, 4) = RS ("JUMLAH") .TextMatrix(NO, 5) = RS ("SUBTOTAL") End With RS.MoveNext Wend End If RS.Close Set RS = Nothing Call CARI_NAMA_CUSTOMER

TOMBOL : UPDATE PENJUALAN If Me.TXT_no_penjualan = "" Then MsgBox "NO.PENJUALAN HARUS DI ISI..!", vbCritical Exit Sub End If '-----hitung lagi------' Call HITUNG_total_penjualan

'/=========================================/

'/=========================================/ '/

CODE UPDATE_PENJUALAN

sama dengan = kode SIMPAN

PENJUALAN,

Yg BEDA hanya ada

penambahan di GARIS

MERAH

Page 156: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

'/ UPDATE... '/ biar mudah dalam proses update '/ data lama ,baik HEADER dan DETAIL di hapus semuanya dulu '/ lalu disimpan kembali '/ jadi KODE SAMA SAJA dengan SAVE INPUT DATA BARU '/ '/==========================================================/ '/ #1. hapus master aa = "" aa = "delete JUAL where no_jual='" & Me.TXT_no_penjualan & "' " Conn.Execute aa '/ #2. hapus detail aa = "" aa = "delete JUAL_DETAIL where no_jual='" & Me.TXT_no_penjualan & "' " Conn.Execute aa

'/=========================================/

'/=========================================/

'-----cek apakah NO_PENJUALAN sama/double-----' x = "" x = "SELECT * FROM JUAL “ & _ “ WHERE NO_JUAL='" & Me.TXT_no_penjualan & "' " Set RS = New ADODB.Recordset RS.Open x, Conn, adOpenStatic, adLockOptimistic If NOT RS.EOF Then MsgBox "NOMER PENJUALAN SUDAH ADA..!", vbCritical RS.Close Set RS = Nothing Exit Sub Else '-----jika nomer baru, maka simpan data HEADER

Page 157: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

RS.AddNew RS!NO_JUAL = Me.TXT_no_penjualan RS!TGL = Me.DTPicker1.Value RS!KDPELANGGAN = Me.CMB_customer RS!TOTAL_JUAL = Me.TXT_total RS!PAJAK = Me.TXT_pajak RS!GRANT_TOTAL = Me.TXT_grant_total RS.Update End If RS.Close Set RS = Nothing '----- simpan BARANG /detail, '----- gunakan LOOPING untuk baca BARIS KE-1 s/d bawah With Me.MSHFlexGrid1 For BB = 1 To .Rows - 1 '-----cek apakah data di isi-----' If .TextMatrix(BB, 1) <> "" Then '-----simpan detail nya boooo-----' x = " SELECT * FROM PENJUALAN_D" Set RS = New ADODB.Recordset RS.Open x, Conn, adOpenStatic, adLockOptimistic RS.AddNew RS!NO_JUAL = Me.TXT_no_penjualan RS!KDBARANG = .TextMatrix(BB, 1) '--kolom 1 >kdbarang RS!NMBARANG = .TextMatrix(BB, 2) '--kolom 2 >NMbarang RS!HARGA = .TextMatrix(BB, 3) '--kolom 3 >harga RS!JUMLAH = .TextMatrix(BB, 4) '--kolom 4 >jumlah RS!SUBTOTAL = .TextMatrix(BB, 5) '--kolom 5 >subtotal RS.Update RS.Close Set RS = Nothing

Page 158: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

End If Next End With MSGBOX “Data penjualan telah di simpan..”

TOMBOL : PRINT BON PENJUALAN per NO,PENJUALAN With CrystalReport1 '/---KONEKSI REPORT DG ODBC---/ .ReportFileName = App.Path & "\BON_PENJUALAN.RPT" .Connect = "DSN=ODBC_TOKO;UID=sa;PWD=;database=TOKO" '/---SELEKSI DATA---/ .SelectionFormula = "{JUAL.NO_JUAL}='" & Me.TXT_no_penjualan & "' " .RetrieveDataFiles '/---UPDATE KAN DATABASE---/ .Destination = crptToWindow '/--TUJUAN PRINT KE MONITOR .WindowState = crptMaximized '/--TAMPILAN PENUH .WindowShowRefreshBtn = True '/--TOMBOL REFRESH MUNCUL .Action = 1 '/--JALANKAN REPORT End With

Page 159: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Code di TOMBOL ITEM

BARANG (Detail)

TOMBOL : SAVE BARANG '-----cek data item-----' If Me.CMB_barang = "" Or Me.TXT_harga = "" Or Me.TXT_qty = "" Then MsgBox "DATA ITEM BARANG HARUS DI ISI..", vbCritical Exit Sub End If '/------------------------------------------------------------/ '/ #2. SIMPAN DATA DI GRID '/------------------------------------------------------------/ With Me.MSHFlexGrid1 '/ CEK DULU APAKAH GRID NYA BERUTUTAN '/ DI CEK APAKAH BARIS SEBELUMNYA ADA DATA NYA? If .TextMatrix(Me.TXT_nomer - 1, 1) = "" Then MsgBox "ISI DATA DI GRID HARUS URUT..", vbCritical Exit Sub End If

Page 160: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

'/-----------------------------------------------------/ '/ SIMPAN KE GRID '/-----------------------------------------------------/ .TextMatrix(Me.TXT_nomer, 1) = Me.CMB_barang.Text .TextMatrix(Me.TXT_nomer, 2) = Me.TXT_namabarang.Text .TextMatrix(Me.TXT_nomer, 3) = Me.TXT_HARGA.Text .TextMatrix(Me.TXT_nomer, 4) = Me.TXT_qty.Text .TextMatrix(Me.TXT_nomer, 5) = Me.TXT_subtotal.Text End With '/ #3. KOSONGKAN INPUT BARANG, NOMER+1 Me.TXT_nomer = Val(Me.TXT_nomer) + 1 '/NOMER MAJUKAN+1 Me.CMB_barang = "" Me.TXT_namabarang = "" Me.TXT_qty = "0" Me.TXT_HARGA = "0" Me.TXT_subtotal = "0" '/ #4. HITUNG TOTAL PENJUALAN Call HITUNG_TOTAL_JUAL

TOMBOL : CANCEL BARANG Me.CMB_barang = "" Me.TXT_namabarang = "" Me.TXT_harga = "" Me.TXT_qty = "" Me.TXT_subtotal = 0

TOMBOL : DELETE BARANG '/ #1. CEK APAKAH BARANG SUDAH DI PILIH ---------------/ If Me.CMB_barang = "" Then MsgBox "DATA BELUM DI PILIH", vbCritical Exit Sub

Page 161: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

End If '/ #2. HAPUS DI BARIS GRIS--------------/ With MSHFlexGrid1 .RemoveItem (Me.TXT_nomer) '---Hapus pd baris seleksi '/#3 ---NOMER DI URUTKAN KEMBAL-----------------/I For NO = 1 To .Rows - 1 .TextMatrix(NO, 0) = NO Next End With '/ #4. KOSONGKAN DATA BARANG -----------------/ Me.TXT_nomer = "" Me.CMB_barang = "" Me.TXT_namabarang = "" Me.TXT_harga = "0" Me.TXT_qty = "0" Me.TXT_subtotal = "0" '/ #5. HITUNG TOTAL PENJUALAN -----------/ Call HITUNG_TOTAL_JUAL

Page 162: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Page 163: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

RANCANG DESIGN PRINT

OUT BON PENJUALAN

(1-Many)

AMBIL 4 Table

1.JUDUL BON/LAPORAN

2.GROUP HEADER NO.PENJUALAN

3.DATANYA

4.GROUP FOOTER

Page 164: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

RELATIONSHIP

FIELD YANG DIAMBIL

Page 165: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

DESIGN REPORT STANDARD, BELUM DIBUAT DESIGN GROUP 1-MANY

MEMBUAT GROUP (Klik kanan di GROUP NAME)

Page 166: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

HASILNYA, DESIGN BERTAMBAH SEBUAH BARIS BARU… LEBARKAN RUANG GROUPNYA

SETTING REPORT SBB:

(perhatikan ruang nya)

Ini data/field Ini judul/text

Ini data/field

Ini judul/text

field

Page 167: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Page 168: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Form bantuan

FORM MENCARI BARANG

(interaktif)

TOMBOL : AMBIL DATA Call AMBIL_BARANG

TOMBOL : REFRESH DATA Call REFRESH_data

Code di TXT_cari - Change() Call CARI_BARANG_interaktif

MSHFlexGrid1

Page 169: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

PROCEDURE di FORM

Procedure untuk menampilkan data ke grid

Sub REFRESH_data() Call BUKA_db X = " SELECT * FROM BARANG ORDER BY NMBARANG" Set Rs = New ADODB.Recordset Rs.Open X, Conn, adOpenStatic, adLockOptimistic If NOT Rs.EOF Then Set Me.MSHFlexGrid1.DataSource = Rs With Me.MSHFlexGrid1 .SelectionMode = flexSelectionByRow .ColWidth(0) = 300 .ColWidth(1) = 1000 '--lebar kode .ColWidth(2) = 3000 '--lebar nama barang End With Rs.Close Set Rs = Nothing Else Me.MSHFlexGrid1.Clear End If End Sub

Page 170: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Procedure untuk mengambil pilihan data

Sub AMBIL_BARANG() With Form_PENJUALAN .CMB_barang = Me.MSHFlexGrid1.TextMatrix(Me.MSHFlexGrid1.Row, 1) '/---kodebarang .TXT_namabarang = Me.MSHFlexGrid1.TextMatrix(Me.MSHFlexGrid1.Row, 2) '/---namabarang .TXT_HARGA = Me.MSHFlexGrid1.TextMatrix(Me.MSHFlexGrid1.Row, 3) '/---harga

End With Unload Me End Sub

Procedure untuk pencarian data interaktif

Sub CARI_BARANG_interaktif() On Error Resume Next Call BUKA_db X = "" '/-----query berdasarkan KDBARANG-----------------------------------/ If Option1.Value = True Then X = " SELECT KDBARANG,NMBARANG,HARGA FROM BARANG " X = X & " WHERE KDBARANG LIKE '" & Trim(Me.TXT_cari) & "%' " X = X & " ORDER BY KDBARANG" End If '/-----query berdasarkan NMBARANG-----------------------------------/ If Option2.Value = True Then X = " SELECT KDBARANG,NMBARANG,HARGA FROM BARANG " X = X & " WHERE NMBARANG LIKE '" & Trim(Me.TXT_cari) & "%' " X = X & " ORDER BY NMBARANG" End If

Page 171: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Set Rs = New ADODB.Recordset Rs.Open X, Conn, adOpenStatic, adLockOptimistic If NOT Rs.EOF Then Set Me.MSHFlexGrid1.DataSource = Rs With Me.MSHFlexGrid1 .SelectionMode = flexSelectionByRow .ColWidth(0) = 300 .ColWidth(1) = 1000 '--lebar kode .ColWidth(2) = 3000 '--lebar nama barang End With End If Rs.Close Set Rs = Nothing End Sub

Page 172: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Membuat Login

..lanjut yah

Page 173: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

mySYSTEM adalah system untuk pabrik, beberapa penampakan mySYSTEM di beberapa customer:

mySYSTEM: Purchase, Sales, Delivery, Warehouse, BOM, Schedule

Page 174: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

mySYSTEM. Vb6+SQL server 2005 express

..perlu di ketahui; mulai tahun 2012, HARGA system ini Rp. 0 (alias GRATIS)..

Page 175: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Mr.indraes dalam berbagai POSE aduhai..

Apapun & Gimanapun gaya-nya.. TETAP MANIS + KEREN…

Page 176: Modul Mandiri Vb6 Indraes Keren Dasar Master_detail 25-12-2011

@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84

Dosen+Model

08-567-2323-19