modul mandiri vb6 indraes keren final 17-11-2012

238
@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69 1 Modul belajar pemograman mandiri .. Indra Erawan Sanjaya VB6 Program Penjualan My emotion….Naruto Update: 15-OKTOBER-2012 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: billy-bowman

Post on 08-Aug-2015

717 views

Category:

Documents


18 download

TRANSCRIPT

Page 1: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

1

Modul belajar pemograman mandiri .. Indra Erawan Sanjaya

VB6 Program Penjualan

My emotion….Naruto

Update: 15-OKTOBER-2012

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 Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

2

Page 3: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

3

Daftar isi PDF ini

No Materi Halaman

1 Halaman muka 1

2 Halaman pembuka 2

3 Daftar isi 3

4 Untuk siapa PDF ini 6

5 [Foto] Yuuuuk menikah.. jangan pacaran 7

6 Ane nih; sekarang & dulu 8

7 [Judul] membuat program penjualan dan stok dengan SQL Server 10

8 [ngobrol] sekitar database access, sql server 12

9 [Ngobrol] Daftar jenis field dan Gambarang koneksi ke database 13,14

OLEH DATA DASAR

10 Olah dasar database sql serve 2000 16

Membuat database SQL server,lokasi 17,18

Membuat table, edit, input table sql server 19,20

Attach database, Copy database ke flashdisk 21,24

Input data, Edit field SQL server 18

11 [Foto] Mirip afgan 26

12 VB6: Program penjualan dan Stok toko 28

13 Membuat database toko 29

14 Membuat koneksi ODBC (jika menggunakan odbc, latihan PDF ini dengan OLEDB) 31

15 [Info penting] Pengaturan regional setting tanggal dan angka 36

16 VB6 ADODB penjualan 38

17 Membuat PROCEDURE, ADODB dan aktifasi code REFERENSI ADODB 39,42,43

18 Input data baru; data barang 45

Kode koneksi ke SQL Server dengan modul 48

Kode-kode di form,procedure,di tombol untuk input data baru 55-60

19 Penyempurnaan kode dan form 61

Membuat perpindahan cusor dengan enter 62-67

Membatasi panjang input untuk type data varchar/text 69-70

20 Menampilkan data dengan LISTVIEW 72-78

21 Mencari data INTERAKTIVE 79-82

22 Code dasar CARI, HAPUS, EDIT dan UPDATE data 86

Mencari data 88

Meng-DELETE data 90

Meng-Edit data & Simpan UPDATE data 91,92

23 Latihan-latihan 1 table (Input,Edit,Delete,Find,Listview, Cari interaktiv) 95,96

24 Membuat CRYSTAL REPORT 1 table 98

Susunan report dan design 102-104

Langkah membuat report 105-111

Design report : halaman, tgl, jam, logo, format,grandtotal,kertas,margin 112-121

25 Menampilkan report dengan VB6 122-126

26 Latihan-latihan report ; laporan data customer 127

Page 4: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

4

27 VB6 dengan STORE PROCEDURE (SP) sql server 129

[Ngobol] Gambaran store procedure 130

Code vb6 untuk store procedure; input data baru dan update 131-138

Membuat store procedure di SQL Server 139-142

PROSES TRANSAKSI

1 Transaksi dasar; penambahan table di database 148-151

2 [Ngobrol] Informasi seputar transaksi 153-157

3 Perintah SQL untuk update transaksi 158

4 Transaksi dasar stok 160

Form pembelian update stok barang dan code transaksi 161-169

5 Latihan transaksi dasar : Pengambilan uang ATM 171

6 Login dan Menu 174

Login biasa (Tanpa database) 176

Login menggunakan database 177

Menu utama 179

7 Transaksi master detail (1-many) dengan LISTVIEW 182

Form master-detail penjualan 184

Code modul, procedure di form 185-194

Code di tombol penjualan 195-200

Code di tombol barang (Detail) 201-204

8 Membuat Pencarian form interaktif 206-209

9 Cetak Bon stuk penjualan dengan cystal report 211

Tampilan struk penjualan 212

Langkah pembuatan struk penjualan dengan crystal report 8.5 213-224

10 Laporan transaksi harian dengan seleksi 2 tanggal (RANGE TGL) 227-229

11 [Info penting] Perubahan regional setting 230

12 Selesai – Alhamdulillah.. 231

13 [Foto-foto] Beberapa foto-foto sewaktu mengajar, kenang-kenangan selesai mengajar

233-236

14 [Foto] ane 237

DONASI

15 Jika ingin ber-DONASI silahkan di BCA rekening ane… 238

Page 5: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

5

Page 6: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

6

UNTUK SIAPA PDF INI

PDF ini ane susun untuk mengajar di beberapa kampus di bekasi, jurusan komputer

PDF dibuat bagi pelajar, mahasiswa atau kalangan

umum yang MULAI belajar visual basic database untuk tingkat DASAR dan tingkat MENENGAH

Silahkan.. PDF ini bebas di sebarkan, di copy untuk

kepentingan belajar dan mengajar

Semoga PDF ini BERMAMFAAT..

Update ter-akhir pdf Bekasi, 19-11-2012

Indra_Keren

Page 7: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

7

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.. lihat poto

dibawah)

Page 8: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

8

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 9: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

9

Page 10: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

10

Visual Basic 6 Terapan

Membuat program toko:

PENJUALAN &

STOK

Database: SQL Server 2000 Tools : Visual Basic 6

Report : Crystal report 8.5

Page 11: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

11

Page 12: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

12

*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 13: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

13

*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 14: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

14

*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 15: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

15

Page 16: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

16

OLAH DASAR Database SQL Server 2000

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

Page 17: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

17

a.Membuat Database

1.Membuat Database SQL Server

(Klik kanan di database + NEW Database)

2.Mengetik Nama Database

Page 18: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

18

(Klik NAMA DATABASE nya)

3.Menyimpan Lokasi File Database SQL Server

Klik kotak.. Location, dan pilih folder

untuk simpan database

Page 19: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

19

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 20: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

20

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 21: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

21

b.Attach Database

Memasukkan file database SQL server kita kedalam Enterprise Manager SQL Server

1

2

Page 22: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

22

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

3

4

Page 23: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

23

B

5

Page 24: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

24

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 25: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

25

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

Page 26: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

26

=

Mirip …. Sama2 keren, BEDA tipis..

Ihhhh dosen nya

manis Beuttt..

Dosennya mirip

AFGAN dehh

Page 27: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

27

Page 28: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

28

VB6. Program Penjualan & Stok Toko

Page 29: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

29

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 30: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

30

ODBC

(jika koneksi database menggunakan ODBC)

Page 31: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

31

2.membuat koneksi ODBC

Buka CONTROL PANEL ADMINISTRATION TOOLS ODBC

(Klik tombol ADD )

1

Page 32: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

32

(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 33: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

33

(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 34: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

34

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 35: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

35

Page 36: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

36

Info penting; Sebaiknya jika menggunakan SQL Server

REGIONAL SETTING dirubah ke ENGLISH UNITED STATED, agar format angka dan tanggal menjadi format

bahasa inggris

Control Panel + +

Page 37: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

37

Page 38: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

38

Vb6 ADODB

Page 39: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

39

yang sering dilakukan..

MEMBUAT PROCEDURE

Membuat procedure yang umum ada di 2 lokasi:

(1) Procedure di FORM a. Procedure untuk form itu sendiri (PRIVATE / SUB) b. Procedure hanya di kenal di form itu saja

(2) Procedure di MODULE/ClassModule

a. Procedure umum (PUBLIC) b. Bisa digunakan di semua form dalam project

Badan procedure (umum) :

SUB NamaProcedure() …. …. END SUB

Page 40: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

40

Cara Membuat PROCEDURE di FORM;

1. Bisa dengan KLIK 2x di FORM // klik ICON VIEW CODE (kotak project) 2. Lalu muncul kotak kode…. Geser ke bawah sampe mentok // menu=tool+add proc 3. Lalu ketikan nama procedure nya

Cara Membuat PROCEDURE di MODULE;

1. Bikin module baru (Menu=Project+Add module) // Buka module nya 2. Cari ruang kosong 3. Langsung aja ketik nama procedurenya,

Contoh:

Page 41: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

41

Page 42: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

42

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 43: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

43

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

penting

Page 44: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

44

Page 45: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

45

INPUT DATA

BARU

Page 46: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

46

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 47: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

47

Form input data barang baru:

Name:

TOMBOL INPUT, TOMBOL_SAVE, TOMBOL_CANCEL, TOMBOL_CLOSE

DATA BARANG

Page 48: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

48

Membuat

KONEKSI ke SQL server

di MODULE

TAMBAHKAN MODULE : menu PROJECT + MODULE

Page 49: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

49

CONTOH – CONTOH KONEKSI KE DATABASE

Page 50: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

50

Modul koneksi ke SQL 2000 (pake ini PDF)

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

Public Conn As ADODB.Connection '/ untuk koneksi keDB Public Rs As ADODB.Recordset '/untuk buka TABLE,bisa banyak Public KONEKSI_string As String

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

Sub BUKA_db()

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

KONEKSI_string = "Provider=SQLOLEDB.1;" & _

"Integrated Security=SSPI;" & _

"Persist Security Info=False;" & _

"Initial Catalog=TOKO;" & _

"Data Source=(local)" '/ Jika koneksi TERPUTUS (0), maka BUKA kembali

If Conn.State = 0 Then

Conn.Open KONEKSI_string

End If Exit Sub '/ Jika ada ERROR munculkan pesan CEK: MsgBox "KONEKSI ke DATABASE ERROR : " & Err.Description, vbCritical End

END SUB

Kode string ini diambil

dari ADODC

TOKO=nama DB

DataSource=nama

komp.server

Page 51: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

51

Modul koneksi ke SQL 2005

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

Public Conn As ADODB.Connection '/ untuk koneksi keDB Public Rs As ADODB.Recordset '/untuk buka TABLE,bisa banyak Public KONEKSI_string As String

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

Sub BUKA_db()

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

KONEKSI_string = "Provider=SQLNCLI.1;" & _ "Integrated Security=SSPI;" & _

"Persist Security Info=False;" & _

"Initial Catalog=TOKO;" & _

"Data Source=(local)" '/ Jika koneksi TERPUTUS (0), maka BUKA kembali

If Conn.State = 0 Then

Conn.Open KONEKSI_string

End If Exit Sub '/ Jika ada ERROR munculkan pesan CEK: MsgBox "KONEKSI ke DATABASE ERROR : " & Err.Description, vbCritical End

END SUB

Kode string ini diambil

dari ADODC

TOKO=nama DB

DataSource=nama

komp.server

Page 52: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

52

Modul koneksi DATABASE SQL dg ODBC

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

Public Conn As ADODB.Connection '/ untuk koneksi keDB Public Rs As ADODB.Recordset '/untuk buka TABLE,bisa banyak Public KONEKSI_string As String

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

Sub BUKA_db()

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

KONEKSI_string = "DSN=ODBC_TOKO;uid=;pwd="

'/ Jika koneksi TERPUTUS (0), maka BUKA kembali

If Conn.State = 0 Then

Conn.Open KONEKSI_string

End If Exit Sub '/ Jika ada ERROR munculkan pesan CEK: MsgBox "KONEKSI ke DATABASE ERROR : " & Err.Description, vbCritical End

END SUB

Kode string ini diambil

dari ADODC

ODBC_TOKO= Adalah nama ODBC

yang kita buat di ODBC – CONTROL

PANEL. Yg isi nya meng-hubungkan ke

DATABASE (lihat panduan bikin

odbc)

Page 53: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

53

Modul koneksi ke ACCESS 2000/2003

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

Public Conn As ADODB.Connection '/ untuk koneksi keDB Public Rs As ADODB.Recordset '/untuk buka TABLE,bisa banyak Public KONEKSI_string As String

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

Sub BUKA_db()

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

KONEKSI_string = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & App.Path & "\TOKO.mdb;" & _

"Persist Security Info=False"

'/ Jika koneksi TERPUTUS (0), maka BUKA kembali

If Conn.State = 0 Then

Conn.Open KONEKSI_string

End If Exit Sub '/ Jika ada ERROR munculkan pesan CEK: MsgBox "KONEKSI ke DATABASE ERROR : " & Err.Description, vbCritical End

END SUB

Kode string ini diambil

dari ADODC

TOKO=nama DB

Page 54: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

54

Page 55: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

55

Code di Form

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 56: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

56

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.Enabled = True Me.TXT_KDBARANG.SetFocus

Pastikan data PK aktif.

KODE BARANG diaktifkan.

ENABLED=TRUE

Page 57: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

57

Code TOMBOL SAVE

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

'/ #1, CEK INPUT DATA Primary Key

'/ 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 DENGAN ANGKA", vbInformation Exit Sub End If

If IsNumeric(Me.TXT_STOK) = False Then

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

Page 58: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

58

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

'/ #3, CEK primarykey tidak boleh sama

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

" WHERE KDBARANG='" & 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, keluar kembali ke form '/====================================/ MsgBox "KODE BARANG SUDAH ADA..", vbInformation Exit Sub ‗—keluar dari code kembali ke form End If Rs.Close Set Rs = Nothing

Page 59: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

59

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

'/ #4, SIMPAN DATA Dehhhh..

'/=====================================/ IMUT = ""

IMUT = " SELECT * FROM BARANG " & _

" WHERE KDBARANG='" & 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

PENTING. Input data

baru dengan

Rs.ADDNEW

Page 60: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

60

'/-----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 61: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

61

PENYEMPURNAAN

Page 62: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

62

Membuat perpindahan

cursor ke textbox berikut

nya Jika di ENTER..

Page 63: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

63

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 64: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

64

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 65: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

65

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 66: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

66

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 67: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

67

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 68: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

68

PENYEMPURNAAN

Page 69: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

69

Membatasi PANJANG input

data.. agar tidak melebihi

panjang field (khusus untuk type field text/varchar)

Page 70: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

70

Keterangan: Untuk type data FIELD VARCHAR; panjang input data di TEXTBOX harus sama (=) atau TIDAK BOLEH MELEBIHI panjang FIELD nya. Contoh; 1.Field KDBARANG mempunyai type VARCHAR lebar 20, jangan sampai pada saat input kodebarang datanya > 20 karakter, karena nanti akan error. Untuk itu kita setting PROPERTIES di TXT_KDBARANG, yaitu: MAXLENGTH = 20

Jadi untuk :

TXT_NMBARANG MaxLength = 50 (sesuai panjang FIELD)

HARGA dan STOK tidak perlu diatur maxlength nya karena TYPE data NUMBER

Inget nih… hanya type data TEXT / VARCHAR yang diatur MaxLEngth nya … yahhhhhhhhhhhh

Page 71: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

71

Page 72: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

72

2.Menampilkan data dg

LISTVIEW

Page 73: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

73

Menampilkan data dari TABLE ke FORM LISTVIEW

LISTVIEW1

Name: TOMBOL_REFRESH Name: TXT_CARI

Page 74: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

74

TAMBAH COMPONENT :

[v] Microsoft WINDOWS COMMON CONTROL 6.0 buat LISTVIEW

[v] Microsoft WINDOWS COMMON CONTROL 2.6 buat TANGGAL

Page 75: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

75

Code di FORM

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

Page 76: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

76

'/--------------------------------------------------------/ '/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 FORM

Page 77: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

77

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 78: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

78

Code : FORM - Load

'/-----kosongkan textbox Call KOsong

'/-----atur tombol yg aktif pertama kali Me.TOMBOL_input.Visible = True Me.TOMBOL_simpan.Visible = False Me.TOMBOL_cancel.Visible = False Me.TOMBOL_CLOSE.Visible = True

'/-----munculkan data ke listview

Call TABLE_to_LISTVIEW

Page 79: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

79

3.MENCARI

data INTERAKTIVE

(pas di ketik data yang cari, maka data hasil langsung ter-seleksi / ter-filter muncul di

form….

Seperti di kasir atau di kasir toko buku)

Page 80: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

80

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

Code di FORM

Name: TXT_CARI

Page 81: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

81

Buatlah PROCEDURE

Ket:Procedure menampilkan data dari sql ke listview secara INTERAKTIF

Sub CARI_DATA_INTERAKTIF () ON ERROR RESUME NEXT ‘—kalo ada error maka diabaikan 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 82: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

82

'/--------------------------------------------------------/ '/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 CARI_DATA_INTERAKTIF

Page 83: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

83

Page 84: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

84

Mengatur tombol-tombol

Tombol mati dengan ENABLED

TOMBOL_NEW.Enaled=False

Tombol muncul/tidak dengan VISIBLE

TOMBOL_NEW.Visible=False

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

BOLEH DI KLIK atau TIDAK

Page 85: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

85

Page 86: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

86

3.Cari, Hapus Edit-

Update, data

Page 87: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

87

Cari , Hapus, Edit-Update data

Name: TOMBOL_EDIT,

TOMBOL_UPDATE, TOMBOL_DELETE,

TOMBOL_CARI

Page 88: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

88

CARI 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 '/--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

Page 89: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

89

'/--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 90: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

90

DELETE DATA

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

Page 91: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

91

EDIT DATA

Untuk edit data TIDAK SEMUA DATA BOLEH di edit.

Data PRIMARYKEY TIDAK BOLEH DI EDIT

Mangkanya kita ME-NON AKTIFKAN KODE BARANG supaya TIDAK BISA DI EDIT

Dan jika input data yang baru; KODE BARANG DIAKTIFKAN kembali

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

'/--- 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

Page 92: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

92

UPDATE DATA

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 93: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

93

'/ 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 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

TIDAK ADA kode

RS.AddNew

Karena ini bukan menambah data,hanya merubah data yg ada

Page 94: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

94

Page 95: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

95

TUGAS Buatlah form customer

Lengkap dengan tombol + listview + pencarian interaktif +Maxlength+ ENTER

Cari interaktif NAMA CUSTOMER

Page 96: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

96

TUGAS Buat DATABASE : PENJUALAN_KU Table : JUAL (Data tidak perlu diiinput) Nama Field Type Lebar Ket NO_JUAL Varchar 10 PrimaryKey TANGGAL DateTime NAMA_PELANGGAN Varchar 50 NAMA_BARANG Varchar 50 HARGA Float JUMLAH Float SUBTOTAL Float

Buat PROJECT BARU dan form VB sbb :

No.penjualan tidak boleh sama

SUBTOTAL = HARGA * JUMLAH kode di tulis di TOMBOL HITUNG

Lengkapi dengan ENTER + MaxLength +Cek numeric + Pengaturan tombol aktif ,dll. Supaya PROGRAM SIAP DI JUAL…

DtPicker1 untuk tgl (tambah component= micr.windows commond ctrl 2.6

Page 97: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

97

Page 98: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

98

Crystal Report 8.5

Dengan

ane

Page 99: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

99

Page 100: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

100

Crystal report

Langkah:

1. Buat REPORT DESIGN nya dulu, dengan crystal report

2. Buat FORM VB; tambahkan komponen :

Page 101: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

101

Membuat Report

DAFTAR BARANG Tampilan report:

Page 102: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

102

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 103: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

103

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

Page 104: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

104

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 (FIELD) 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

Grand total stok

Tanggal, Halaman

Nomer urut record

Page 105: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

105

b.Langkah bikin Report

1) Buka crystal report

TAMPILAN :

1

2

3

Page 106: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

106

7

4

5

6

Page 107: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

107

8

8.1

8.2

Pilih jenis koneksi nya;

OLEDB

Untuk SQL2000 pilih :

Microsoft OLEDB..

Jika pake SQL2005,2008

pilih: SQL Native Client

Page 108: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

108

Hasilnya:

9

10

8.3

8.4

8.5

8.6

11

Ketik NAMA SERVER; ketik

(LOCAL) jika DB di kompi

sendiri

Ketik / pilih nama

database nya

Jika koneksi OK, maka

nama2 TABLE akan

muncul. PILIH TABLE yg

akan dipake..

Page 109: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

109

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).

12

13

Table BARANG telah di

ambil untuk laporan

14

Ambil FIELD2 untuk

laporan

Page 110: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

110

Jika SUDAH klik TAB STYLE, jangan KLIK TOMBOL NEXT (design report amburadol)

Selesai…

Page 111: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

111

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

PREVIEW

\

DESIGN:

Simpanlah file laporan barang ini dengan nama

LAP_BARANG

Page 112: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

112

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 113: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

113

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 114: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

114

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 115: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

115

4.Insert GAMBAR untuk LOGO

MENU = INSERT + PICTURE

>> Pilih gambar nya + klik TOMBOL OPEN

1

2

4

3

Page 116: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

116

FORMAT

di Crystal Report : KLIK KANAN di object nya + FORMAT

5. FORMAT ANGKA

>> KLIK KANAN di FIELD HARGA + FORMAT FIELD

1

2

Page 117: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

117

3

Page 118: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

118

6. FORMAT TANGGAL (dd-MMM-yyyy)

>> KLIK KANAN di FIELD TANGGAL + FORMAT FIELD

1

2

3

Page 119: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

119

7.MEMBUAT GRANDTOTAL stok

Klik KANAN di FIELD STOK + INSERT + GRAND TOTAL + Klik OK

2 3

1

4

Page 120: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

120

UKURAN KERTAS (A3,A4,Landscape, Potrait)

>> MENU : FILE + PRINTER SETUP

2

3

1

4

Page 121: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

121

MARGIN KERTAS

(Margin atas, bawah, kiri, kanan)

>> MENU : FILE + PAGE SETUP

2

3

1

Page 122: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

122

Vb. Form report

Page 123: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

123

VB

FORM REPORT Laporan Barang

>> TAMBAHN COMPONEN CRYSTAL REPORT :

[v] Crystal Report Control

OPTION1

OPTION2

OPTION3

OPTION4

CRYSTALREPORT1

Page 124: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

124

Code : TOMBOL PRINT

CALL BUKA_DB With CrystalReport1 '/---KONEKSI REPORT DG ODBC---/ .ReportFileName = App.Path & "\LAP_BARANG.RPT" .Connect = KONEKSI_STRING '/---SELEKSI DATA---/ If Me.Option1.Value = True Then .SelectionFormula = "" End If If Me.Option2.Value = True Then .SelectionFormula = "{BARANG.KDBARANG}='" & Me.Text1 & "' "

End If '/---TUJUAN PRINT---/ If Me.Option3.Value = True Then .Destination = crptToWindow If Me.Option4.Value = True Then .Destination = crptToPrinter '/---SETINGAN LAINNYA---/ . RetrieveDataFiles '/--REFRESH DATA .WindowState = crptMaximized '/--TAMPILAN PENUH .WindowShowRefreshBtn = True '/--TOMBOL REFRESH MUNCUL .Action = 1 '/--JALANKAN REPORT End With

SELESAI…..

Nama report yg akan

di tampilkan

.SELECTIONFORULA untuk

filter seleksi data

.CONNECT untuk

koneksi ke server nya

BARANG nama

table

KDBARANG

nama field

Page 125: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

125

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 126: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

126

HASIL RUNNING :

Page 127: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

127

Latihan Buatlah laporan data

customer

Page 128: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

128

Page 129: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

129

VB Dg

Store Procedure SQL Server

Page 130: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

130

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 131: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

131

VB+SP SP input data

(INSERT) &

SP rubah data (UPDATE)

barang

Page 132: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

132

VB code dasar STORE PROCEDURE

TOMBOL_input, TOMBOL_save, TOMBOL_update, TOMBOL_cari,

Page 133: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

133

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 KONEKSI_string As String

Public RsCMD As ADODB.Command '/ untuk PANGGIL SP SQL '/----- ini adalah PROCEDURE untuk koneksi ke database

Sub BUKA_db()

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

KONEKSI_string = "Provider=SQLNCLI.1;" & _ "Integrated Security=SSPI;" & _

"Persist Security Info=False;" & _

"Initial Catalog=TOKO;" & _

"Data Source=(local)" '/ Jika koneksi TERPUTUS (0), maka BUKA kembali

If Conn.State = 0 Then

Conn.Open KONEKSI_string

End If Exit Sub CEK: MsgBox "KONEKSI ke DATABASE ERROR : " & Err.Description, vbCritical End

Kalo MODUL sama

aja dg kemaren..

Page 134: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

134

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

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

Page 135: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

135

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 136: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

136

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 137: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

137

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 138: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

138

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 139: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

139

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 140: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

140

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 141: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

141

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 142: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

142

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 143: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

143

Page 144: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

144

Latihan aja

Page 145: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

145

Page 146: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

146

Ujian tengah semester

(UTS)

Page 147: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

147

Page 148: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

148

PROSES TRANSAKSI

dasar

Page 149: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

149

SQL Server

Page 150: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

150

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 151: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

151

JUAL No NAMA FIELD JENIS LEBAR KET

1 NO_JUAL VARCHAR 20 PrimaryKey

2 NOMER_AKHIR INT

3 TGL DATETIME

4 KDPELANGGAN VARCHAR 20

5 SUBTOTAL FLOAT

6 POTONGAN FLOAT

7 PAJAK FLOAT

8 TOTAL_NYA 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 152: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

152

TRANSAKSI DASAR

(>=2 table)

Page 153: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

153

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 PROSES data:

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

Atau pada saat kita menabung, maka SALDO akan bertambah

Ada 2 data yg terlibat

Page 154: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

154

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

1. Kita membeli barang (tgl,kode barang,jumlah) 2. Stok barang berkurang (kode barang, jumlah)

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

1. Kita membayar cicilan (tgl, no.nasabah, jumlah cicilan) 2. Cicilan nasabah berkurang (no.nasabah,jumlah cicilan)

Jadi TRANSAKSI2 tsb pada saat simpan data melakukan

Page 155: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

155

Page 156: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

156

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?

Page 157: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

157

BELI BENSIN-PERTAMAX

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

Page 158: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

158

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 159: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

159

Page 160: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

160

TRANSAKSI DASAR STOK

Pembelian barang & Update stok barang +

Input PEMBELIAN BARANG dan akan MENAMBAH STOK barang

Page 161: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

161

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

DTPICKER1 tambah component: Microaoft wind.common ctrl 6

Nama barang, stok muncul otomatis saat kode brg di pilih..

Page 162: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

162

JANGAN LUPA CODE KONEKSI KE SQL SERVER

DI MODULE:

Public Conn As ADODB.Connection '/ untuk koneksi keDB Public Rs As ADODB.Recordset '/ untuk buka TABLE Public KONEKSI_string As String

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

Sub BUKA_db()

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

KONEKSI_string = "Provider=SQLNCLI.1;" & _ "Integrated Security=SSPI;" & _

"Persist Security Info=False;" & _

"Initial Catalog=TOKO;" & _

"Data Source=(local)" '/ Jika koneksi TERPUTUS (0), maka BUKA kembali

If Conn.State = 0 Then

Conn.Open KONEKSI_string

End If Exit Sub CEK: MsgBox "KONEKSI ke DATABASE ERROR : " & Err.Description, vbCritical End

Kalo MODUL sama

aja dg kemaren..

Page 163: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

163

Code di Form

Buat Procedure

Procedure untuk mengisi combo dg KDBARANG

Sub ISI_COMBO_BARANG() Call BUKA_db 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 164: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

164

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

Sub MUNCULIN_DATA_BARANG() Call BUKA_db ‘/---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 ‘/---Jika ketemu kodenya, maka munculkan ke TEXT ---/

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

RS.EOF data tidak

ada, data tidak

ketemu

NOT RS.Eof data

ada, data ketemu

Rs(“NmBarang”)

adalah nama FIELD yg

akan di munculkan

Page 165: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

165

CODE di FORM

Code : FORM – LOAD

‘/---KOSONGKAN TEXTBOX---/ Me.Text1 = “” Me.Text2 = “” Me.Text3 = “” Me.Text4 = “” Me.DtPicker1.value=date ‘/---PANGGIL PROCEDURE UNTUK ISI COMBO---/ Call ISI_COMBO_BARANG

Code : COMBO1 – CLICK

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

Call MUNCULIN_DATA_BARANG

Page 166: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

166

Code di TOMBOL

Code : TOMBOL NEW

‘/---KOSONGKAN TEXTBOX---/ Me.Text1 = “” Me.Text2 = “” Me.Text3 = “” Me.Text4 = “” Me.DTPicker1.Value = Date ‘/---taro kursor---/ Me.Text1.SetFocus

Code : TOMBOL CANCEL

‘/---KOSONGKAN TEXTBOX---/ Me.Text1 = “” Me.Text2 = “” Me.Text3 = “” Me.Text4 = “” Me.DTPicker1.Value = Date

MsgBox “BATAL..”, vbInformation

Page 167: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

167

Code : TOMBOL SAVE

CODE yang ditulis yang pokok nya saja, yaitu untuk simpan data transaksi dan UPDATE STOK barang betambah

‘/ CEK 1 : PRIMARY KEY.code sama dg sebelumnya ‘/---code tidak di ketik, coba lihat latihan sebelum nya, untuk CEK PRIMARY KEY

‘/---------------------------------------------------------/ ‘/ CEK 2 : apakah input JUMLAH benar? Dg angka

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

If IsNumeric(Me.Text4) = False Then

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

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

‘/ PROSES 1: SIMPAN TRANSAKSI

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

AA = “ SELECT * FROM BELI “ & _

“ WHERE NO_BELI=’” & Me.Text1 &

Page 168: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

168

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

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

‘/ 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 = “”

Nah…. Ini

PROSES update

transaksinya..

TEXT4 jumlah brg COMBO1 kodebrg

“..tambahkan stok yg

kdbarang nya= combo1..

Rs.ADDNEW simpan data

transaksi pembeliannya

Page 169: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

169

INFO

Cek data table BELI data pembelian akan kesimpan

Cek STOK barang yang di input stok akan bertambah..

Page 170: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

170

Page 171: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

171

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 172: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

172

Transaksi dasar pengambilan uang ATM

Proses : TOMBOL MULAI :

kosongkan text. Letakkan kursor di text1 TOMBOL SIMPAN :

Jika NOMER PIN salah; munculkan pesan pin salah, proses di batalkan

Jika NOMER PIN benar; cek apakah SALDO nasabah cukup untuk pengambilan uang, jika TIDAK CUKUP munculkan pesan saldo kurang. Jika CUKUP… simpan data transaksi pengambilan uang dan UPDATE SALDO nasabah menjadi BERKURANG

DATABASE : nama database : ATM TABLE : 1. NASABAH (inputlah 5 data nasabah) KODE_NASABAH varchar 20 NAMA_NASABAH varchar 50 NO_PIN varchar 20 SALDO float 2. AMBIL NO_PIN varchar 20 JUMLAH float

Latihan aja

Page 173: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

173

Page 174: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

174

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 175: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

175

START-UP FORM LOGIN FORM LOGIN biasanya dijadikan sbg START-UP FORM project Jadi sewaktu PROJECT dijalankan FORM LOGIN akan di munculkan terlebih dahulu..

Menu: PROJECT + PROPERTIES

Page 176: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

176

LOGIN BIASA (Tanpa menggunakan database table user password)

Code : TOMBOL OK

‘/---Cek apakah TEXT1 TEXT2 benar: ADMIN bisa disesuaikan---/ IF Text1 <> “ADMIN” and Text2<>”ADMIN” Then Msgbox “User password salah..”,VbInformation Exit sub Else Unload me ‘/password benar, hilangkan form login Form_menu.Show ‘/ lalu panggil form menu utama End if

Code : TOMBOL EXIT

End ‘/keluar dari program

Tombol_ok, Tombol_exit

Page 177: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

177

LOGIN TABLE (Dengan menggunakan database table user password)

Tambah table di database

Table: USER_PASSWORD No NAMA FIELD JENIS LEBAR KET

1 NAMA_USER VARCHAR 20 PrimaryKey

2 PASSWORD VARCHAR 20

Isilah table user_password tsb..

Tombol_ok, Tombol_exit

Page 178: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

178

Code:

Code : TOMBOL OK

Call BUKA_DB ‘/---Cek ke database apakah TEXT1 TEXT2 benar ---/

X = " SELECT * FROM USER_PASSWORD " & _ " WHERE NAMA_USER='" & Text1 & "' " & _ " AND PASSWORD='" & Text2 & "' " Set Rs = New ADODB.Recordset Rs.Open X, Conn, adOpenStatic, adLockOptimistic

If Rs.EOF Then ‘/apakah DATA TIDAK ADA

MsgBox "PASSWORD SALAH..", vbCritical ‘/user password salah Rs.Close ‘/Tutup tabel Set Rs = Nothing Exit Sub ELSE Rs.Close ‘/Tutup tabel Set Rs = Nothing MsgBox "LOGIN BENAR, SELAMAT DATANG DI SYSTEM KAMI..", vbInformation

Unload me ‘/tutup form login

FORM_MENU.Show ‘/buka form MENU

END IF

Code : TOMBOL EXIT

End ‘/keluar dari program

Cari nama user

dan password nya di

table ..

Page 179: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

179

MENU UTAMA Menggunakan PICTURE untuk tombol shortcut (ALTERNATIF)

SETTING STATUS BAR:

PICTURE COMMAND BUTTON

STATUS BAR

INSERT PANEL bikin ruang baru ALIGMENT rata kiri,kanan,tengah STYLE isi datanya(tgl,jam,caplock,dll) BEVEL efeknya (mendem/nonjol) AUTOSIZE kotaknya nge-resize dg form

Page 180: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

180

CODE

Code : TOMBOL EXIT

D=Msgbox (“Apakah ingin keluar dari program?”,vbQuestion+VbYesNo) IF D=VbYes Then End ‘/keluar dari program End If

Code : TOMBOL BARANG

Form_Barang.SHOW ‘/Munculkan form barang, sesuaikan namanya

Code : TOMBOL CUSTOMER

Form_Customer.SHOW ‘/Munculkan form customer, sesuaikan namanya

Page 181: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

181

Page 182: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

182

TRANSAKSI

Master Detail dg

ListView

(1-many)

Page 183: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

183

Page 184: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

184

FORM MASTER DETAIL penjualan

NOMER PENJUALAN menggunakan NOMER URUT OTOMATIS dg format :

1112-00001 11 bulan 2 digit 12 tahun 2 digit 00001 nomer urut dengan 5 digit Setiap tahun baru / awal tahun nomer menjadi = 0 kembali

LISTVIEW1

Crystal Report1

Page 185: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

185

CODE di MODUL Ini BUDI ehhhh…salah; ini adalah code untuk koneksi ke database

Public Conn As ADODB.Connection '/ untuk koneksi keDB Public Rs As ADODB.Recordset '/untuk buka TABLE,bisa banyak Public KONEKSI_string As String

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

Sub BUKA_db()

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

KONEKSI_string = "Provider=SQLOLEDB.1;" & _

"Integrated Security=SSPI;" & _

"Persist Security Info=False;" & _

"Initial Catalog=TOKO;" & _

"Data Source=(local)" '/ Jika koneksi TERPUTUS (0), maka BUKA kembali

If Conn.State = 0 Then

Conn.Open KONEKSI_string

End If Exit Sub '/ Jika ada ERROR munculkan pesan CEK: MsgBox "KONEKSI ke DATABASE ERROR : " & Err.Description, vbCritical End

END SUB

Kode string ini diambil

dari ADODC

TOKO=nama DB

DataSource=nama

komp.server

Page 186: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

186

PROCEDURE di FORM

Code : Procedure Procedure Untuk seting listview

Sub LISTVIEW SETTING() With Me.ListView1 .ColumnHeaders.Clear '--HAPUS HEADER .ListItems.Clear '--HAPUS DATA .View = 3 '-- JENIS TAMPILAN: 0=ICON, 1=SMALL ICON, 2=LIST, 3=REPORT .FullRowSelect = True .GridLines = True '----- MEMBUAT JUDUL-HEADER KOLOM-----/ .ColumnHeaders.Add , , "No", 400 '—NO=judul, 400=lebar .ColumnHeaders.Add , , "KODE BARANG", 2000 .ColumnHeaders.Add , , "NAMA BARANG", 3000 .ColumnHeaders.Add , , "JUMLAH", 1000, 1 '—, 1=rata kanan .ColumnHeaders.Add , , "HARGA", 1000, 1 .ColumnHeaders.Add , , "SUBTOTAL", 1500, 1 End With End Sub

Page 187: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

187

Untuk mengisi COMBO customer

Sub ISI_CUSTOMER() Call BUKA_Db Me.Combo1.Clear '--kosongkan combo aa = "SELECT * FROM CUSTOMER ORDER BY KDPELANGGAN" Set Rs = New ADODB.Recordset Rs.Open aa, Conn, adOpenStatic, adLockOptimistic If Not Rs.EOF Then '---jika data ada, maka lanjutkan proses While Not Rs.EOF '---looping selama data masih ada '---masukan data kode pelanggan ke combo

Me.Combo1.AddItem Rs("KDPELANGGAN") '---field dimasukan ke combo '---baca data berikutnya Rs.MoveNext Wend End If Rs.Close Set Rs = Nothing End Sub

Unutk mencari menampilkan DATA CUSTOMERT saat COMBO di KLIK/LOSTFOCUS

Sub CARI_NAMA_CUSTOMER() Call BUKA_Db '--- buka table customer dengan kondisi WHERE a = ""

a = " SELECT * FROM CUSTOMER " & _

" WHERE KDPELANGGAN='" & Combo1 & "' "

Page 188: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

188

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

If Not Rs.EOF Then '--- jika data nya ada, maka munculkan

'--- munculkan data table ke TEXT

Me.Text2 = Rs("NMPELANGGAN") '--- tampilkan field ke text End If Rs.Close Set Rs = Nothing End Sub

Unutk mencari menampilkan DATA BARANG

Sub CARI_NAMA_BARANG() Call BUKA_Db '/ buka table barang dengan kondisi WHERE a = ""

a = " SELECT * FROM BARANG " & _

" WHERE KDBARANG='" & Me.Text3 & "' " Set Rs = New ADODB.Recordset Rs.Open a, Conn, adOpenStatic, adLockOptimistic

If Not Rs.EOF Then '--- jika data yg dicari ada..

'--- munculkan data table ke TEXT

Me.TEXT4 = Rs("NMBARANG") '--- munculin NAMA BARANG ke text

Me.TEXT5 = Rs("HARGA") '--- munculin HARGA ke text

Me.Text6.SetFocus Else Me.TEXT4 = "" '--- barang tidak ada, kosongkan text Me.TEXT5 = "" End If

Page 189: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

189

Rs.Close Set Rs = Nothing End Sub

Untuk menghitung total PO

Sub HITUNG_total_penjualan() '/----------------------------------------------------/

'/ MENGHITUNG TOTAL PENJUALAN

'/ DENGAN CARA MENJUMLAH-KAN ANGKA PADA KOLOM SUBTOTAL

'/ DI KOLOM KE 5

'/

'/ NOMER = kolom 0

'/ KODE BARANG = kolom 1

'/ NAMA BARANG = kolom 2

'/ JUMLAH = kolom 3

'/ HARGA = kolom 4

'/ SUBTOTAL = kolom 5

'/----------------------------------------------------/

On Error Resume Next Dim oSUBTOTAL, oTOTAL oSUBTOTAL = 0 oTOTAL = 0 '/-----------------------------------------/

'/ looping di listview

'/ jumlahkan subtotal di kolom 5

'/-----------------------------------------/

For a = 1 To ListView1.ListItems.Count

oSUBTOTAL = oSUBTOTAL + Val(ListView1.ListItems(a).SubItems(5))

Next

Page 190: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

190

'/---------------------------------------------------/

'/ cek angka total

'/ pastikan angka nol (numerik)

'/ karena akan digunakan untuk hitungan grandtotal

'/---------------------------------------------------/

If IsNumeric(Me.Text8) = False Then Me.Text8 = 0 If IsNumeric(Me.Text9) = False Then Me.Text9 = 0 If IsNumeric(Me.Text10) = False Then Me.Text10 = 0 If IsNumeric(Me.Text11) = False Then Me.Text11 = 0

'/---------------------------------------------------/

'/ hitung

'/---------------------------------------------------/

Me.Text8 = oSUBTOTAL '---subtotal

Me.Text10 = 10 / 100 * (Me.Text8 - Me.Text9) '---pajak

'/ grandtotal = subtotal - potongan + pajak

Me.Text11 = val(Me.Text8) – val(Me.Text9) + val(Me.Text10) '---total

'/ display total

Me.Text12 = Format(Text11, "#,###,###,###,###") '---display End Sub

Sub KOSONG() '/ kosongin semua textbox, combobox

Dim ctrl As Control For Each ctrl In Me If TypeName(ctrl) = "TextBox" Then ctrl.Text = "" If TypeName(ctrl) = "ComboBox" Then ctrl.Text = "" Next Me.DTPicker1.Value = Date End Sub

Page 191: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

191

Sub NOMER_URUT() Call BUKA_Db '/--------------------------------------------------/

'/ nomer urut otomatis +1

'/ nomer menjadi 1 saat TAHUN BARU

'/ maka FILTER juga berdasarkan TAHUN

'/

'/ buka table jual, ambil nomer akhir

'/ gunakan ORDER BY nomer_akhir DESC ->

'/ agar nomer akhir diatas

'/ record ke #1

'/--------------------------------------------------/

aa = ""

aa = "select * from jual " & _

" where year(tgl)=" & Year(Date) & _

" order by nomer_akhir desc" Dim NOmer Set Rs = New ADODB.Recordset Rs.Open aa, Conn, adOpenStatic, adLockOptimistic

If Not Rs.EOF Then '---jika datanya nomer ada

'/ ambil nomer ter-akhir

NOmer = Rs("nomer_akhir") Else

'/nomer baru NOmer = 0 End If Rs.Close Set Rs = Nothing

Page 192: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

192

'/ tambahkan nomer

NOmer = NOmer + 1

'/-------------------------------------------------------/

'/ munculkan nomer lengkap

'/

'/ format nomer: BULAN TAHUN - 00001

'/ contoh : 1112-00001 '/

'/ 11 =bulan 2 digit

'/ 12 =tahun 2 digit

'/ 00001=nomer urut otomatis 5 digit

'/-------------------------------------------------------/

Dim oBULAN, oTAHUN, oAKHIR oBULAN = Format(Date, "MM")

oTAHUN = Format(Date, "yy")

oAKHIR = Right("00000" & NOmer, 5) '/5=banyaknya NOL

'---jadideh

Me.Text1 = oBULAN & oTAHUN & "-" & oAKHIR End SUB

Page 193: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

193

Code2 di FORM

FORM - LOAD '/ kosongin text Call KOSONG '/ seting listview nya Call LISTVIEW_SETTING '/ isi combo customer Call ISI_CUSTOMER

Code di COMBO, TEXT, GRID

COMBO1 CUSTOMER - CLICK Call CARI_NAMA_CUSTOMER

TEXT3 – LostFocus (text KODE BARANG) Call CARI_NAMA_BARANG

Page 194: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

194

TEXT5 – Change (text HARGA) On Error Resume Next Text7 = Val(TEXT5) * Val(Text6)

TEXT6 – Change (text JUMLAH) On Error Resume Next Text7 = Val(TEXT5) * Val(Text6)

LISTVIEW1 - ItemClick

'--- MUNCULKAN BARANG KE TEXT '--- jika LISTVIEW di CLICK Text13 = ListView1.ListItems(ListView1.SelectedItem.Index) '---nomer With ListView1.SelectedItem.ListSubItems Text3 = .Item(1) '---kode TEXT4 = .Item(2) '---nama TEXT5 = .Item(3) '---harga Text6 = .Item(4) '---jumlah Text7 = .Item(5) '---subtotal End With

Page 195: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

195

Code di TOMBOL-TOMBOL

TOMBOL : NEW Call KOSONG Call NOMER_urut Me.Text1.SetFocus

TOMBOL : SAVE Dim TAnya TAnya = MsgBox("APAKAH TRANSAKSI AKAN DI SIMPAN..?", vbQuestion + vbYesNo) If TAnya = vbNo Then

Page 196: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

196

Exit Sub End If '/==============================================/

'/

'/ simpan

'/

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

Call BUKA_Db '/ hitung lagi Call HITUNG_TOTAL_JUAL

'/===========================================/ '/ #1. '/ simpan header/master '/ di table: BELI '/===========================================/

'/ cek : apakah nomer pembelian sudah ada? aa = ""

aa = "select * from JUAL " & _

" where no_jual ='" & Text1 & "' "

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

If Not Rs.EOF Then '—jika datanya ada MsgBox "NOMER PENJUALAN SUDAH ADA..", vbCritical Exit Sub End If

Page 197: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

197

'/--------------------------------------------------------/ '/ nomer baru '/ simpan data penjualan di table: JUAL '/--------------------------------------------------------/ Rs.AddNew Rs("no_jual") = Text1 '--- simpan NOMER AKHIR, agar bisa dilanjutkan kemudian '--- 5=adalah jumlah NOL di nomer urut '--- jadi field NOMER_AKHIR khusus untuk menyimpan nomer akhir

Rs("nomer_akhir") = Val(Right(Text1, 5)) Rs("tgl") = Me.DTPicker1.Value Rs("kdpelanggan") = Combo1 Rs("subtotal") = Text8 Rs("potongan") = Text9 Rs("pajak") = Text10 Rs("total_nya") = Text11

Rs.Update Rs.Close Set Rs = Nothing

'/============================================/ '/ #2. '/ simpan detail barang '/ di table : JUAL_DETAIL '/ '/ looping di listview '/============================================/

Dim Mm As Integer

Page 198: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

198

'/ loooping di listview

For Mm = 1 To ListView1.ListItems.Count

With Me.ListView1.ListItems(Mm)

'/-------------------------------------------------------------------------------------/ '/ simpan barang di table JUAL_DETAIL '/ karena hanya menyimpan saja, gunakan pencarian sembarang '/-------------------------------------------------------------------------------------/ bb = ""

bb = "select * from JUAL_DETAIL " & _

" where no_jual ='1234567890'"

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

Rs.AddNew

Rs("no_jual") = Text1 Rs("kdbarang") = .SubItems(1) Rs("nmbarang") = .SubItems(2) Rs("harga") = .SubItems(3) Rs("jumlah") = .SubItems(4) Rs("subtotal") = .SubItems(5)

Rs.Update

Rs.Close Set Rs = Nothing

'/-----------------------------------------------------------------------/ '/ update stok berkurang '/ (kode ini tidak diperlukan, tidak perlu diketik '/ jika tidak menggunakan STOK/GUDANG ) '/

Page 199: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

199

'/ .SubItems(4) --> jumlah barang penjualan '/ .SubItems(1) --> kode barang nya '/------------------------------------------------------------------------/ cc = ""

cc = " update barang " & _

" set STOK = STOK - " & Val(.SubItems(4)) & _

" where kdbarang ='" & .SubItems(1) & "' "

Conn.Execute cc

End With Next MsgBox "OK..", vbInformation

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

TOMBOL : PRINT BON Call BUKA_Db With CrystalReport1 '/---KONEKSI REPORT DG ODBC---/

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

.Connect = KONEKSI_string

Ini adalah nama file

report nya.

Disesuaikan yah…

.RPT extensinya

Page 200: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

200

'/---SELEKSI DATA---/ .SelectionFormula = "{JUAL.NO_JUAL}='" & Me.Text1 & "' "

'/---UPDATE KAN DATABASE---/ .RetrieveDataFiles .DiscardSavedData = True '/---TUJUAN PRINT---/ .Destination = crptToWindow '/---SETINGAN LAINNYA---/ .WindowState = crptMaximized '/--TAMPILAN PENUH .WindowShowRefreshBtn = True '/--TOMBOL REFRESH MUNCUL .Action = 1 '/--JALANKAN REPORT End With

Catatan report:

Jangan lupa untuk membuat DESIGN REPORT nya dulu

Nama FILE REPORT disamakan dengan KODE

SImpan FILE REPORT di satu folder dengan program project vb nya

TOMBOL : HITUNG ULANG Call HITUNG_TOTAL_JUAL

Page 201: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

201

Code di

TOMBOL BARANG

TOMBOL : SIMPAN BARANG '--- cek angka If IsNumeric(Me.TEXT5) = False Then '--- cek harga MsgBox "INPUT HARGA DENGAN ANGKA..", vbCritical Exit Sub End If If IsNumeric(Me.Text6) = False Then '--- cek jumlah MsgBox "INPUT JUMLAH DENGAN ANGKA..", vbCritical Exit Sub End If '--- cek input lainnya If Me.Text3 = "" Then '--- cek kode barang MsgBox "KODE BARANG BELUM DI INPUT..", vbCritical Exit Sub End If '/------------------------------------------/ '/ data ok '/ masukan ke listview '/------------------------------------------/

Page 202: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

202

'---masukan data barang ke listview '---nambah data baru Dim NOmer As Integer

NOmer = ListView1.ListItems.Count + 1 Dim Lv As ListItem Set Lv = ListView1.ListItems.Add(, , NOmer) Lv.SubItems(1) = Me.Text3 '---kode Lv.SubItems(2) = Me.TEXT4 '---nama Lv.SubItems(3) = Me.TEXT5 '---harga Lv.SubItems(4) = Me.Text6 '---jumlah Lv.SubItems(5) = Me.Text7 '---subtotal '--- kosongkan barang Me.Text3 = "" Me.TEXT4 = "" Me.TEXT5 = "" Me.Text6 = "" Me.Text7 = "" Me.Text3.SetFocus '/ hitung total Call HITUNG_TOTAL_JUAL

TOMBOL : CANCEL Text3 = "" TEXT4 = "" TEXT5 = ""

Page 203: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

203

Text6 = "" Text7 = "" Text8 = "" Text13 = "" Text3.SetFocus

TOMBOL : RUBAH BARANG

'---rubah data di listview

Dim NOmer As Integer NOmer = Val(Text13) With ListView1.ListItems(NOmer) .SubItems(1) = Me.Text3 '---kode .SubItems(2) = Me.TEXT4 '---nama .SubItems(3) = Me.TEXT5 '---harga .SubItems(4) = Me.Text6 '---jumlah .SubItems(5) = Me.Text7 '---subtotal End With MsgBox "RUBAH DATA..", vbInformation Text3 = "" TEXT4 = "" TEXT5 = "" Text6 = "" Text7 = "" Text8 = "" Text13 = "" Text3.SetFocus

Page 204: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

204

TOMBOL : DELETE BARANG '/ kode error ini untuk jaga2 kalo listview kosong di hapus sama user On Error Resume Next

'/ hapus data di posisi kursus aktif ListView1.ListItems.Remove ListView1.SelectedItem.Index

'/ urutkan kembali nomer urut barang Dim NOmer As Integer For NOmer = 1 To Me.ListView1.ListItems.Count ListView1.ListItems(NOmer).Text = NOmer '---simpan nomer di listview Next

Page 205: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

205

Page 206: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

206

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 207: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

207

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 208: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

208

Procedure untuk mengambil pilihan data

Sub AMBIL_BARANG() With Form_PENJUALAN .TEXT3 = Me.MSHFlexGrid1.TextMatrix(Me.MSHFlexGrid1.Row, 1) '/---kodebarang .TEXT4 = Me.MSHFlexGrid1.TextMatrix(Me.MSHFlexGrid1.Row, 2) '/---namabarang .TEXT5 = 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 209: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

209

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 210: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

210

Page 211: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

211

Crystal Report

membuat BON

STRUK PENJUALAN

Page 212: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

212

TAMPILAN BON PENJUALAN

(Master – Detail)

Page 213: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

213

A.Membuat BON STRUK PENJUALAN

1

2

3

4

Page 214: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

214

5

6

7

Pilih jenis koneksi nya;

OLEDB

Untuk SQL2000 pilih :

Microsoft OLEDB..

Jika pake SQL2005,2008

pilih: SQL Native Client

Page 215: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

215

Hasilnya:

8

9

10

Ketik NAMA SERVER; ketik

(LOCAL) jika DB di kompi

sendiri

Ketik / pilih nama

database nya

Page 216: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

216

AMBIL TABLE TABLE YANG DIPERLUKAN (Barang, Customer, Jual, Jual_Detail)

Klik TABLE: BARANG + klik TOMBOL ADD, klik CUSTOMER+ADD… terus Selanjutkan RELATIONSHIP, CEK jika ada yg salah, HAPUS-lah link yg salah

14..

15

12

11

13

Jika koneksi OK, maka

nama2 TABLE akan

muncul. PILIH TABLE yg

akan dipake..

Page 217: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

217

HAPUS LINK YG SALAH: klik garis nya + DELETE

BENAR

SALAH

BENAR

16

17

Page 218: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

218

GAMBAR RELATIONSHIP TABLE

Ambil FIELD-FIELD yang diperlukan:

20 18

19

Page 219: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

219

Klik NO_JUAL (Jual) + TOMBOL ADD Klik TGL (Jual) + TOMBOL ADD….

>> FINISH <<

21

Page 220: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

220

B.GROUP DESIGN REPORT MASIH STANDARD

B. MENAMBAH GROUP (Untuk MASTER nya) Menu: INSERT + GROUP

15

16

Page 221: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

221

>> GROUP JUAL.NO_JUAL (ini untuk DATA MASTER nya)

Hasilnya MUNCUL RUANG BARU yaitu: GROUP HEADER #1

17

18

Page 222: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

222

DESIGN 1.GRUOP NAME NYA HAPUS AJA… KARENA TIDAK DIPERLUKAN

( KLIK KANANdi GROUP #1 NAME + DELETE)

2. GESERLAH GROUP HEADER untuk membuat ruang-ruang MASTER-DETAIL NYA

19

20

21

Page 223: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

223

3. PINDAHKAN LABEL DARI : PAGE HEADER GROUP HEADER, setting tampilan BUAT JUDUL, DLL sbb:

22.Judul

23.judul

24.field

Page 224: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

224

PREVIEW :

Page 225: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

225

--optional—

Membuat TGL CETAK, JAM CETAK, HALAMAN

FIELD OBJECT Field object yg digunakan: PAGE NUMBER , PRINT DATE , PAGE N of M

INSERT FIELD OBJECT: Menu= INSERT + FIELD OBJECT

Ambil FIELD OBJECT, Langsung DRAG ke DESIGN REPORT nya…

24.

25.

Page 226: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

226

Page 227: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

227

Laporan Transaksi

MEMBUAT LAPORAN TRANSAKSI dengan BATAS TANGGAL

Page 228: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

228

LAPORAN TRANSAKSI HARIAN 2 TANGGAL

Code di TOMBOL PRINT

Call BUKA_Db With CrystalReport1 '/---KONEKSI REPORT DG ODBC---/ .ReportFileName = App.Path & "\BON_PENJUALAN_OLEDB.RPT" .Connect = KONEKSI_string .DiscardSavedData = True .RetrieveDataFiles '/---UPDATE KAN DATABASE '/---SELEKSI DATA---/ If Me.Option1.Value = True Then .SelectionFormula = "" End If

OPTION1

OPTION2

OPTION3 OPTION4

Page 229: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

229

'/---SELEKSI DATA PER TANGGAL---/ If Me.Option2.Value = True Then

.SelectionFormula = "{JUAL.TGL} >= CDATE('" &

Me.DTPicker1.Value & "') AND {JUAL.TGL} <=

CDATE('" & Me.DTPicker2.Value & "') " End If '/---TUJUAN PRINT; KE MONITOR/ PRINTER---/ If Me.Option3.Value = True Then .Destination = crptToWindow If Me.Option4.Value = True Then .Destination = crptToPrinter .WindowState = crptMaximized '/--TAMPILAN PENUH .WindowShowRefreshBtn = True '/--TOMBOL REFRESH MUNCUL .Action = 1 '/--JALANKAN REPORT End With

Keterangan:

PADA CRYSTAL REPORT GUNAKAN FUNGSI CDATE untuk membaca type data

TANGGAL

Penulisan TANGGAL DIAPIT dengan TANDA KUTIP SATU ( ‘ )

Jika tanggal RANGE maka

{TABLE.field} >= CDATE (‘Tgl-1’) and {TABLE.field} <= CDATE (‘Tgl-2’)

NulisnyA DI SAMBUNG

yahhh 1 BARIS

Page 230: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

230

Info penting; Sebaiknya jika menggunakan SQL Server

REGIONAL SETTING dirubah ke ENGLISH UNITED STATED, agar format angka dan tanggal menjadi format

bahasa inggris

Control Panel + +

Page 231: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

231

Selesai

Alhamdulillah Nantikan versi .Net nya

Page 232: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

232

mySYSTEM adalah system untuk pabrik

Page 233: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

233

Page 234: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

234

Di beberapa customer:

Page 235: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

235

Page 236: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

236

Page 237: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

237

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

Dosen+Model

0857-73-59-59-69 TIDAK DILARANG untuk kirim-kirim PULSA ke nomer ini…

^_^

Page 238: Modul Mandiri Vb6 Indraes Keren Final 17-11-2012

@Indra ES Keren,Beken,Manis,Imut,dll , 0857-73-59-59-69

238

Terima kasih Sudah membaca PDF ane

Semoga mamfaat

Jika ingin be-donasi silahkan transfer ke BCA ane:

Nama: indra erawan sanjaya No.rekening : 84-2000-54-75