modul mandiri vb6 indraes keren dasar master_detail 25-12-2011
TRANSCRIPT
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Modul belajar pemograman mandiri .. Indra Erawan Sanjaya
VB6 Program Penjualan
My emotion….Naruto
Update: 1-Desember-2011
Indra erawan sanjaya
Dosen programming parttimer, Aktif dalam membangun system untuk system Produksi Penuh ramah, manis, periang, hangat, harmonis, penyayang, seru, lucu, imut, aseek, dll…… Semoga ilmu ini membawa mamfaat & mendapat RIDHO dari ALLAH SWT…… amin
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Hayoooo.. MENIKAH jangan PACARAN.. ^_^
Dengan MENIKAH hati menjadi tenang karena si –yayang- sudah HALAL diapain aja boleh…disentuh, dipegang, diremas,dibejeg bejeg, dilipat dll.. karena menikah Sunnah
Rosul mendapat PAHALA & RIDHO dari Allah SWT bukan pacaran. Bagi pemuda/i yg belum sanggup untuk menikah & ber-tegangan TINGGI dianjurkan
oleh Nabi untuk BERPUASA bukan pacaran.. MENIKAH-lah diusia MUDA (umur 20-25) karena DARAH lagi PANAS-PANAS nya dan
membuat pribadi jadi matang dewasa serta memberikan Semangat juang pantang menyerah..
(saya nikah diumur 25 thn-lg GANTENG GANTENG nya..loh lihat poto
dibawah)
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Ane nih.. sekarang & dulu…
Wihhhhhh… nih orang
KEREN banget.. mirip Gue
lagi.., wah pasaran MODEL
bisa turun nih..
Bisa minta Tanda
Tangannya ga yah… atau
Foto bareng dehhh..
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Iklan baris dulu….
J U A L A N
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Visual Basic 6 Terapan
Membuat program toko:
PENJUALAN &
STOK dg
SQL Server
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
*Ngobrol dulu: DATABASE Ngobrol-ngonrol tentang database yang sering digunakan yuuukkkkkkkkkkkkkkkk….
ACCESS Adalah database BUKAN SERVER, database yang mudah, ringan, tidak memerlukan installasi, maintenance database mudah, dll untuk digunakan dalam pemograman. Access juga ada dalam paket Microsoft OFFICE jadi hampir semua computer mempunyai database Access VERSI ACCESS Versi access mulai access 97, 2000, 2002, 2003, 2007 dan seterusnya mengikuti versi ms.Office. Tapi untuk keperluan pemograman database dari pengalaman yang sudah-sudah… lebih baik menggunakan VERSI 2003 (Office 2003) CONTOH SYSTEM Program – program hanya dalam 1 departemen, usaha kecil, UKM, sekalipun lintas dept. tapi tidak memerlukan data yang besar. Contohnya: usaha-usaha kecil, program toko, program untuk service HP, Program penjualan konter, Program gudang, Program apotek, dll
SQL SERVER Adalah database SERVER untuk SKALA MENENGAH ~ BESAR, memang dipersiapkan untuk menangani system yang luas dan komplek. VERSI SQL SERVER Versi SQL server dimulai dari SQL server 7, SQL 2000 versi ini adalah favorit para programmer karena pada versi ini database tidak membutuhkan SPEK KOMPUTER yang tinggi dan TIDAK membutuhkan FRAMEWORK, SQL 2005, SQL 2008 mulai versi 2005 database SQL membutuh spek computer yang tinggi dan membutuhkan FRAMEWORK 2.0 ke-atas VERSI GRATIS SQL SERVER (Express) SQL server mempunyai versi GRATIS… yah benar kita TIDAK PERLU MEMBAYAR LISENCE ke Microsoft karena memang betul2 gratis, bias digunakan untuk edukasi, pribadi ataupun pengembangan system. Yaitu versi SQL 2005 EXPRESS (maximum ukuran database 4 Gb), SQL 2008 EXPRESS (maximum ukuran database 10 Gb) CONTOH SYSTEM Program – program besar yang biasanya sudah lintas dept, melibatkan banyak user. Contoh: program pabrik /perusahaan (penjualan, pembelian, gudang, dll), SAP, dll DATABASE LAINNYA : ORACLE, DB2, MYSQL, POSTGRESQL, FIREBIRD, Dll
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
*Ngobrol dulu: DAFTAR JENIS FIELD
Disini menampilkan daftar FIELD yang ada di ACCESS dengan field serupa pada SQL SERVER, ini berguna jika ingin meng-konversi database dari access ke sql server ataupun untuk code2 lainnya. Ini merupakan field2 yang sering digunakan dalam pemograman
No ACCESS SQL SERVER KETERANGAN
1 TEXT VARCHAR Field untuk text. Contoh: nama, kode, alamat, dll
2 DATETIME DATETIME Field untuk tanggal. Contoh: tanggal lahir, tanggal pendaftaran, Tgl pembayaran SMALLDATETIME tahun terbatas DATETIME tahun tidak terbatas
3 AUTONUMBER INT (increment=1)
Field untuk nomer urut otomatis Setiap data bertambah, maka table otomais akan membuat angka urut yg unik
4 NUMBER (DOUBLE)
FLOAT MONEY
Field untuk angka dengan DESIMAL Contoh: harga untuk matauang selain RP, berat barang, subtotal invoice, total penjualan, dll MONEY angka dg 4 desimal FLOAT jumlah decimal bebas (bias angka bulat/ ada decimal nya jad flexible)
5 NUMBER (LONG INTEGER)
FLOAT
Field untuk angka BULAT (tidak ada decimal) Contoh: harga dalam RP, jumlah barang
6 OLE IMAGE
Field untuk menyimpan gambar
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
*Ngobrol dulu: KONEKSI VB ke DATABASE
Untuk koneksi VB ke database ada banyak cara lohhhh; 1.dengan OLEDB 2.dengan ODBC ILUSTRASI : OLEDB ILUSTRASI : ODBC (favorit ane nih…)
Visual Basic Database
Code koneksi
database ada
di MODULE
Visual Basic
Database
Code koneksi
database ada
di MODULE
ODBC di control
panel windows
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
OLAH DASAR Database SQL Server
a.membuat database b.attach database c.copy file Database ke flashdisk/lokasi lain d.registrasi local komputer
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
a.Membuat Database
1.Membuat Database SQL Server
(Klik kanan di database + NEW Database)
2.Mengetik Nama Database
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
(Klik NAMA DATABASE nya)
3.Menyimpan Lokasi File Database SQL Server
Klik kotak.. Location, dan pilih folder
untuk simpan database
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
4.Membuat TABLE
(Klik kanan di TABLE + pilih NEW TABLE)
5.Input FIELD
(Ketik nama FIELD dan TYPE nya, jika sudah KLIK ICON SAVE)
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
6.Input DATA di table
(klik KANAN di table BARANG + OPEN TABLE + RETURN ALL ROWS )
INGAT… input datanya per BARIS , jangan per KOLOM
7.Edit FIELD (modifikasi field : hapus/tambah)
( Klk KANAN di table BARANG + DESIGN TABLE )
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
b.Attach Database
Memasukkan file database SQL server kita kedalam Enterprise Manager SQL Server
1
2
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
3.ambil file database sql nya (*.MDF)
3
4
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
B
5
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
c.Copy file db ke flashdisk
Jika ingin meng-copy file database ke FLASHDISK / ke tempat lainnya, langkah sbb:
1.MATIKAN SERVICE SQL SERVER
1
2
3
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Service sql sudah mati…. Sekarang tinggal COPY DEH FILE DATABASE SQL nya ke FLASHDISK
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
=
Mirip …. Sama2 keren, BEDA tipis..
Ihhhh dosen nya
manis Beuttt..
Dosennya mirip
AFGAN dehh
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
VB6. Program Penjualan & Stok Toko
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
1.SYSTEM PENJUALAN TOKO
Database SQL Server
Table: BARANG No NAMA FIELD JENIS LEBAR KET
1 KDBARANG VARCHAR 20 PrimaryKey
2 NMBARANG VARCHAR 50
3 HARGA FLOAT
4 STOK FLOAT
Table: CUSTOMER No NAMA FIELD JENIS LEBAR KET
1 KDPELANGGAN VARCHAR 20 PrimaryKey
2 NMPELANGGAN VARCHAR 50
3 ALAMAT VARCHAR 100
4 TELP VARCHAR 50
5 KONTAK_PERSON VARCHAR 50
Isi data sebanyak 5 data
Untuk SQL SERVER jangan lupa untuk MERUBAH LOKASI PENYIMPANAN DATA DATABASE nya
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
2.membuat koneksi ODBC
Buka CONTROL PANEL ADMINISTRATION TOOLS ODBC
(Klik tombol ADD )
1
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
(Klik SQL SERVER –untuk SQL server 2000--, jika menggunakan SQL2005, pilih SQL NativeClient)
(Ketik NAME ODBC_TOKO ..untuk nama odbc nya,nama ini digunakan dalam MODULE VB)
(Ketik SERVER (local) atau TITIK ―.‖ …karena LOKASI DB di local komp, jika di server,
maka ketik NAMA SERVER nya
2
3
4
5
6
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
(Untuk LOCAL, klik NEXT aja, tapi jika DB di SERVER di input USER-PASSWORD nya)
(ketik/ pilih NAMA DATABASE nya –9) NEXT – FINISH - OK
7
8
9
10
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Hasil setting ODBC
Muncul nama baru ODBC_TOKO yang baru kita buat
Jika ada MODIFIKASI klik tombol CONFIGURE
Penting 1
Nama Odbc (ODBC_TOKO) akan digunakan dalam MODULE VB, Jadi NAMA ODBC ini akan sama dengan
code koneksi di modul (jangan sampe SALAH)
Penting 2
Nama Odbc (ODBC_TOKO) harus dibuat terlebih dahulu di Komputer nya
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Vb6 ADODB
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Tehnik pemograman VB database dg AdoDB
3.sekitar ADODB
Tahapan menggunakan ADODB dalam pemograman, Secara umum tahapan Adodb yang biasa kita gunakan dalam CODE sbb :
No Langkah Keterangan
DIFINISI
0 Jangan LUPA meng-aktifkan REFERENSI ADODB nya
Menu= Project + Reference
1 Difinisikan VARIABLE PUBLIC KONEKSI untuk: -Koneksi DATABASE
(code di module) Public Conn As ADODB.Connection
2 Difinisikan VARIABLE PUBLIC TABLE untuk: -Koneksi MEMBUKA TABLE Jumlah VARIABLE tergantung kebutuhan untuk membuka jumlah table nya. Misalnya jika hanya ada 1 table maka VARIABEL juga cukup 1 saja, jika ada 3 table, maka VARIABLE bisa dibuat 3
(code di module) Public Rs As ADODB.Recordset Atau Public Rs_Barang As ADODB.Recordset Public Rs_supplier As ADODB.Recordset
3 Membuat KONEKSI DATABASE di MODULE (code di module) Sub BUKA_DB
PENGGUNAAN, MEMBUKA DATA 4 Panggilah KONEKSI pada saat ingin meng-akses
data/table (Code di Form) Call BUKA_DB
5 Buat SQL Query untuk membaca table/ mengambil data yg diperlukan
Aa=” SELECT……”
6 Aktifkan VARIABEL TABLE Set Rs = New ADODB.Recordset
7 Buka TABLE nya Rs.Open AA, Conn, adOpenStatic, adLockOptimistic
8 ….jika telah selesai, jangan lupa TUTUP KEMBALI variable table nya, agar dapat digunakan kembali
Rs.Close Set Rs = Nothing
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
a.ADODB. Aktifkan referensi Buatlah sebuah PROJECT Aktifkan REFERENSI ADODB terlebih dahulu, sbb:
(Klik menu PROJECT + REFERENCES )
[X] Microsoft active data objects 2.8 Library [X] Microsoft active data objects RECORDSET 2.8 Library
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
INPUT DATA
BARU
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
1.Membuat FORM DASAR: INPUT DATA BARANG
INI adalah FORM DASAR untuk input data baru. Form TIDAK DIGABUNGKAN dengan fungsi-fungsi yang lain, hanya INPUT-SAVE saja.
Setelah MENGERTI, maka fungsi TAMBAH DATA akan digabungkan dengan fungsi-fungsi yang lain (Edit,Delete, Find)
LANGKAH PADA SAAT proses SIMPAN DATA BARU:
1. CEK PRIMARY KEY, apakah data sudah ada? Jika sudah ada
Munculkan pesan & batalkan proses
2. CEK input data ANGKA jika ada input angka (contohnya=
jumlah,harga,stok,dll) apakah user input data nya sudah benar. Gunakan fungsi ISNUMERIC, jika IsNumeric bernilai FALSE artinya user input data angka salah (ada hurufnya), batalkan proses
3. Setelah semua CEK ok, baru data di SIMPAN
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Form input data barang baru:
Name:
TOMBOL INPUT, TOMBOL_SAVE, TOMBOL_CANCEL, TOMBOL_CLOSE
DATA BARANG
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Membuat
KONEKSI ke SQL server
di MODULE
TAMBAHKAN MODULE : menu PROJECT + MODULE
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Ini BUDI ehhhh…salah; ini adalah code untuk koneksi ke database dengan tehnik ODBC
'/----- buat variable PUBLIC untuk KONEKSI dan TABLE (Record) nya '/----- nama variable BEBAS (conn bisa diganti missal: EMBER,PANCI,dll) '/----- variable KONEKSI cukup 1 saja '/----- variable TABLE (Record) BISA LEBIH DARI 1, '/----- tergantung banyak table yang akan digunakan
Public Conn As ADODB.Connection '/ untuk koneksi keDB Public Rs As ADODB.Recordset '/ untuk buka TABLE '/----- ini adalah PROCEDURE untuk koneksi ke database
Sub BUKA_db()
On Error GoTo CEK Set Conn = New ADODB.Connection Conn.CursorLocation = adUseClient '/----- nama ODBC_TOKO harus sama dengan di ODBC CONTROL PANEL '/----- UID, PWD jika database server pake username & password
AA = "DSN=ODBC_TOKO;uid=;pwd=" Conn.Open AA Exit Sub CEK: MsgBox "KONEKSI ke DATABASE ERROR : " & Err.Description, vbCritical End
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Code di Form
Code di TOMBOL
Code TOMBOL INPUT
'/-----PANGGIL PROCEDURE UNTUK KOSONGKAN INPUT
CALL KOSONG '/-----HILANGKAN TOMBOL TOMBOL
Me.TOMBOL_input.Visible = False Me.TOMBOL_CLOSE.Visible = False '/-----MUNCULKAN TOMBOL TOMBOL Me.TOMBOL_simpan.Visible = True Me.TOMBOL_cancel.Visible = True '/-----LETAKKAN KURSOR DI KDBARANG
Me.TXT_KDBARANG.SetFocus
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Code TOMBOL SAVE
'/ SIMPAN DATA ==============/
'/=====================================/
'/ #1, CEK INPUT DATA PENTING
'/ jika kode barang blm diinput,beri pesan '/=====================================/ If ME.TXT_KDBARANG=‖‖ Then MsgBox "KODE BARANG BELUM DIINPUT", vbInformation Exit Sub End If
'/=====================================/
'/ #2, CEK INPUT ANGKA
'/=====================================/
If IsNumeric(Me.TXT_HARGA) = False Then
MsgBox "INPUT HARGA DENGANA ANGKA", vbInformation Exit Sub End If
If IsNumeric(Me.TXT_STOK) = False Then
MsgBox "INPUT STOK DENGANA ANGKA", vbInformation Exit Sub End If
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
'/=========================================================/
'/ CEK '/ #1, CEK PRIMARY KEY TIDAK BOLEH SAMA '/=========================================================/
Call BUKA_db IMUT = "" IMUT = " SELECT * FROM BARANG " & _
" WHERE KDBARANG='" & Trim(Me.TXT_KDBARANG) & "' "
Set Rs = New ADODB.Recordset Rs.Open IMUT, Conn, adOpenStatic, adLockOptimistic
If Not Rs.EOF Then ‗--Apakah data ada?
'/====================================/ '/ KODE SUDAH ADA '/ PROSES DI BATALKAN '/====================================/ MsgBox "KODE BARANG SUDAH ADA..", vbInformation Exit Sub ‗—keluar dari code kembali ke form End If Rs.Close Set Rs = Nothing
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
'/===============/ '/ #3, SIMPAN DATA '/===============/ IMUT = ""
IMUT = " SELECT * FROM BARANG " & _
" WHERE KDBARANG='" & Trim(Me.TXT_KDBARANG) & "' "
Set Rs = New ADODB.Recordset Rs.Open IMUT, Conn, adOpenStatic, adLockOptimistic
Rs.AddNew ‘--siapkan data baru Rs("KDBARANG") = Trim(Me.TXT_KDBARANG) Rs("NMBARANG") = Me.TXT_NMBARANG Rs("HARGA") = Me.TXT_HARGA Rs("STOK") = Me.TXT_STOK
Rs.Update ‘—simpan data
Rs.Close ‘—tutup table
Set Rs = Nothing ‘—hapus data dr memori '/=========================================================/ '/ atur kembali tombol tombol '/=========================================================/ '/-----MUNCULKAN TOMBOL TOMBOL
Me.TOMBOL_input.Visible = TRUE Me.TOMBOL_CLOSE.Visible = TRUE
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
'/-----MATIKAN TOMBOL TOMBOL Me.TOMBOL_simpan.Visible = FALSE Me.TOMBOL_cancel.Visible = FALSE MsgBox "DATA TELAH DI SIMPAN..", vbInformation
Code TOMBOL CANCEL
'/-----PANGGIL PROCEDURE UNTUK KOSONGKAN INPUT
CALL KOSONG '/-----MUNCULKAN TOMBOL TOMBOL
Me.TOMBOL_input.Visible = False Me.TOMBOL_CLOSE.Visible = False '/-----HILANGKAN TOMBOL TOMBOL Me.TOMBOL_simpan.Visible = True Me.TOMBOL_cancel.Visible = True MsgBox "CANCEL..", vbInformation
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Code di FORM
Code : FORM – LOAD
'/-----PANGGIL PROCEDURE UNTUK KOSONGKAN INPUT
CALL KOSONG '/-----MUNCULKAN TOMBOL TOMBOL
Me.TOMBOL_input.Visible = TRUE Me.TOMBOL_CLOSE.Visible = TRUE '/-----HILANGKAN TOMBOL TOMBOL Me.TOMBOL_simpan.Visible = FALSE Me.TOMBOL_cancel.Visible = FALSE
Code PROCEDURE
Procedure untuk mengosongkan input
SUB KOSONG() Me.TXT_KDBARANG = "" Me.TXT_NMBARANG = "" Me.TXT_HARGA = "" Me.TXT_STOK = "" END SUB
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Membuat perpindahan
cursor ke textbox berikut
nya Jika di ENTER..
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Ilustrasiiiiiiiiiiiiii….
Ada 2 cara tehnik : 1. Menggukan code : SETFOCUS
2. Menggunakan INDEX dan SENDKEYS ―{TAB}‖
Pada sata KURSOR
di TXT_KDBARANG
lalu kita ENTER
maka CURSOR
pindah ke
TXT_NMBARANG
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Code di TEXTBOX:
TEHNIK 1: dengan SETFOCUS
Code : TXT_KDBARANG – KEYDOWN
‗/-----Jika di TEKAN ENTER di TXT_KDBARANG, ‗/-----maka cursor pindah ke TXT_NMBARANG
IF KEYCODE=VbKeyReturn THEN
Me.TXT_NMBARANG.Setfocus
END IF
Code : TXT_NMBARANG – KEYDOWN
‗/-----Jika di TEKAN ENTER di TXT_NMBARANG, ‗/-----maka cursor pindah ke TXT_HARGA
IF KEYCODE=VbKeyReturn THEN
Me.TXT_HARGA.Setfocus
END IF
…begitu seterusnya, disemua textbox: TXT_HARGA, TXT_STOK
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
TEHNIK 2: dengan TABINDEX
#1, SETTING TABINDEX Aturlah TABINDEX (di properties) masing2 textbox, buat URUT dari input pertama bernilai=1… sampai ke input akhir. Nomer urut ini merupakan URUTAN PERPINDAHAN CURSOR
1
2
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
TXT_KDBARANG tabindex = 1 TXT_NMBARANG tabindex = 2 TXT_HARGA tabindex = 3 TXT_STOK tabindex = 4
Begitu seterusnya sampai data terakhir….
#2, CODE DI TEXTBOX
Code : TXT_KDBARANG – KEYDOWN
‗/-----Jika di TEKAN ENTER di TXT_KDBARANG, ‗/-----maka jalankan fungsi ―TAB‖ ‗/-----yg MEMINDAHKAN CURSOR sesuai urutan TABINDEX
IF KEYCODE=VbKeyReturn THEN
SENDKEYS ―{TAB}‖ END IF
3 4
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Code : TXT_NMBARANG – KEYDOWN
‗/-----Jika di TEKAN ENTER di TXT_NMBARANG, ‗/-----maka jalankan fungsi ―TAB‖ ‗/-----yg MEMINDAHKAN CURSOR sesuai urutan TABINDEX
IF KEYCODE=VbKeyReturn THEN
SENDKEYS ―{TAB}‖ END IF
Begitu seterus nya… di TXT_HARGA, TXT_STOK
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Bagaimana mengatur TOMBOL TOMBOL (Enabled)
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
SAAT FORM MUNCUL (form standby): TOMBOL YANG MATI : Tombol SAVE, CANCEL TOMBOL YANG AKTIF: Tombol NEW,EDIT,DELETE,FIND,CLOSE
SAAT TOMBOL INPUT DI KLIK (mau input data baru): TOMBOL YANG MATI : Tombol NEW,EDIT,DELETE,FIND,CLOSE TOMBOL YANG AKTIF: Tombol SAVE, CANCEL
SAAT TOMBOL SAVE (simpan data baru) DI KLIK (data mau di
save): TOMBOL YANG MATI : Tombol SAVE, CANCEL TOMBOL YANG AKTIF: Tombol NEW,EDIT,DELETE,FIND,CLOSE
SAAT TOMBOL CANCEL DI KLIK: TOMBOL YANG MATI : Tombol SAVE, CANCEL TOMBOL YANG AKTIF: Tombol NEW,EDIT,DELETE,FIND,CLOSE
SAAT TOMBOL EDIT DI KLIK (mau rubah data): TOMBOL YANG MATI : Tombol NEW,EDIT,DELETE,FIND,CLOSE TOMBOL YANG AKTIF: Tombol SAVE, CANCEL
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
SAAT TOMBOL UPDATE (simpan data yg dirubah) DI KLIK (data
mau di simpan): TOMBOL YANG MATI : Tombol SAVE, CANCEL TOMBOL YANG AKTIF: Tombol NEW,EDIT,DELETE,FIND,CLOSE Code yang digunakan :
Tombol aktif:
TOMBOL_NEW.Enaled=True
Tombol mati:
TOMBOL_NEW.Enaled=False
…Aturlah FORM yang sudah ada, sehingga USER menjadi jelas tombol-tombol mana saja yang
BOLEH DI KLIK atau TIDAK
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
2.Cari, Hapus Edit-
Update, data
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Cari , Hapus, Edit-Update data
Code di TOMBOL CARIKODE
Code TOMBOL CARI
'/=========================================/ '/ INPUT DATA KODE BARANG YANG DICARI '/=========================================/ Dim CARI CARI = InputBox("INPUT KODE BARANG YANG DICARI :") '/--JIKA TIDAK DI INPUT, MAKA BATALKAN PROSES If CARI = "" Then Exit Sub End If '/--JIKA KODE BARANG DIINPUT, MAKA CARI KODE
Name: TOMBOL_EDIT,
TOMBOL_UPDATE, TOMBOL_DELETE,
TOMBOL_CARI
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
'/--buka koneksi ke database Call BUKA_db '/--buka SQL; data barang dg WHERE untuk mencari KODE BARANG KEREN = ""
KEREN = " SELECT * FROM BARANG “ & _
“ WHERE KDBARANG ='" & CARI & "' " Set Rs = New ADODB.Recordset Rs.Open KEREN, Conn, adOpenStatic, adLockOptimistic '/--CEK, APAKAH DATA TIDAK ADA (EOF), '/--jika TIDAK ADA munculkan pesan, jika ADA munculkan DATA ke FORM
If NOT Rs.EOF Then '/--apakah data ada? '/--data kodebarang ada, munculkan ke form Me.TXT_KDBARANG = Rs("KDBARANG") Me.TXT_NMBARANG = Rs("NMBARANG") Me.TXT_HARGA = Rs("HARGA") Me.TXT_STOK = Rs("STOK") Else
'/--data kodebarang TIDAK ADA, beri pesan MsgBox "DATA TIDAK ADA", vbInformation End If Rs.Close Set Rs = Nothing
INFO: IF RS.EOF then Apakah data tidak ada
IF NOT RS.EOF then apakah data ada
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Code di TOMBOL DELETE
Code TOMBOL DELETE
'/--- TANYA DULU ---/ KEREN = "" KEREN = MsgBox("APAKAH DATA AKAN DI HAPUS ?", vbQuestion + vbYesNo) If KEREN = vbNo Then Exit Sub End If '/==============================================================/ '/ DATA DI HAPUS ‗/ gunakan perintah sql: DELETE dengan WHERE untuk kreterianya '/==============================================================/ ‗/----- buka koneksi database Call BUKA_db MANIS = ""
MANIS = " DELETE FROM BARANG " & _
" WHERE KDBARANG ='" & Trim(Me.TXT_KDBARANG) & "' " Conn.Execute MANIS '/-- EXECUTE Jalankan langsung perintah SQL MsgBox "DATA TELAH DI HAPUS", vbInformation Call KOsonG '/--panggil procedure untuk kosongkan text
Code di TOMBOL EDIT
Code TOMBOL EDIT
'/--- data KDBARANG adalah PRIMARYKEY yang TIDAK BOLEH BERUBAH '/--- maka pada saat di EDIT, TEXTBOX nya kita MATIKAN
Me.TXT_KDBARANG.Enabled = False ME.Txt_NMBarang.SetFocus '/--- Letakkan kursor
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
'/--- ATUR TOMBOL YG MUNCUL Me.TOMBOL_input. VISIBLE = False Me.TOMBOL_simpan. VISIBLE = False Me.TOMBOL_cancel. VISIBLE = False Me.TOMBOL_edit.VISIBLE = False Me.TOMBOL_delete. VISIBLE = False Me.TOMBOL_cari. VISIBLE = False Me.TOMBOL_update. VISIBLE = True
Code di TOMBOL UPDATE
Code TOMBOL UPDATE
'/=========================================================/
'/ #1, CEK INPUT ANGKA dg perintah IsNumeric
'/=========================================================/
If IsNumeric(Me.TXT_HARGA) = False Then
MsgBox "INPUT HARGA DENGAN ANGKA", vbInformation Exit Sub End If
If IsNumeric(Me.TXT_STOK) = False Then
MsgBox "INPUT STOK DENGAN ANGKA", vbInformation Exit Sub End If '/=========================================================/
'/ #2, UPDATE DATA
'/=========================================================/ Call BUKA_db ‘/--buka koneksi ke database
IMUT = ""
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
'/ buka data BARANG dg sql: SELECT menggunakan WHERE '/ untuk seleksi/kreteria per KODE BARANG yg akan di update
IMUT = " SELECT * FROM BARANG " & _
" WHERE KDBARANG='" & Me.TXT_KDBARANG & "' "
Set Rs = New ADODB.Recordset
Rs.Open IMUT, Conn, adOpenStatic, adLockOptimistic
'/--- simpan data FORM ke TABLE
Rs("KDBARANG") = Me.TXT_KDBARANG
Rs("NMBARANG") = Me.TXT_NMBARANG
Rs("HARGA") = Me.TXT_HARGA
Rs("STOK") = Me.TXT_STOK
Rs.Update '/ ---UPDATE save
Rs.Close
Set Rs = Nothing MsgBox "DATA TELAH DI UPDATE..", vbInformation '/--- ATUR TOMBOL YG MUNCUL Me.TOMBOL_input. VISIBLE = TRUE Me.TOMBOL_cancel. VISIBLE = TRUE Me.TOMBOL_edit.VISIBLE = TRUE Me.TOMBOL_delete. VISIBLE = TRUE Me.TOMBOL_cari. VISIBLE = TRUE Me.TOMBOL_simpan. VISIBLE = FALSE Me.TOMBOL_update. VISIBLE = FALSE
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
3.Menampilkan data dg
LISTVIEW
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Menampilkan data dari TABLE ke FORM LISTVIEW
LISTVIEW1
Name: TOMBOL_REFRESH Name: TXT_CARI
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
TAMBAH COMPONENT :
[v] Microsoft WINDOWS COMMON CONTROL 6.0 buat LISTVIEW
[v] Microsoft WINDOWS COMMON CONTROL 2.6 buat TANGGAL
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Buatlah PROCEDURE
Procedure menampilkan data dari sql ke listview
Sub TABLE_to_LISTVIEW() Call BUKA_db ‘—buka koneksi ke database
KEREN = "SELECT * FROM BARANG " ‘—pilih data barang
Set Rs = New ADODB.Recordset Rs.Open KEREN, Conn, adOpenStatic, adLockOptimistic ‘—buka table dg select..
If Not Rs.EOF Then ‘—cek apakah data nya ada
'/--------------------------------------------------------/ '/SETTING LISTVIEW '/--------------------------------------------------------/ With ListView1 .ListItems.Clear ‘—kosongkan isi listview .ColumnHeaders.Clear ‘—kosongkan judul kolom .View = lvwReport ‘—tampilan listview .FullRowSelect = True ‘—seleksi per baris penuh .GridLines = True .ColumnHeaders.Add , , "KODE BARANG", 1500 ‘—bikin JUDUL KOLOM .ColumnHeaders.Add , , "NAMA BARANG", 2500 ‘—sesuai field nya .ColumnHeaders.Add , , "HARGA", 1000, 1 ‘—1500,2500 =lebar kolom .ColumnHeaders.Add , , "STOK", 1000, 1 ‘—0=rata kiri, 1=kanan, 2=tgh End With '/--------------------------------------------------------/ '/LOOPIING '/MASUKKAN DATA TABEL KE LISTVIEW '/--------------------------------------------------------/
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Dim xx As ListItem
While Not Rs.EOF
'/ KET: '/ RS(“kdbarang”) , RS(“Nmbarang”) nama FIELD, '/ IsNULL fungsi untuk cek, apakah data NULL, karena jika NULL listview akan ERROR
Set xx = ListView1.ListItems.Add(, , Rs("KDBARANG")) xx.SubItems(1)=IIf(IsNull(Rs(“NMBARANG”)),"-", Rs("NMBARANG")) xx.SubItems(2) = IIf(IsNull(Rs(“HARGA”)), "-", Rs("HARGA")) xx.SubItems(3) = IIf(IsNull(Rs("STOK")), "-", Rs("STOK"))
Rs.MoveNext ‘/ baca data berikutnya Wend End If Rs.Close Set Rs = Nothing End Sub
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Procedure untuk MENAMPILKAN data di LISTVIEW ke FORM jika lisview di KLIK
Sub LISTVIEW_to_FORM() On Error Resume Next With Me.ListView1
Me.TXT_KDBARANG = .SelectedItem.Text ‘/kdbarang Me.TXT_NMBARANG = .SelectedItem.ListSubItems.Item(1) '/nmbarang Me.TXT_HARGA = .SelectedItem.ListSubItems.Item(2) Me.TXT_STOK = .SelectedItem.ListSubItems.Item(3) End With End Sub
Code di TOMBOL Code : TOMBOL REFRESH
'/-----Panggil procedure data table - listview
Call TABLE_to_LISTVIEW
Code di FORM Code : LISTVIEW1 - ItemClik
'/-----Panggil procedure listview KE FORM
Call LISTVIEW_ke_FORM
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
4.MENCARI
data INTERAKTIVE
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
MENCARI DATA INTERAKTIF (di ketik langsung muncul, filter data langsung)
Data KODE BARANG yang dicari, di KETIK di textbox ini Dan data akan LANGSUNG TER-FILTER di ListView
Name: TXT_CARI
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Buatlah PROCEDURE
Ket:Procedure menampilkan data dari sql ke listview secara INTERAKTIF
Sub TABLE_ke_LISTVIEW_INTERAKTIF () Call BUKA_db ‘—buka koneksi ke database
‘-- buka table BARANG dg WHER dan LIKE untuk mencari INTERAKTIF
AA = " select * from BARANG " & _
" where KDBARANG LIKE '" & Me.TXT_CARI & "%' " & _ " order by KDBARANG" Set Rs = New ADODB.Recordset Rs.Open AA, Conn, adOpenStatic, adLockOptimistic ‘—buka table dg select..
If Not Rs.EOF Then ‘—cek apakah data nya ada
'/--------------------------------------------------------/ '/SETTING LISTVIEW '/--------------------------------------------------------/ With ListView1 .ListItems.Clear ‘—kosongkan isi listview .ColumnHeaders.Clear ‘—kosongkan judul kolom .View = lvwReport ‘—tampilan listview .FullRowSelect = True ‘—seleksi per baris penuh .GridLines = True .ColumnHeaders.Add , , "KODE BARANG", 1500 ‘—bikin JUDUL KOLOM .ColumnHeaders.Add , , "NAMA BARANG", 2500 ‘—sesuai field nya .ColumnHeaders.Add , , "HARGA", 1000, 1 ‘—1500,2500 =lebar kolom .ColumnHeaders.Add , , "STOK", 1000, 1 ‘—0=rata kiri, 1=kanan, 2=tgh End With
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
'/--------------------------------------------------------/ '/LOOPIING '/MASUKKAN DATA TABEL KE LISTVIEW '/--------------------------------------------------------/ Dim xx As ListItem
While Not Rs.EOF
'/ KET: '/ RS(“kdbarang”) , RS(“Nmbarang”) nama FIELD, '/ IsNULL fungsi untuk cek, apakah data NULL, karena jika NULL listview akan ERROR
Set xx = ListView1.ListItems.Add(, , Rs("KDBARANG")) xx.SubItems(1)=IIf(IsNull(Rs(“NMBARANG”)),"-", Rs("NMBARANG")) xx.SubItems(2) = IIf(IsNull(Rs(“HARGA”)), "-", Rs("HARGA")) xx.SubItems(3) = IIf(IsNull(Rs("STOK")), "-", Rs("STOK"))
Rs.MoveNext ‘/ baca data berikutnya Wend End If Rs.Close Set Rs = Nothing End Sub
Code di TEXTBOX Code : TXT_CARI – Change
Call TABLE_ke_LISTVIEW_INTERAKTIF
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
REPORT
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Crystal REPORT
Database SQL server 1 tabel dg ODBC
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Membuat Report
DAFTAR BARANG Tampilan report:
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
KETERANGAN DETAIL REPORT
1 : menambah JUDUL laporannya 2 : menyisipkan gambar 3 : membuat TGL CETAK LAPORAN dan NOMER HALAMAN LAPORAN 4 : membuat GARIS / KOTAK & FORMAT 5 : membuat GARIS PENUTUP PADA AKHIR DATA LAPORAN 6 : FORMAT angka ribuan 7 : FORMAT tanggal 8 : membuat NOMER URUT RECORD
1 2
3
4
5 6 7
8
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
SUSUNAN Form & Report
LANGKAH: Untuk membuat REPORT kita mempunyai susunan sbb :
1. MEMBUAT DESIGN CRYSTAL REPORT terlebih dahulu di
Crystal Report
2. lalu.. MEMBUAT FORM REPORT di VB
KONEKSI ODBC:
INGAT kita membuat report menggunakan KONEKSI ODBC, jadi pastikan ODBC nya telah dibuat
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
a.Membuat DESIGN REPORT
KETERANGAN RUANG DESIGN:
REPORT HEADER : judul di cetak di halaman-1 (diatas)
PAGE HEADER : judul di cetak DI SEMUA HALAMAN (diatas)
DETAIL : untuk data nya
REPORT FOOTER : keterangan/catatan di cetak di HALAMAN AKHIR DATA LAPORAN (di bawah)
PAGE FOOTER : keterangan/catatan di cetak di DISEMUA HALAMAN (di bawah)
CONTOH DATANYA: REPORT HEADER : cover buku (di cetak hanya 1 x, di awal laporan) PAGE HEADER : judul laporan, nomer halaman DETAIL : untuk data nya REPORT FOOTER : footnote buku (di cetak di akhir, GRANT TOTAL), garis akhir laporan PAGE FOOTER : nomer halaman, catatan kaki, SUBTOTAL per HALAMAN
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
b.Langkah bikin Report
1) Buka crystal report
TAMPILAN :
1
2
3
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
7
4
5
6
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
KLIK TABLE YG AKAN DIGUNAKAN DALAM REPORT (Table Barang), lalu KLIK TOMBOL ADD
8
9
10
11
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Hasilnya TABLE BARANG ter-ambil, dan muncul di kota report
PILIH-LAH FIELD yg akan ditampilkan ke report, lalu klik ADD atau ADD ALL (semua field). Jika SUDAH klik TAB STYLE, jangan KLIK TOMBOL NEXT (design report amburadol)
12
13
14
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Pilih jenis style report nya, atau STANDARD aja yg biasa2 aja
Selesai…
15
16
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
HASIL NYA (masih polos belum di per-cantik) :
PREVIEW
\
DESIGN:
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
c.Design report
TOOLBAR UMUM
FIELD EXPLORER sisip NOMER RECORD, NOMER HALAMAN, dll
(ab) Buat bikin JUDUL/ LABEL
(1) Buat bikin GARIS (2) buat bikin KOTAK
(3) buat SISIP GAMBAR
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
1.LEBARKAN RUANG PAGE HEADER
LEBARKAN ruang PAGE HEADER buat bikin judul, halaman, kotak, dll
2.AKTIFKAN ruang REPORT FOOTER
AKTIFKAN ruang Report Footer untuk GARIS AKHIR LAPORAN/GRANT TOTAL.
Jika TIDAK DIAKTIFKAN, maka garis/data yg ada didalamnya TIDAK MUNCUL
>>Klik kanan di ruang REPORT FOOTER + DON’T SUPPRESS
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
3.Membuat NOMER HALAMAN, NOMER URUT RECORD, TGL CETAK
Membuat NOMER HALAMAN, NOMER URUT RECORD dan TGL PRINT
1. KLIK FIELD EXPLORER 2. Pilihlah SPECIAL FIELD; ambil data yg di perlukan langsung TARIK KE REPORT 3. TARiiiiiiiiiiiiiiiiiiiiiiiikkkkkkkkkkkkkkkkkkkkkk ke report
SPESIAL FIELD YG SERING DIGUNAKAN : Page N of M nomer halaman 1 of 10
Page Number nomer halaman Print Time Cetak jam
Print Date Cetak tanggal Record Number nomer urut data
1
2
3
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
4.Insert GAMBAR untuk LOGO
MENU = INSERT + PICTURE
>> Pilih gambar nya + klik TOMBOL OPEN
1
2
4
3
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
FORMAT
di Crystal Report : KLIK KANAN di object nya + FORMAT
5. FORMAT ANGKA
>> KLIK KANAN di FIELD HARGA + FORMAT FIELD
1
2
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
3
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
6. FORMAT TANGGAL (dd-MMM-yyyy)
>> KLIK KANAN di FIELD TANGGAL + FORMAT FIELD
1
2
3
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
UKURAN KERTAS (A3,A4,Landscape, Potrait)
>> MENU : FILE + PRINTER SETUP
2
3
1
4
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
MARGIN KERTAS
(Margin atas, bawah, kiri, kanan)
>> MENU : FILE + PAGE SETUP
2
3
1
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
VB
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
VB
FORM REPORT Laporan Barang
>> TAMBAHN COMPONEN CRYSTAL REPORT :
[v] Crystal Report Control
OPTION_SEMUA
OPTION_BY_KODE
OPTION_PREVIRE
OPTION_PRINTER
CRYSTALREPORT1
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Code : TOMBOL PRINT
With CrystalReport1
'/---KONEKSI REPORT DG ODBC---/
.ReportFileName = App.Path & "\LAP_BARANG.RPT"
.Connect = "DSN=ODBC_TOKO;UID=sa;PWD=;database=TOKO"
'/---SELEKSI DATA---/ If Me.Option_SEMUA.Value = True Then .SelectionFormula = "" End If If Me.Option_BY_KODE.Value = True Then .SelectionFormula = "{BARANG.KDBARANG}='" & Me.Text1 & "' " End If
'/---TUJUAN PRINT---/ If Me.Option_PREVIEW.Value = True Then .Destination = crptToWindow If Me.Option_PRINTER.Value = True Then .Destination = crptToPrinter
'/---SETINGAN LAINNYA---/ .WindowState = crptMaximized '/--TAMPILAN PENUH .WindowShowRefreshBtn = True '/--TOMBOL REFRESH MUNCUL .Action = 1 '/--JALANKAN REPORT End With
SELESAI…..
Nama report
yg akan di
tampilkan
Seleksi data..
lihat ket. Di
bawah
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Ngobrol2 (Info) :
Memfilter laporan
( SELECTIONFORMULA)
.SelectionFormula = "{BARANG.KDBARANG}='" & Me.Text1 & "' "
DI APIT dg KURUNG KURUWAL {}
BARANG.KDBARANG nama TABLE dan nama FIELD seleksi nya
Jika ada 2 kondisi GUNAKAN PERINTAH AND
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
HASIL RUNNING :
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
VB Dg
Store Procedure SQL Server
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
NGOBROL – NGOBROL :
STORE PROCEDURE adalah kumpulan code2 SQL untuk melakukan proses olah data,seperti: Menambah data (INSERT), Merubah data (UPDATE), hapus
data (DELETE), memilih data (SELECT), dll. Jadi VB akan MEMANGGIL store procredure yang ada di SQL Server untuk di
proses selanjutnya di FORM VB;
ILUSTRASI STORE PROCEDURE dan VB
TAHAPAN PENGETIKAN CODE PROGRAM
1. Membuat form VB + Design form + Pengetikan kode VB 2. Membuat STORE PROCEDURE di SQL Server 3. Jalankan VB
Visual Basic SQL SERVER
Store
procedure
(SP)
(1)VB memanggil NAMA SP
(2) SQL menjalankan isi
code dari SP yang
diminta
Atau.. (3) Data hasil SP
diberikan kembali
ke VB
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
VB+SP SP input data
(INSERT) &
SP rubah data (UPDATE)
barang
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
VB code dasar STORE PROCEDURE
Code di MODULE Ada penambahan 1 variabel untuk STORE PROCEDURE
Public Conn As ADODB.Connection '/ untuk koneksi keDB Public Rs As ADODB.Recordset '/ untuk buka TABLE Public RsCMD As ADODB.Command '/ untuk PANGGIL SP SQL
TOMBOL_input, TOMBOL_save, TOMBOL_update, TOMBOL_cari,
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
'/----- ini adalah PROCEDURE untuk koneksi ke database
Sub BUKA_db()
On Error GoTo CEK Set Conn = New ADODB.Connection Conn.CursorLocation = adUseClient
AA = "DSN=ODBC_TOKO;uid=;pwd=" Conn.Open AA Exit Sub CEK: MsgBox "KONEKSI ke DATABASE ERROR : " & Err.Description, vbCritical End
CODE DI FORM CODE TOMBOL-TOMBOL
Code TOMBOL INPUT
'/-----PANGGIL PROCEDURE UNTUK KOSONGKAN INPUT
Me.TXT_KDBARANG = "" Me.TXT_NMBARANG = "" Me.TXT_HARGA = "" Me.TXT_STOK = "" '/-----LETAKKAN KURSOR DI KDBARANG
Me.TXT_KDBARANG.SetFocus
Kalo MODUL sama
aja dg kemaren..
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Code TOMBOL SAVE
'/-----PANGGIL DATABASE
Call BUKA_db '/-----PERSIAPKAN COMMAND,KONEKSI,NAMA SP UNTUK STORE PROCEDURE
Set RScmd = New ADODB.Command ‘—aktifkan RScmd RScmd.ActiveConnection = Conn ‘--koneksinya
RScmd.CommandText = "SP_BARANG_INPUT" ‘--nama SP nya
RScmd.CommandType = adCmdStoredProc ‘—jenis storeproc
Set Rs = RScmd.Execute(, Array(Me.TXT_KDBARANG, _
Me.TXT_NMBARANG, _ Me.TXT_HARGA, _ Me.TXT_STOK)) Set RScmd = Nothing MsgBox "DATA TELAH DI SIMPAN..", vbInformation
Sebutkan lokasi TEXTBOX nya,
INGAT urutan ini = dg urutan di
STORE PROCEDURE nya
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Code TOMBOL UPDATE,RUBAH DATA
'/-----PANGGIL DATABASE
Call BUKA_db '/-----PERSIAPKAN COMMAND,KONEKSI,NAMA SP UNTUK STORE PROCEDURE
Set RScmd = New ADODB.Command ‘—aktifkan RScmd RScmd.ActiveConnection = Conn ‘--koneksinya
RScmd.CommandText = "SP_BARANG_UPDATE" ‘--nama SP nya
RScmd.CommandType = adCmdStoredProc ‘—jenis storeproc
Set Rs = RScmd.Execute(, Array(Me.TXT_KDBARANG, _
Me.TXT_NMBARANG, _ Me.TXT_HARGA, _ Me.TXT_STOK)) Set RScmd = Nothing MsgBox "DATA TELAH DI SIMPAN..", vbInformation
PERHATIAN…! kode SIMPAN DATA BARU dengan UPDATE DATA hampir sama,
yang beda hanya NAMA STORE PROCEDURE (SP) yang
digunakannya.
Sebutkan lokasi TEXTBOX nya,
INGAT urutan ini = dg urutan di
STORE PROCEDURE nya
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
CODE tombol cari sama dengan code latihan sebelumnya..
Code TOMBOL CARI
'/=========================================/ '/ INPUT DATA KODE BARANG YANG DICARI '/=========================================/ Dim CARI CARI = InputBox("INPUT KODE BARANG YANG DICARI :") '/--JIKA TIDAK DI INPUT, MAKA BATALKAN PROSES If CARI = "" Then Exit Sub End If '/--buka koneksi ke database Call BUKA_db '/--buka SQL; data barang dg WHERE untuk mencari KODE BARANG KEREN = ""
KEREN = " SELECT * FROM BARANG “ & _
“ WHERE KDBARANG ='" & CARI & "' " Set Rs = New ADODB.Recordset Rs.Open KEREN, Conn, adOpenStatic, adLockOptimistic '/--CEK, APAKAH DATA TIDAK ADA (EOF), '/--jika TIDAK ADA munculkan pesan, jika ADA munculkan DATA ke FORM
If NOT Rs.EOF Then '/--apakah data ada? '/--data kodebarang ada, munculkan ke form Me.TXT_KDBARANG = Rs("KDBARANG")
INFO: IF RS.EOF then Apakah data tidak ada
IF NOT RS.EOF then apakah data ada
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Me.TXT_NMBARANG = Rs("NMBARANG") Me.TXT_HARGA = Rs("HARGA") Me.TXT_STOK = Rs("STOK") Else
'/--data kodebarang TIDAK ADA, beri pesan MsgBox "DATA TIDAK ADA", vbInformation End If Rs.Close Set Rs = Nothing
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
CODE STORE PROCEDURE untuk INPUT DATA BARU & UPDATE DATA
Store procedure untuk simpan data baru:
CREATE PROCEDURE SP_BARANG_INPUT @kdbarang varchar(20), @nmbarang varchar(50), @harga float, @stok float AS INSERT INTO BARANG (kdbarang,nmbarang,harga,stok) VALUES(@kdbarang,@ nmbarang,@ harga,@ stok)
Store procedure untuk update data:
CREATE PROCEDURE SP_BARANG_UPDATE @kdbarang varchar(20), @nmbarang varchar(50), @harga float, @stok float AS UPDATE BARANG SET kdbarang=@ kdbarang, nmbarang=@ nmbarang, harga=@ harga, stok=@ stok WHERE kdbarang=@kdbarang
NAMA SP ini (SP_BARANG_INPUT, SP_BARANG_UPDATE) akan di panggil oleh VB
@kdbarang bebas,nama variable Varchar(20),varchar(50),float,float harus sama dg masing2 jenis field table nya.
BARANG(kdbarang..) nama table+field nya
@kdbarang bebas,nama variable Varchar(20),varchar(50),float,float harus sama dg masing2 jenis field table nya.
BARANG nama table KDBARANG,NMBARANG,HARGA,STOK nama field
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
a.LANGKAH MENGETIK STORE PROCEDURE dg
ENTERPRISE MANAGER
Buka enterprise manager :
Lalu muncul kotak store procedure.. Ketikan code SP nya
Klik kanan di StoreProcedure
+ NEW store procedure
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Catatan: perintah GO tidak perlu di ketik, karena OTOMATIS akan
muncul diberikan oleh SQL
(1) Ketik code SP nya disini
(2) jika sudah selesai ,KLIK
TOMBOL CHECK SYNTAX untuk cek
apakah code SP ada Error/tidak
(3) jika code
OK, klik
tombol OK
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
b.LANGKAH meng-EDIT CODE SP
langkahnya untuk merubah code SP
KLIK 2X di Nama SP nya
c.LANGKAH meng-RUBAH NAMA SP
1. Klik kanan di NAMA SP nya + RENAME
2. Rubahlah nama nya
3.Editlah / KLIK 2x SP nya 4. Rubahlah NAMA SP nya, yang di CREATE PROCEDURE ….. (sesuai dg nama
di nomer.2) 5.Klik tombol OK
d.LANGKAH meng-HAPUS SP
1.Klik kana di nama SP + DELETE 2. Klik tombol DROP ALL
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
VB
dan
PROSES TRANSAKSI
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
SQL Server
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
SYSTEM PENJUALAN TOKO Database SQL Server
BARANG No NAMA FIELD JENIS LEBAR KET
1 KDBARANG VARCHAR 20 PrimaryKey
2 NMBARANG VARCHAR 50
3 HARGA FLOAT
4 STOK FLOAT
CUSTOMER No NAMA FIELD JENIS LEBAR KET
1 KDPELANGGAN VARCHAR 20 PrimaryKey
2 NMPELANGGAN VARCHAR 50
3 ALAMAT VARCHAR 100
4 TELP VARCHAR 50
5 KONTAK_PERSON VARCHAR 50
Isi data sebanyak 5 data
BELI No NAMA FIELD JENIS LEBAR KET
1 NO_BELI VARCHAR 20 PrimaryKey
2 TGL DATETIME
3 KDBARANG VARCHAR 20
4 JUMLAH FLOAT
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
JUAL No NAMA FIELD JENIS LEBAR KET
1 NO_JUAL VARCHAR 20 PrimaryKey
2 TGL DATETIME
3 KDPELANGGAN VARCHAR 20
4 TOTAL_JUAL FLOAT
5 PAJAK FLOAT
6 GRANT_TOTAL FLOAT
JUAL_DETAIL No NAMA FIELD JENIS LEBAR KET
1 NO_JUAL VARCHAR 20
2 KDBARANG VARCHAR 20
3 NMBARANG VARCHAR 20
4 JUMLAH FLOAT
5 HARGA FLOAT
6 SUBTOTAL FLOAT
7 NO_URUT INT (Identity=YES)
PRIMARY KEY (auto-number)
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
TRANSAKSI DASAR
(>=2 table)
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
NGOBROL - NGOBROL : Ada sebagian form yang menggunakan PROSES UPDATE BERTAMBAH atau BERKURANG pada saat menyimpan data. Contohnya:
BANK: Pada saat kita menarik uang di ATM, maka SALDO akan berkurang
ada 2 data:
(2) data penarikan uang [tgl,no.rekening,jumlahnya]. (3) Update SALDO nasaban BERKURANG
Atau pada saat kita menabung, maka SALDO akan bertambah
STOK: Pada saat kita membeli barang di TOKO, maka stok barang di toko tsb akan berkurang
Ada 2 data yg terlibat
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
CICILAN CREDIT: Pada saat kita membayar CICILAN CREDIT misalnya cicilan motor, maka HUTANG ke dealer juga akan berkurang.
Jadi TRANSAKSI2 tsb pada saat simpan data melakukan
2x proses:
(1)simpan data transaksi nya (2)update data yang di perlukan
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
NGOBROL - NGOBROL lagi…:
Pada proses TRANSAKSI tsb terkadang
TIDAK BOLEH
ADA PROSES BATAL (Cancel) atau HAPUS TRANSAKSI (Delete). Jadi proses yang ada HANYA INPUT-SAVE saja.. Contohnya:
BANK Pengambilan uang di ATM, setelah uang kita ambil dari ATM, bisa kah kita membatalkan transaksinya? Uang kita diMASUKKAN kembali ke ATM nya…. (Ngakak mode on)
BELANJA Setelah kita membayar belanja kita di kasir (Goro, matahari, dll) bisakah kita membatalkan belanja nya?
BELI BENSIN-PERTAMAX Setelah bensin masuk ke motor/mobil & kita telah membayar nya.. apakah TRANSAKSI tsb bisa di batalkan ??? jika BISA gimane caranyeeeee ???
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
PERINTAH SQL untuk PROSES UPDATE :
Berkaitan dengan proses transaksi update, maka SQL
mempunyai perintah untuk Update table, perintah sbb:
Contoh2 proses update:
BANK; ambil uang di ATM, saldo akan berkurang UPDATE nasabah SET saldo=saldo-100000 WHERE no_rek=’001’
BELANJA; bayar kasir, stok barang berkurang
UPDATE barang SET stok=stok-5 WHERE kode_brg=’B001’
UPDATE nama_table_nya SET nama_field_yg_diupdate = nilainya WHERE nama_field_kunci=nilainya
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
TRANSAKSI DASAR STOK
Pembelian barang &
Update stok barang +
“..karena stok barang di took sudah hamper habis, maka toko membeli barang-barang ke glodok,
setelah tiba di rumah maka barang2 tsb di input kedalam system..”
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
FORM :
PEMBELIAN dan UPDATE STOK + Keterangan: kita sbg pemilik toko, telah belanja ke manggadua berbagai macam barang
& kita MENG-INPUT PEMBELIAN barang2 tsb kedalam system
KETERANGAN pada saat SAVE
SImpan data transaksi di table BELI
UPDATE stok barang di table barang
TOMBOL_NEW, TOMBOL_SAVE, TOMBOL_CANCEL, TOMBOL_CLOSE
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
JANGAN LUPA CODE KONEKSI KE SQL SERVER
DI MODULE:
Code di MODUL untuk difinisi KONEKSI DATABASE, dan fungsi2 umum lainnya
Public Conn As ADODB.Connection ‘/--var.untuk koneksi DB Public Rs As ADODB.Recordset ‘/--var.untuk membuka TABLE
Sub BUKA_db_SQL()
On Error GoTo CEK Set Conn = New ADODB.Connection Conn.CursorLocation = adUseClient ‘/----- nama ODBC_TOKO harus sama dengan di ODBC CONTROL PANEL ‘/----- UID, PWD jika database server pake username & password
AA = “DSN=ODBC_TOKO;uid=;pwd=” Conn.Open AA Exit Sub CEK: MsgBox “KONEKSI ERROR : “ & Err.Description, vbCritical End
Kalo MODUL sama
aja dg kemaren..
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Code di Form
Buat Procedure
Procedure untuk mengisi combo dg KDBARANG
Sub ISI_COMBO_BARANG() Call BUKA_db_SQL MANIS = “” MANIS = “ SELECT * FROM BARANG ORDER BY KDBARANG” ‘/---Buka table BARANG, looping isi data KDBARANG kedalam COMBOBOX---/ Set Rs = New ADODB.Recordset Rs.Open MANIS, Conn, adOpenStatic, adLockOptimistic If Not Rs.EOF Then ‘/---siapkan looping untuk membacan data While Not Rs.EOF ‘/---MASUKKAN KDBARANG kedalam COMBO1---/
Me.Combo1.AddItem Rs(“KDBARANG”) Rs.MoveNext Wend End If Rs.Close Set Rs = Nothing End Sub
CODE STANDARD
untuk ISI COMBO
dg Table
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Procedure untuk menampilkan DATA BARANG saat Combo1 (KDBarang) di CLICK
Sub MUNCULIN_DATA_BARANG() Call BUKA_db_SQL ‘/---Buka table BARANG, CARI berdasarkan KDBARANG---/
KEREN = “” KEREN = “ SELECT * FROM BARANG “ & _ “ WHERE KDBARANG=’” & Me.Combo1 & “’ “ Set Rs = New ADODB.Recordset Rs.Open KEREN, Conn, adOpenStatic, adLockOptimistic If Not Rs.EOF Then ‘/---MUNCULKAN DATA YG DIPERLUKAN : NAMA BARANG , STOK ---/
Me.Text2 = Rs(“NMBARANG”) Me.Text3 = Rs(“STOK”) End If Rs.Close Set Rs = Nothing End Sub
CODE STANDARD
untuk MENAMPILKAN
data
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
CODE di FORM
Code : FORM – LOAD
‘/---KOSONGKAN TEXTBOX---/ Me.Text1 = “” Me.Text2 = “” Me.Text3 = “” Me.Text4 = “” ‘/---ATUR TOMBOL---/ Me.TOMBOL_new.VISIBLE = True Me.TOMBOL_save. VISIBLE = False Me.TOMBOL_cancel. VISIBLE = False Me.TOMBOL_close. VISIBLE = True Call ISI_COMBO_BARANG
Code : COMBO1 – CLICK
‘/---Panggil procedure untuk menampilkan data barang---/
Call MUNCULIN_DATA_BARANG
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Code di TOMBOL
Code : TOMBOL NEW
‘/---KOSONGKAN TEXTBOX---/ Me.Text1 = “” Me.Text2 = “” Me.Text3 = “” Me.Text4 = “” Me.DTPicker1.Value = Date Me.Text1.SetFocus ‘/---ATUR TOMBOL---/ Me.TOMBOL_new.VISIBLE = False Me.TOMBOL_save. VISIBLE = True Me.TOMBOL_cancel. VISIBLE = True Me.TOMBOL_close. VISIBLE = False
Code : TOMBOL CANCEL
‘/---KOSONGKAN TEXTBOX---/ Me.Text1 = “” Me.Text2 = “” Me.Text3 = “” Me.Text4 = “” MsgBox “BATAL..”, vbInformation ‘/---ATUR TOMBOL---/ Me.TOMBOL_new. VISIBLE = True Me.TOMBOL_save. VISIBLE = False Me.TOMBOL_cancel. VISIBLE = False Me.TOMBOL_close. VISIBLE = True
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Code : TOMBOL SAVE
‘/ CEK 1 : PRIMARY KEY.code sama dg sebelumnya
‘/ CEK 2 : INPUT ANGKA. code sama dg sebelumnya
‘/---------------------------------------------------------/
‘/ PROSES 1: SIMPAN TRANSAKSI
‘/---------------------------------------------------------/ AA = “”
AA = “ SELECT * FROM BELI “ & _
“ WHERE NO_BELI=’” & Me.Text1 & “’ “ Set Rs = New ADODB.Recordset Rs.Open AA, Conn, adOpenStatic, adLockOptimistic
Rs.AddNew
Rs(“NO_BELI”) = Me.Text1 Rs(“TGL”) = Me.DTPicker1.Value Rs(“KDBARANG”) = Me.Combo1 Rs(“JUMLAH”) = Me.Text4
Rs.Update
Rs.Close Set Rs = Nothing
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
‘/--------------------------------------------------------/
‘/ PROSES 2: UPDATE STOK +
‘/--------------------------------------------------------/ IMUT = “” IMUT = “ UPDATE BARANG “ & _
“ SET STOK=STOK +” & Text4 & _
“ WHERE KDBARANG=’” & Combo1 & “’ “
Conn.Execute IMUT MsgBox “OK”, vbInformation ‘/---KOSONGKAN TEXT---/ Me.Text1 = “” Me.Text2 = “” Me.Text3 = “” Me.Text4 = “” ‘/---ATUR TOMBOL---/ Me.TOMBOL_new.VISIBLE = True Me.TOMBOL_save. VISIBLE = False Me.TOMBOL_cancel. VISIBLE = False Me.TOMBOL_close. VISIBLE = True
Nah…. Ini PROSES
update transaksinya..
TEXT4 jumlah brg COMBO1 kodebrg
“..tambahkan stok yg
kdbarang nya= combo1..
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
LATIHAN - LATIHAN
TRANSAKSI DASAR
Latihan TRANSAKSI BANK: Nasabah menabung (Saldo bertambah),
Pengambilan uang di ATM (Saldo berkurang)
Latihan PEMBAYARAN CICILAN CREDIT MOTOR: Pembayaran credit cicilan motor (hutang berkurang)
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
LOGIN & MENU
LOGIN adalah form security untuk masuk kedalam system. Jika User tidak mengetahui USER dan PASSWORD nya, maka user tidak dapat masuk ke system… (gitu lohhhhh)
LOGIN ada 2 tehnik :
(1) Login dengan USER dan PASSWORD sudah FIX ditentukan oleh programmer, dan TIDAK DAPAT dirubah-ubah. Misalnya untuk masuk ke system dibutuhkan
USER=INDRAES ,PASSWORD=KEREN.. maka INDRAES dan KEREN tidak dapat dirubah-ubah ( )
(2) Login dengan USER dan PASSWORD FLEXIBEL , jika LOGIN flexible maka masing2 user mempunyai USER dan PASSWORD untuk masuk ke system. Tehnik ini
membutuhkan TABLE USER_PASSWORD untuk input/menyimpan nama user dan passwordnya..
JALANKAN FORM LOGIN :
Setiap kali system muncul/jalan, maka FORM LOGIN selalu MUNCUL #1
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
TRANSAKSI
Master Detail
(1-many)
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
FORM MASTER DETAIL penjualan
MSHFlexGrid1
TXT_NOMER
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
CODE di MODUL
Code di MODUL untuk difinisi KONEKSI DATABASE, dan fungsi2 umum lainnya
Public Conn As ADODB.Connection ‘/--var.untuk koneksi DB Public Rs As ADODB.Recordset ‘/--var.untuk membuka TABLE
Sub BUKA_db_SQL()
On Error GoTo CEK Set Conn = New ADODB.Connection Conn.CursorLocation = adUseClient
AA = “DSN=ODBC_TOKO;uid=;pwd=” Conn.Open AA Exit Sub CEK: MsgBox “KONEKSI ERROR : “ & Err.Description, vbCritical End
Kalo MODUL sama
aja dg kemaren..
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
PROCEDURE di FORM
Code : Procedure Procedure Untuk seting/ format grid
Sub SETTING_flexgrid() With Me.MSHFlexGrid1 .Clear .Cols = 6 ‘/ ada 6 kolom: No,Kode,Nama,Harga,Jumlah,Subtotal .Rows = 50 ‘/ buat 50 baris barang (secukupnya) .AllowUserResizing = flexResizeColumns .SelectionMode = flexSelectionByRow .FormatString = "No|Kode barang |Nama barang |Harga |Jumlah |Subtotal " '/ bikin nomer urut barang buat input data barang For Nomer = 1 To .Rows - 1 .TextMatrix(Nomer, 0) = Nomer Next End With End Sub
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Untuk mengisi COMBO customer
Sub ISI_CUSTOMER() Me.CMB_customer.Clear x = "SELECT * FROM CUSTOMER ORDER BY KDPELANGGAN" Set RS = New ADODB.Recordset RS.Open x, Conn, adOpenStatic, adLockOptimistic If not RS.Eof Then While Not RS.EOF Me.CMB_customer.AddItem RS("KDPELANGGAN") RS.MoveNext Wend End If RS.Close Set RS = Nothing End Sub
Untuk mengisi COMBO BARANG dengan KODE
Sub ISI_BARANG() Me.CMB_barang.Clear x = "SELECT * FROM BARANG ORDER BY KDBARANG" Set RS = New ADODB.Recordset RS.Open x, Conn, adOpenStatic, adLockOptimistic If not RS.Eof Then While Not RS.EOF Me.CMB_barang.AddItem RS ("KDBARANG") RS.MoveNext Wend End If RS.Close Set RS = Nothing End Sub
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Untuk menghitung total PO
Sub HITUNG_total_penjualan() On Error Resume Next DIM ttl, xx xx = 0 ttl = 0 With Me.MSHFlexGrid1 For brs = 1 To .Rows - 1 xx = .TextMatrix(brs, 5) ‘/ 5=adalah KOLOM SUBTOTAL If IsNull(xx) = True Then xx = 0 ttl = ttl + xx Next End With Me.TXT_total = ttl ‘/ hitung TOTAL BELANJA Me.TXT_pajak = ttl * 10/100 Me.TXT_grant_total = ttl + (ttl * 10/100) End Sub
Untuk menampilkan informasi BARANG saat COMBO BARANG di KLIK
Sub CARI_NAMA_BARANG()
On Error Resume Next x = "" x = " SELECT * FROM BARANG" x = x & " WHERE KDBARANG='" & Me.CMB_barang & "' " Set RS = New ADODB.Recordset RS.Open x, Conn, adOpenStatic, adLockOptimistic If NOT RS.Eof Then Me.TXT_namabarang = RS ("NMBARANG") ‘/ munculkan NAMA BARANG Me.TXT_harga = RS ("HARGA") ‘/ munculkan HARGA End If RS.Close Set RS = Nothing End Sub
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Unutk mencari menampilkan DATA CUSTOMERT saat COMBO di KLIK
Sub CARI_NAMA_CUSTOMER() On Error Resume Next x = "" x = " SELECT * FROM CUSTOMER " x = x & " WHERE KDPELANGGAN='" & Me.CMB_customer & "' " Set RS = New ADODB.Recordset RS.Open x, Conn, adOpenStatic, adLockOptimistic If NOT RS.Eof Then Me.TXT_namacustomer = RS ("NMPELANGGAN") ‘/ munculkan NAMA CUST End If RS.Close Set RS = Nothing End Sub
Sub KOSONG() Me.TXT_no_penjualan = "" Me.DTPicker1.Value = Date Me.CMB_customer = "" Me.TXT_namacustomer = "" Me.TXT_nomer = "1" ' /---> 1 UNTUK BARIS KE-1 DI GRID.. POSISI PERTAMA Me.CMB_barang = "" Me.TXT_namabarang = "" Me.TXT_harga = 0 Me.TXT_qty = 0 Me.TXT_subtotal = 0 Me.TXT_total = 0 Me.TXT_pajak = 0 Me.TXT_grant_total = 0 End Sub
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Code2 di FORM
FORM - LOAD Call BUKA_dB Call KOSONG Call SETTING_flexgrid ‘/ setting grid Call ISI_BARANG ‘/ isi combo barang Call ISI_CUSTOMER ‘/ isi combo customer
Code di COMBO, TEXT, GRID
COMBO CUSTOMER - CLICK Call CARI_NAMA_CUSTOMER
COMBO KODE BARANG - CLICK Call CARI_NAMA_BARANG
TXT_QTY - CHANGE On Error Resume Next Me.TXT_subtotal = Me.TXT_harga * Me.TXT_qty
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
MSHFlexGrid1 - CLICK '/------------------------------------------------------/ '/ MUNCULKAN GRID ke FORM '/------------------------------------------------------/ On Error Resume Next With Me.MSHFlexGrid1 Me.TXT_nomer = .TextMatrix(.Row, 0) Me.CMB_barang = .TextMatrix(.Row, 1) Me.TXT_namabarang = .TextMatrix(.Row, 2) Me.TXT_harga = .TextMatrix(.Row, 3) Me.TXT_qty = .TextMatrix(.Row, 4) Me.TXT_subtotal = .TextMatrix(.Row, 5) End With
Code di TOMBOL-TOMBOL
TOMBOL : INPUT PENJUALAN BARU Call KOSONG Call SETTING_flexgrid Me.TXT_no_penjualan.SetFocus
TOMBOL SIMPAN PENJUALAN If Me.TXT_no_penjualan = "" Then MsgBox "NO.PENJUALAN HARUS DI ISI..!", vbCritical Exit Sub
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
End If '-----hitung lagi------' Call HITUNG_total_penjualan '-----cek apakah NO_PENJUALAN sama/double-----' x = "" x = "SELECT * FROM JUAL “ & _ “ WHERE NO_JUAL='" & Me.TXT_no_penjualan & "' " Set RS = New ADODB.Recordset RS.Open x, Conn, adOpenStatic, adLockOptimistic If NOT RS.EOF Then MsgBox "NOMER PENJUALAN SUDAH ADA..!", vbCritical RS.Close Set RS = Nothing Exit Sub Else '-----jika nomer baru, maka simpan data HEADER RS.AddNew RS!NO_JUAL = Me.TXT_no_penjualan RS!TGL = Me.DTPicker1.Value RS!KDPELANGGAN = Me.CMB_customer RS!TOTAL_JUAL = Me.TXT_total RS!PAJAK = Me.TXT_pajak RS!GRANT_TOTAL = Me.TXT_grant_total RS.Update End If RS.Close Set RS = Nothing '----- simpan BARANG /detail, '----- gunakan LOOPING untuk baca BARIS KE-1 s/d bawah With Me.MSHFlexGrid1 For BB = 1 To .Rows - 1
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
'-----cek apakah data di isi-----' If .TextMatrix(BB, 1) <> "" Then '-----simpan detail nya boooo-----' x = " SELECT * FROM PENJUALAN_D" Set RS = New ADODB.Recordset RS.Open x, Conn, adOpenStatic, adLockOptimistic RS.AddNew RS!NO_JUAL = Me.TXT_no_penjualan RS!KDBARANG = .TextMatrix(BB, 1) '--kolom 1 >kdbarang RS!NMBARANG = .TextMatrix(BB, 2) '--kolom 2 >NMbarang RS!HARGA = .TextMatrix(BB, 3) '--kolom 3 >harga RS!JUMLAH = .TextMatrix(BB, 4) '--kolom 4 >jumlah RS!SUBTOTAL = .TextMatrix(BB, 5) '--kolom 5 >subtotal RS.Update RS.Close Set RS = Nothing End If Next End With MSGBOX “Data penjualan telah di simpan..”
TOMBOL : CANCEL PENJUALAN Call KOSONG Call SETTING_flexgrid MsgBox "BATAL..", vbInformation
TOMBOL : CARI PENJUALAN dt = InputBox("INPUT NO.PENJUALAN :") If dt = "" Then Exit Sub
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
End If Call SETTING_flexgrid '-----cari header-----' q = "" q = q & " SELECT * FROM JUAL " q = q & " WHERE NO_JUAL='" & dt & "' " Set RS = New ADODB.Recordset RS.Open q, Conn, adOpenStatic, adLockOptimistic If RS.EOF Then MsgBox "DATA TIDAK ADA..", vbCritical RS.Close Set RS = Nothing Exit Sub End If '-----munculkan header-----' Me.TXT_no_penjualan = RS ("NO_JUAL") Me.DTPicker1.Value = RS ("TGL") Me.CMB_customer = RS ("KDPELANGGAN") Me.TXT_total = RS ("TOTAL_JUAL") Me.TXT_PAJAK = RS ("PAJAK") Me.TXT_GRANT_TOTAL = RS ("GRANT_TOTAL") RS.Close Set RS = Nothing '-----munculkan detail------------------------------------------------------' q = "" q = q & " SELECT * FROM PENJUALAN_D" q = q & " WHERE NO_JUAL='" & dt & "' " Set RS = New ADODB.Recordset RS.Open q, Conn If Not RS.EOF Then
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
NO = 0 While Not RS.EOF NO = NO + 1 With Me.MSHFlexGrid1 .TextMatrix(NO, 1) = RS ("KDBARANG") .TextMatrix(NO, 2) = Rs2("NMBARANG") .TextMatrix(NO, 3) = RS ("HARGA") .TextMatrix(NO, 4) = RS ("JUMLAH") .TextMatrix(NO, 5) = RS ("SUBTOTAL") End With RS.MoveNext Wend End If RS.Close Set RS = Nothing Call CARI_NAMA_CUSTOMER
TOMBOL : UPDATE PENJUALAN If Me.TXT_no_penjualan = "" Then MsgBox "NO.PENJUALAN HARUS DI ISI..!", vbCritical Exit Sub End If '-----hitung lagi------' Call HITUNG_total_penjualan
'/=========================================/
'/=========================================/ '/
CODE UPDATE_PENJUALAN
sama dengan = kode SIMPAN
PENJUALAN,
Yg BEDA hanya ada
penambahan di GARIS
MERAH
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
'/ UPDATE... '/ biar mudah dalam proses update '/ data lama ,baik HEADER dan DETAIL di hapus semuanya dulu '/ lalu disimpan kembali '/ jadi KODE SAMA SAJA dengan SAVE INPUT DATA BARU '/ '/==========================================================/ '/ #1. hapus master aa = "" aa = "delete JUAL where no_jual='" & Me.TXT_no_penjualan & "' " Conn.Execute aa '/ #2. hapus detail aa = "" aa = "delete JUAL_DETAIL where no_jual='" & Me.TXT_no_penjualan & "' " Conn.Execute aa
'/=========================================/
'/=========================================/
'-----cek apakah NO_PENJUALAN sama/double-----' x = "" x = "SELECT * FROM JUAL “ & _ “ WHERE NO_JUAL='" & Me.TXT_no_penjualan & "' " Set RS = New ADODB.Recordset RS.Open x, Conn, adOpenStatic, adLockOptimistic If NOT RS.EOF Then MsgBox "NOMER PENJUALAN SUDAH ADA..!", vbCritical RS.Close Set RS = Nothing Exit Sub Else '-----jika nomer baru, maka simpan data HEADER
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
RS.AddNew RS!NO_JUAL = Me.TXT_no_penjualan RS!TGL = Me.DTPicker1.Value RS!KDPELANGGAN = Me.CMB_customer RS!TOTAL_JUAL = Me.TXT_total RS!PAJAK = Me.TXT_pajak RS!GRANT_TOTAL = Me.TXT_grant_total RS.Update End If RS.Close Set RS = Nothing '----- simpan BARANG /detail, '----- gunakan LOOPING untuk baca BARIS KE-1 s/d bawah With Me.MSHFlexGrid1 For BB = 1 To .Rows - 1 '-----cek apakah data di isi-----' If .TextMatrix(BB, 1) <> "" Then '-----simpan detail nya boooo-----' x = " SELECT * FROM PENJUALAN_D" Set RS = New ADODB.Recordset RS.Open x, Conn, adOpenStatic, adLockOptimistic RS.AddNew RS!NO_JUAL = Me.TXT_no_penjualan RS!KDBARANG = .TextMatrix(BB, 1) '--kolom 1 >kdbarang RS!NMBARANG = .TextMatrix(BB, 2) '--kolom 2 >NMbarang RS!HARGA = .TextMatrix(BB, 3) '--kolom 3 >harga RS!JUMLAH = .TextMatrix(BB, 4) '--kolom 4 >jumlah RS!SUBTOTAL = .TextMatrix(BB, 5) '--kolom 5 >subtotal RS.Update RS.Close Set RS = Nothing
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
End If Next End With MSGBOX “Data penjualan telah di simpan..”
TOMBOL : PRINT BON PENJUALAN per NO,PENJUALAN With CrystalReport1 '/---KONEKSI REPORT DG ODBC---/ .ReportFileName = App.Path & "\BON_PENJUALAN.RPT" .Connect = "DSN=ODBC_TOKO;UID=sa;PWD=;database=TOKO" '/---SELEKSI DATA---/ .SelectionFormula = "{JUAL.NO_JUAL}='" & Me.TXT_no_penjualan & "' " .RetrieveDataFiles '/---UPDATE KAN DATABASE---/ .Destination = crptToWindow '/--TUJUAN PRINT KE MONITOR .WindowState = crptMaximized '/--TAMPILAN PENUH .WindowShowRefreshBtn = True '/--TOMBOL REFRESH MUNCUL .Action = 1 '/--JALANKAN REPORT End With
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Code di TOMBOL ITEM
BARANG (Detail)
TOMBOL : SAVE BARANG '-----cek data item-----' If Me.CMB_barang = "" Or Me.TXT_harga = "" Or Me.TXT_qty = "" Then MsgBox "DATA ITEM BARANG HARUS DI ISI..", vbCritical Exit Sub End If '/------------------------------------------------------------/ '/ #2. SIMPAN DATA DI GRID '/------------------------------------------------------------/ With Me.MSHFlexGrid1 '/ CEK DULU APAKAH GRID NYA BERUTUTAN '/ DI CEK APAKAH BARIS SEBELUMNYA ADA DATA NYA? If .TextMatrix(Me.TXT_nomer - 1, 1) = "" Then MsgBox "ISI DATA DI GRID HARUS URUT..", vbCritical Exit Sub End If
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
'/-----------------------------------------------------/ '/ SIMPAN KE GRID '/-----------------------------------------------------/ .TextMatrix(Me.TXT_nomer, 1) = Me.CMB_barang.Text .TextMatrix(Me.TXT_nomer, 2) = Me.TXT_namabarang.Text .TextMatrix(Me.TXT_nomer, 3) = Me.TXT_HARGA.Text .TextMatrix(Me.TXT_nomer, 4) = Me.TXT_qty.Text .TextMatrix(Me.TXT_nomer, 5) = Me.TXT_subtotal.Text End With '/ #3. KOSONGKAN INPUT BARANG, NOMER+1 Me.TXT_nomer = Val(Me.TXT_nomer) + 1 '/NOMER MAJUKAN+1 Me.CMB_barang = "" Me.TXT_namabarang = "" Me.TXT_qty = "0" Me.TXT_HARGA = "0" Me.TXT_subtotal = "0" '/ #4. HITUNG TOTAL PENJUALAN Call HITUNG_TOTAL_JUAL
TOMBOL : CANCEL BARANG Me.CMB_barang = "" Me.TXT_namabarang = "" Me.TXT_harga = "" Me.TXT_qty = "" Me.TXT_subtotal = 0
TOMBOL : DELETE BARANG '/ #1. CEK APAKAH BARANG SUDAH DI PILIH ---------------/ If Me.CMB_barang = "" Then MsgBox "DATA BELUM DI PILIH", vbCritical Exit Sub
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
End If '/ #2. HAPUS DI BARIS GRIS--------------/ With MSHFlexGrid1 .RemoveItem (Me.TXT_nomer) '---Hapus pd baris seleksi '/#3 ---NOMER DI URUTKAN KEMBAL-----------------/I For NO = 1 To .Rows - 1 .TextMatrix(NO, 0) = NO Next End With '/ #4. KOSONGKAN DATA BARANG -----------------/ Me.TXT_nomer = "" Me.CMB_barang = "" Me.TXT_namabarang = "" Me.TXT_harga = "0" Me.TXT_qty = "0" Me.TXT_subtotal = "0" '/ #5. HITUNG TOTAL PENJUALAN -----------/ Call HITUNG_TOTAL_JUAL
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
RANCANG DESIGN PRINT
OUT BON PENJUALAN
(1-Many)
AMBIL 4 Table
1.JUDUL BON/LAPORAN
2.GROUP HEADER NO.PENJUALAN
3.DATANYA
4.GROUP FOOTER
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
RELATIONSHIP
FIELD YANG DIAMBIL
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
DESIGN REPORT STANDARD, BELUM DIBUAT DESIGN GROUP 1-MANY
MEMBUAT GROUP (Klik kanan di GROUP NAME)
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
HASILNYA, DESIGN BERTAMBAH SEBUAH BARIS BARU… LEBARKAN RUANG GROUPNYA
SETTING REPORT SBB:
(perhatikan ruang nya)
Ini data/field Ini judul/text
Ini data/field
Ini judul/text
field
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Form bantuan
FORM MENCARI BARANG
(interaktif)
TOMBOL : AMBIL DATA Call AMBIL_BARANG
TOMBOL : REFRESH DATA Call REFRESH_data
Code di TXT_cari - Change() Call CARI_BARANG_interaktif
MSHFlexGrid1
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
PROCEDURE di FORM
Procedure untuk menampilkan data ke grid
Sub REFRESH_data() Call BUKA_db X = " SELECT * FROM BARANG ORDER BY NMBARANG" Set Rs = New ADODB.Recordset Rs.Open X, Conn, adOpenStatic, adLockOptimistic If NOT Rs.EOF Then Set Me.MSHFlexGrid1.DataSource = Rs With Me.MSHFlexGrid1 .SelectionMode = flexSelectionByRow .ColWidth(0) = 300 .ColWidth(1) = 1000 '--lebar kode .ColWidth(2) = 3000 '--lebar nama barang End With Rs.Close Set Rs = Nothing Else Me.MSHFlexGrid1.Clear End If End Sub
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Procedure untuk mengambil pilihan data
Sub AMBIL_BARANG() With Form_PENJUALAN .CMB_barang = Me.MSHFlexGrid1.TextMatrix(Me.MSHFlexGrid1.Row, 1) '/---kodebarang .TXT_namabarang = Me.MSHFlexGrid1.TextMatrix(Me.MSHFlexGrid1.Row, 2) '/---namabarang .TXT_HARGA = Me.MSHFlexGrid1.TextMatrix(Me.MSHFlexGrid1.Row, 3) '/---harga
End With Unload Me End Sub
Procedure untuk pencarian data interaktif
Sub CARI_BARANG_interaktif() On Error Resume Next Call BUKA_db X = "" '/-----query berdasarkan KDBARANG-----------------------------------/ If Option1.Value = True Then X = " SELECT KDBARANG,NMBARANG,HARGA FROM BARANG " X = X & " WHERE KDBARANG LIKE '" & Trim(Me.TXT_cari) & "%' " X = X & " ORDER BY KDBARANG" End If '/-----query berdasarkan NMBARANG-----------------------------------/ If Option2.Value = True Then X = " SELECT KDBARANG,NMBARANG,HARGA FROM BARANG " X = X & " WHERE NMBARANG LIKE '" & Trim(Me.TXT_cari) & "%' " X = X & " ORDER BY NMBARANG" End If
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Set Rs = New ADODB.Recordset Rs.Open X, Conn, adOpenStatic, adLockOptimistic If NOT Rs.EOF Then Set Me.MSHFlexGrid1.DataSource = Rs With Me.MSHFlexGrid1 .SelectionMode = flexSelectionByRow .ColWidth(0) = 300 .ColWidth(1) = 1000 '--lebar kode .ColWidth(2) = 3000 '--lebar nama barang End With End If Rs.Close Set Rs = Nothing End Sub
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Membuat Login
..lanjut yah
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
mySYSTEM adalah system untuk pabrik, beberapa penampakan mySYSTEM di beberapa customer:
mySYSTEM: Purchase, Sales, Delivery, Warehouse, BOM, Schedule
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
mySYSTEM. Vb6+SQL server 2005 express
..perlu di ketahui; mulai tahun 2012, HARGA system ini Rp. 0 (alias GRATIS)..
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Mr.indraes dalam berbagai POSE aduhai..
Apapun & Gimanapun gaya-nya.. TETAP MANIS + KEREN…
@Indra ES Keren,Beken,Manis,Imut,dll , (indosat) 08-567-2323-19 (Flexi) 454-223-84
Dosen+Model
08-567-2323-19