Selamat Datang di TyA'oNeRz.blogspot.com !!!

Jam Dinding

Selasa, 16 Agustus 2011

Membuat Program Penjualan Visual Basic 8 : Membuat Form Laporan


Membuat Program Penjualan Visual Basic 8 : Membuat Form Laporan
Dengan adanya laporan kita dapat mengetahui seluruh data apa saja yang masuk ke dalam database program penjualan ini. Ada banyak cara untuk membuat sebuah laporan. Dan cara yang saya pakai saat ini adalah dengan menggunakan software tambahan yang bernama Crystal Report. Bagi anda yang tidak punya Crystal Report, anda dapat membaca tutorial yang lain yang judulnya Membuat Laporan Dengan Data Report. Dan bagi anda yang punya Crystal Report, anda dapat melihat cara membuat laporannya pada Tutorial Membuat Laporan Dengan Crystal Report. Pada Tutorial yang ini saya hanya membahas pembuatan form laporan beserta listing programnya saja.

8. Membuat FORM LAPORAN
- Buat form baru lagi lalu isikan dengan isi dan properties dibawah ini:
NAMECAPTION/TEXTKETERANGAN
FlaporanLaporanForm
Label1TanggalLabel
Label2Tanggal AwalLabel
Label3Tanggal AkhirLabel
Label4BulanLabel
Label5TahunLabel
Label7TahunLabel
Label8Tekan PreviewLabel
Cmdexit&exitCommand Button
Cmdpreview&previewCommand Button
Frame1HarianFrame
Frame2MingguanFrame
Frame3BulananFrame
Frame4TahunanFrame
Data1
-
Data
CR
-
Crystal Report
Combo1
-
Combo
Combo2
-
Combo
Combo3
-
Combo
Combo4
-
Combo
Combo5
-
Combo
Combo6KeseluruhanCombo
Combo7
-
Combo

Adapun Listing Program dari Form Login ini adalah:


Private Sub CMDEXIT_Click()
Unload Me
End Sub

Private Sub Combo6_Click()
If Combo6.Text = "HARIAN" Then
Frame1.Visible = True
Frame2.Visible = False
Frame3.Visible = False
Frame4.Visible = False
Label8.Visible = False
Combo1.Text = ""
Else
If Combo6.Text = "MINGGUAN" Then
Frame2.Visible = True
Frame1.Visible = False
Frame3.Visible = False
Frame4.Visible = False
Label8.Visible = False
Combo2.Text = ""
Else
If Combo6.Text = "BULANAN" Then
Frame3.Visible = True
Frame2.Visible = False
Frame1.Visible = False
Frame4.Visible = False
Label8.Visible = False
Combo3.Text = ""
Else
If Combo6.Text = "TAHUNAN" Then
Frame4.Visible = True
Frame2.Visible = False
Frame1.Visible = False
Frame3.Visible = False
Label8.Visible = False
Combo7.Text = ""
Else
If Combo6.Text = "KESELURUHAN" Then
Label8.Visible = True
Frame4.Visible = False
Frame2.Visible = False
Frame1.Visible = False
Frame3.Visible = False
End If
End If
End If
End If
End If
End Sub

Private Sub Form_Load()
Data1.DatabaseName = App.Path & "/buku.mdb"
Data1.RecordSource = "select * from Table_transaksi"
Data1.RecordSource = "Select Distinct Tgl_faktur From table_transaksi order By 1"
Data1.Refresh
Do Until Data1.Recordset.EOF
    Combo1.AddItem Data1.Recordset!Tgl_faktur
    Combo2.AddItem Format(Data1.Recordset!Tgl_faktur, "YYYY ,MM, DD")
    Combo3.AddItem Format(Data1.Recordset!Tgl_faktur, "YYYY ,MM, DD")
    Data1.Recordset.MoveNext
Loop

For i = 1 To 12
    Combo4.AddItem i
Next i
For i = 1 To 20
    Combo5.AddItem 2000 + i
Next i
For i = 1 To 20
    Combo7.AddItem 2000 + i
Next i
End Sub

KETERANGAN 1:
-Combo1 diisi dengan semua field Tanggal faktur yang ada di database.
-Combo2 juga diisi dengan semua field Tanggal faktur yang ada di database tapi dengan memakai format Tahun, Bulan, Hari contoh: 2009/03/20
-Combo3 juga diisi dengan semua field Tanggal faktur yang ada di database dan dengan memakai format seperti pada combo2.
-Combo4 diisi dengan angka dari 1 sampai 12
-Combo5 diisi dengan angka 2001 sampai 2020
-Combo7 diisi dengan angka 2001 sampai 2020
Private Sub CMDPREVIEW_Click()
On Error Resume Next
If Frame1.Visible = True Then
    cr.SelectionFormula = "Totext({table_transaksi.Tgl_faktur})=’" & Combo1 & "’"
    cr.ReportFileName = App.Path & "\Transaksi.rpt"
    cr.WindowState = crptMaximized
    cr.RetrieveDataFiles
    cr.Action = 1
Else
If Frame2.Visible = True Then
    cr.SelectionFormula = "{table_transaksi.Tgl_faktur} in date (" & Combo2.Text & ") to date (" & Combo3.Text & ")"
    cr.ReportFileName = App.Path & "\Transaksi.rpt"
    cr.WindowState = crptMaximized
    cr.RetrieveDataFiles
    cr.Action = 1
Else
If Frame3.Visible = True Then
Data1.RecordSource = "select * from table_transaksi where month(Tgl_faktur)=’" & Val(Combo4) & "’ and year(Tgl_faktur)=’" & (Combo5) & "’"
    cr.SelectionFormula = "Month({table_transaksi.Tgl_faktur})=" & Val(Combo4.Text) & " and Year({table_transaksi.Tgl_faktur})=" & Val(Combo5.Text)
    cr.ReportFileName = App.Path & "\Transaksi.rpt"
    cr.WindowState = crptMaximized
    cr.RetrieveDataFiles
    cr.Action = 1
Else
If Frame4.Visible = True Then
    Data1.RecordSource = "select * from table_transaksi where year(Tgl_faktur)=’" & (Combo7) & "’"
    cr.SelectionFormula = "Year({table_transaksi.Tgl_faktur})=" & Val(Combo7.Text)
    cr.ReportFileName = App.Path & "\Transaksi.rpt"
    cr.WindowState = crptMaximized
    cr.RetrieveDataFiles
    cr.Action = 1
Else
    cr.ReportFileName = App.Path & "\Transaksi.rpt"
    cr.WindowState = crptMaximized
    cr.RetrieveDataFiles
    cr.Action = 1
End If
End If
End If
End If
End Sub

KETERANGAN 2 :
-Selection Formula disini berfungsi untuk menyeleksi suatu data tertentu saja.
-Report File Name adalah nama dari Report/laporan yang kita buat dengan Crystal Report.
-Window State berguna untuk pengaturan besarnya layar laporan. Jika Crpt maximezed berarti layar laporan diperbesar sampai maximal.
-Retrieve Data Files dipakai agar apabila data yang ada di program penjualan berubah, maka data yang ada di laporan juga ikut berubah.
-Action disini adalah perintahnya.

KETERANGAN 3 :
-Frame1 mengambil data dari Table Transaksi yang Tanggal Faktur nya sama dengan yang dipilih di Combo1. Tapi sebelumnya Type data Tanggal Faktur dirubah menjadi Text (aslinya adalah Date/Time).
-Frame2 mengambil data dari Table Transaksi yang Tanggal Faktur nya adalah antara Tanggal yang dipilih di Combo2 dan Combo3.
– Frame3 mengambil data dari Table Transaksi yang Bulan faktur nya sama dengan yang dipilih di Combo4 dan Tahun faktur nya sama dengan yang dipilih di Combo5.
-Frame4 mengambil data dari Table Transaksi yang Tahun Faktur nya sama dengan yang dipilih di Combo7.
-Jika Tidak ada frame yang muncul berarti tidak memakai rumus Selection Formula, sehingga data akan ditampilkan semuanya dari awal hingga akhir.

- Jangan lupa untuk mengganti Name dari form ini di properties menjadi ”Flaporan” dan menyimpannya dengan nama ”Laporan.frm”.
- Sekali lagi saya ingatkan agar anda membaca juga cara Membuat Laporan Dengan Data Report dan cara Membuat Laporan Dengan Crystal Report.
Akhirnya selesai sudahlah semua tutorial belajar membuat program penjualan buku dengan menggunakan microsoft visual basic ini. Mudah mudahan bisa menjadi ilmu yang bermanfaat di dunia dan akhirat. Mohon maaf kalau seandainya pengetahuan yang saya berikan hanya sedikit karena saya juga masih belajar. Hanya Allah lah yang maha luas ilmunya. Dan saya mengharapkan komentar anda semua untuk membuat saya dan blog ini menjadi semakin maju. Atas perhatiannya saya ucapkan banyak terima kasih.
Wassalamualaikum !!!

By: OPIX HOLMES
opix.holmes@yahoo.com
http://www.islamicunderground.com
vb-laporan

Membuat Program Penjualan Visual Basic 7 : Membuat Form Login


Membuat Program Penjualan Visual Basic 7 : Membuat Form Login
Form Login fungsinya sangat penting sekali karena jika form ini tidak ada, maka program yang telah kita buat bisa dipakai oleh orang lain selain yang berhak untuk memakainya. Dengan Form Login seorang user dipaksa untuk memasukan ID dan Password yang membuat tidak semua orang bisa mengaksesnya. Bagi user yang sudah memiliki ID dan password terbagi menjadi 2 yaitu: Administrator User dan Limited User. Administrator dapat menggunakan seluruh isi dari program ini tanpa ada batasan sedangkan Limited dibatasi hanya pada beberapa form tertentu saja misalnya form transaksi atau laporan.

7. Membuat FORM LOGIN
- Buat form baru lagi lalu isikan dengan isi dan properties dibawah ini:
NAME
CAPTION/TEXT
KETERANGAN
TAMBAHAN
Txtkd
-
Textbox
Txtpass
-
Textbox
Txttype
-
Textbox
Cmdcancel&cancelCommand Button
Data1
-
Data
Login
Form Login
Form
Adapun Listing Program dari Form Login ini adalah:
Private Sub Form_Activate()
TXTKD.SetFocus
TXTKD.Text = ""
TXTPASS.Text = ""
TXTPASS.Enabled = False
End Sub
Private Sub Form_Load()
Data1.DatabaseName = App.Path & "/BUKU.mdb"
Data1.RecordSource = "select * from Table_user"
End Sub
Private Sub TXTKD_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
    Data1.Recordset.FindFirst "Id_user=’" & TXTKD.Text & "’" & ""
    If Not Data1.Recordset.NoMatch Then
    TXTPASS.Enabled = True
    TXTPASS.SetFocus
    Else
    MsgBox "ID TIDAK TERDAFTAR"
    TXTKD.Text = ""
    End If
End If
End Sub
Private Sub TXTPASS_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Data1.Recordset.FindFirst "Id_user=’" & TXTKD.Text & "’" & " And " & "pass_user=’" & TXTPASS.Text & "’"
If Not Data1.Recordset.NoMatch Then
    fTransaksi.TXTKASIR.Text = TXTKD.Text
    Menuutama.TXTTYPE.Text = Data1.Recordset!Type_user
    Menuutama.txtuser.Text = Data1.Recordset!Id_user
    Unload Me
    Menuutama.show
Else
    MsgBox "PASSWORD SALAH"
    TXTPASS.Text = ""
    TXTPASS.SetFocus
    End If
End If
End Sub

Private Sub CMDCANCEL_Click()
Unload Me
End Sub
Peringatan: Jika Form Menu utama (menuutama) atau form transaksi (ftransaksi) belum dibuat maka sebaiknya anda membuatnya terlebih dahulu.

- Jangan lupa untuk mengganti Name dari form ini di properties menjadi ”Login” dan menyimpannya dengan nama ”Login.frm”.

- Sekian saja untuk tutorial pembuatan Form Login. Terima kasih atas perhatiannya jika anda masih setia untuk megikuti tutorial pembuatan penjualan buku ini. Kita bertemu pada tutorial yang selanjutnya Insya Allah.

By: OPIX HOLMES
opix.holmes@yahoo.com
http://www.islamicunderground.com
vb-login

Membuat Program Penjualan Visual Basic 6 : Membuat Menu Utama


Membuat Program Penjualan Visual Basic 6 : Membuat Menu Utama
Menu Utama digunakan sebagai pusat dari semua form yang telah kita buat. Melalui form inilah kita mengakses semua form yang ada. Dengan Form menu utama ini anda tinggal menekan nama form yang dicari, maka form yang kita pilih akan segera muncul. Pada form menu utama ini anda boleh menghiasnya sesuka anda. Buatlah seindah mungkin agar user menjadi tetap tertarik untuk memakain program ini.

6. Membuat FORM MENU UTAMA
- Buatlah sebuah form baru
– Tekanlah Icon MENU EDITOR yang ada pada bagian atas toolbar. Atau bisa juga klick kanan pada Form lalu pilih MENU EDITOR.
– Pada layar Menu Editor anda disuruh memasukan Caption dan Name form yang ingin kita tuju bila user menekannya (maksudnya sub menu).
– Untuk tutorial ini terdapat beberapa sub menu yang akan kita buat :
1. FILE di dalamnya terdapat 3 bagian yaitu: File buku, Pelanggan, dan User.
2. TRANSAKSI di dalamnya terdapat Input Transaksi dan Cari Transaksi.
3. LAPORAN (akan memanggil form laporan yang akan kita buat pada tutorial lain).
4. EXIT terbagi menjadi 2 yaitu: Log Off dan Close All.
- Tekan tombol Next untuk memasukan sub menu yang selanjutnya
– Tekan tombol Insert untuk menyisipkan sub menu diantara sub menu yang lain
– Tekan tombol Delete untuk menghapus sebuah sub menu
- Tekan tombol panah Kanan untuk memasukan sub menu ke dalam sub menu yang lain
– Tekan tombol panah Kiri untuk mengeluarkan sub menu dari sub menu yang lain
– Tekan tombol panah Atas untuk meletakan sub menu di atas sub menu yang lain
– Tekan tombol panah Bawah untuk meletakan sub menu di bawah sub menu yang lain
- Adapun yang harus anda masukan di dalam Menu Editor tersebut adalah:
CAPTION
NAME
POSISI
FileFileSub Menu Utama
BukuFilebukuDi dalam sub menu File
PelangganFilepelangganDi dalam sub menu File
UserFileuserDi dalam sub menu File
TransaksiTransaksiSub Menu Utama
Input TransaksiPenjualanDi dalam sub menu Transaksi
Cari TransaksiBrowseDi dalam sub menu Transaksi
LaporanLaporanSub Menu Utama
ExitExitSub Menu Utama
Log OffLogoffDi dalam sub menu Exit
Close AllCloseallDi dalam sub menu Exit
- Jika semua sudah dimasukan silahkan tekan tombol Oke.
- Adapun Listing Program dari Form Menu Utama ini adalah:
Private Sub BROWSE_Click()
FBrowse.Show
End Sub
Private Sub CLOSEALL_Click()
End
End Sub
Private Sub FILEBUKU_Click()
Buku.Show
End Sub
Private Sub FILEPELANGGAN_Click()
Pelanggan.Show
End Sub
Private Sub FILEUSER_Click()
If txttype.Text = "ADMINISTRATOR" Then
User.Show
Else
MsgBox "ANDA TIDAK DAPAT MENGAKSES, HANYA ADMINISTRATOR YANG BISA MENGAKSES !!!", vbOKOnly, "PERINGATAN"
End If
End Sub
Private Sub Laporan_Click()
fLaporan.Show
End Sub
Private Sub LOGOFF_Click()
Unload Me
Login.Show
End Sub
Private Sub PENJUALAN_Click()
fTransaksi.Show
End Sub
- Jangan lupa untuk mengganti NAME dari form ini di properties menjadi ”menuutama” dan menyimpannya dengan nama ”menu.frm”.
- Cukup sekian untuk belajar kali ini. Jika ada pertanyaan silahkan kirimkan di kolom komentar dan Insya Allah kalau saya mengerti akan saya jawab langsung. Thanx !

By: OPIX HOLMES
opix.holmes@yahoo.com
http://www.islamicunderground.com
vb-menu

Membuat Program Penjualan Visual Basic 5 : Membuat Form Pencarian Transaksi


Form pencarian transaksi ini digunakan untuk mengetahui dan mencari semua data transaksi yang telah masuk ke database. Untuk pencarian pada form ini terbagi menjadi 3 pilihan yaitu pencarian berdasarkan nomor faktur, kode buku, atau kode pelanggan. Jika anda tidak memakai form ini juga tidak apa apa karena sebenarnya data transaksi juga bisa dilihat melalui laporan transaksi yang akan kita bahas pada tutorial yang lain. Baiklah sekarang kita mulai saja belajar ini.
5. Membuat FORM PENCARIAN TRANSAKSI
- Buat form baru lagi lalu isikan dengan isi dan properties dibawah ini:
NAME CAPTION/TEXT KETERANGAN TAMBAHAN
Combo1 - Combo box
Txtfind - Textbox
Cmdfind &find Command button
Cmdexit &exit Command button
Data1 - Data
Data2 - Data
Data3 - Data
Data4 - Data
Dbgrid1 - Dbgrid
Dbgrid2 - Dbgrid
Dbgrid3 - Dbgrid
Dbgrid4 - Dbgrid
Fbrowse Form Pencarian Transaksi Form
Cmdprint &print Command Button Jika punya Crystal Report
CR - Crystal Report Jika punya Crystal Report
CR2 &print Crystal Report Jika punya Crystal Report
CR3 - Crystal Report Jika punya Crystal Report
Adapun Listing Program dari Form Pencarian Transaksi ini adalah:
Private Sub Form_Load()
Data1.DatabaseName = App.Path & “/buku.mdb”
Data1.RecordSource = “select * from Table_transaksi”
Data1.Refresh
DBGrid1.Refresh
Data2.DatabaseName = App.Path & “/buku.mdb”
Data2.RecordSource = “select * from Table_detail”
Data2.Refresh
DBGrid2.Refresh
Data3.DatabaseName = App.Path & “/buku.mdb”
Data3.RecordSource = “select * from Table_transaksi”
Data3.Refresh
DBGrid3.Refresh
Data4.DatabaseName = App.Path & “/buku.mdb”
Data4.RecordSource = “select * from Table_detail”
Data4.Refresh
DBGrid4.Refresh
End Sub
Private Sub Combo1_Click()
TXTFIND.Text = “”
TXTFIND.SetFocus
If Combo1.Text = “NOMOR FAKTUR” Then
DBGrid1.Visible = True
Data1.Visible = True
DBGrid2.Visible = True
Data2.Visible = True
DBGrid3.Visible = False
DBGrid4.Visible = False
Data3.Visible = False
Data4.Visible = False
Else
If Combo1.Text = “KODE PELANGGAN” Then
DBGrid3.Visible = True
Data3.Visible = True
DBGrid4.Visible = False
Data4.Visible = False
DBGrid1.Visible = False
DBGrid2.Visible = False
Data1.Visible = False
Data2.Visible = False
Else
If Combo1.Text = “KODE BUKU” Then
DBGrid4.Visible = True
Data4.Visible = True
DBGrid3.Visible = False
Data3.Visible = False
DBGrid1.Visible = False
DBGrid2.Visible = False
Data1.Visible = False
Data2.Visible = False
End If
End If
End If
End Sub
Private Sub TXTFIND_Change()
If TXTFIND.Text = “” Then
Data1.RecordSource = “select*from Table_transaksi”
Data1.Refresh
DBGrid1.Refresh
Data2.RecordSource = “select*from Table_detail”
Data2.Refresh
DBGrid2.Refresh
Data3.RecordSource = “select*from Table_transaksi”
Data3.Refresh
DBGrid3.Refresh
Data4.RecordSource = “select*from Table_detail”
Data4.Refresh
DBGrid4.Refresh
End If
End Sub
Private Sub CMDFIND_Click()
If Combo1.Text = “” Or TXTFIND.Text = “” Then
MsgBox “masih ada DATA YANG HARUS DIISI”
Else
If Combo1.Text = “NOMOR FAKTUR” Then
Data1.RecordSource = “SELECT*FROM Table_transaksi WHERE No_faktur=’” & TXTFIND.Text & “‘”
DBGrid1.Refresh
Data1.Refresh
Data2.RecordSource = “SELECT*FROM Table_detail WHERE No_faktur=’” & TXTFIND.Text & “‘”
DBGrid2.Refresh
Data2.Refresh
If Data1.Recordset.EOF And Data2.Recordset.EOF Then
MsgBox “DATA TIDAK ADA !”
TXTFIND.SetFocus
TXTFIND.Text = “”
End If
Else
If Combo1.Text = “KODE PELANGGAN” Then
Data3.RecordSource = “SELECT*FROM Table_transaksi WHERE Kode_pelanggan=’” & TXTFIND.Text & “‘”
DBGrid3.Refresh
Data3.Refresh
If Data3.Recordset.EOF Then
MsgBox “DATA TIDAK ADA !”
TXTFIND.SetFocus
TXTFIND.Text = “”
End If
Else
If Combo1.Text = “KODE BUKU” Then
Data4.RecordSource = “SELECT*FROM Table_detail WHERE Kode_buku=’” & TXTFIND.Text & “‘”
DBGrid4.Refresh
Data4.Refresh
If Data4.Recordset.EOF Then
MsgBox “DATA TIDAK ADA !”
TXTFIND.SetFocus
TXTFIND.Text = “”
End If
End If
End If
End If
End If
End Sub
Private Sub CMDEXIT_Click()
Unload Me
End Sub
Private Sub CMDPRINT_Click()
‘If Combo1.Text = “” Or TXTFIND.Text = “” Then
‘MsgBox “MASIH ADA DATA YANG HARUS DIISI”
‘End If
‘If Combo1.Text = “NOMOR FAKTUR” Then
‘CR.ReportFileName = App.Path & “\TRANSAKSI2.rpt”
‘CR.SelectionFormula = “({Table_detail.No_faktur}=’” & TXTFIND.Text & “‘)”
‘CR.WindowState = crptMaximized
‘CR.RetrieveDataFiles
‘CR.Action = 1
‘Else
‘If Combo1.Text = “KODE PELANGGAN” Then
‘cr2.ReportFileName = App.Path & “\TRANSAKSI2.rpt”
‘cr2.SelectionFormula = “({Table_Transaksi.Kode_pelanggan}=’” & TXTFIND.Text & “‘)”
‘cr2.WindowState = crptMaximized
‘cr2.RetrieveDataFiles
‘cr2.Action = 1
‘Else
‘If Combo1.Text = “KODE BUKU” Then
‘cr2.ReportFileName = App.Path & “\TRANSAKSI2.rpt”
‘cr2.SelectionFormula = “({Table_detail.Kode_buku}=’” & TXTFIND.Text & “‘)”
‘cr2.WindowState = crptMaximized
‘cr2.RetrieveDataFiles
‘cr2.Action = 1
‘End If
‘End If
‘End If
End Sub
PERHATIAN: CMDPRINT hanya dipakai jika anda mempunyai software pembuat laporan yang bernama CRYSTAL REPORT. Jika tidak punya, silahkan hapus rumusnya. Tapi jika anda punya, gunakan listing program tersebut dan hilangkan tanda petik di depan rumusnya. Untuk keterangan lebih lanjut baca Tutorial Membuat Laporan dengan Crystal Report.
Pada listing program kali ini saya kira tidak ada yang perlu dijelaskan karena semuanya sudah saya jelaskan pada tutorial tutorial yang sebelumnya. Sebenarnya anda bisa saja membuat form ini lebih sederhana dari yang saya buat. Karena pada form ini saya memakai banyak Data Control dan Dbgrid sehingga kelihatan ruwet.
Adapun cara memakai Fomr Pencarian Transaksi ini adalah :
1. Pilihlah pada combo box yang ada apakah anda ingin mencari data transaksi berdasarkan Nomor faktur atau Kode buku atau kode pelanggan.
2. Jika kriteria pencarian sudah dipilih, selanjutkan masukan kode data yang dicari.
3. Tekan tombol Find untuk memunculkan data tersebut.
4. Data akan ditampilkan dan anda bisa melihat perbedaan dari kriteria pencarian yang telah anda pilih:
Jika memilih Kode buku maka muncul data transaksi berdasarkan buku.
Jika memilih Kode Pelanggan maka muncul data transaksi berdasarkan pelanggan.
Jika memilih Nomor Faktur maka yang muncul adalah data transaksi berdasarkan nomor faktur yang terdiri dari 2 bagian yaitu Data Transaksi itu sendiri dan Data Detail dari Transaksi tersebut.
5. Tekan tombol Exit untuk keluar dari form ini.
- Jangan lupa untuk mengganti Name dari form ini di properties menjadi ”Fbrowse” dan menyimpannya dengan nama ”browse.frm”.
Untuk tutorial berikutnya kita akan membuat Form Menu Utama jadi, jangan sampai ketinggalan untuk membacar tutorial saya yang berikutnya. Mudah mudahan bermanfaat bagi yang sudah jago atau bagi yang masih belajar seperti saya. Amin !
By: OPIX HOLMES
opix.holmes@yahoo.com
www.islamicunderground.wordpress.com
vb-browse

Membuat Program Penjualan Visual Basic 4 : Membuat Form Transaksi


Membuat Program Penjualan Visual Basic 4 : Membuat Form Transaksi
Selamat datang kembali di tutorial belajar VB. Pada kali ini kita akan belajar yang lebih sulit lagi yaitu membuat form transaksi yang merupakan inti dari program ini dibuat. Kalau yang namanya penjualan sudah pasti ada transaksi yang terjadi disitu. Pada tutorial yang ke 1 dulu kita sudah membuat sebanyak 7 Table dan yang akan kita bahas disini adalah semua table tersebut yang dijadikan satu di dalam form transaksi ini. Sudah siap? Bismillahirrohmanirrohim !
4. Membuat FORM TRANSAKSI
- Buat form baru lagi lalu isikan dengan isi dan properties dibawah ini:
NAME
CAPTION/TEXT
KETERANGAN
TAMBAHAN
Label1No FakturLabel
Label2Kode PelangganLabel
Label3Nama PelangganLabel
Label4Nomor Hp/TelponLabel
Label5AlamatLabel
Label6ID UserLabel
Label7Kode BukuLabel
Label8Nama BukuLabel
Label9Stok BukuLabel
Label10Harga BukuLabel
Label11Biaya PengirimanLabel
Label12Jumlah beliLabel
Label13Total HargaLabel
Label14Total BayarLabel
Label15Uang bayarLabel
Label16Uang KembaliLabel
Label17Masukan Kode BukuLabel
Label18Masukan Kode PelangganLabel
txtnofak
-
Textbox
txtkdpel
-
Textbox
txtnmpel
-
Textbox
txttelpon
-
Textbox
txtalamat
-
Textbox
txtkasir
-
Textbox
txtkdbuku
-
Textbox
txtnmbuku
-
Textbox
txtstok
-
Textbox
txtharga
-
Textbox
txtkirim
-
Textbox
txtjumbel
-
Textbox
txttohar
-
Textbox
txttobay
-
Textbox
txtubar
-
Textbox
txtukem
-
Textbox
txtfindb
-
Textbox
txtfindp
-
Textbox
txtjam
-
Textbox
txttgl
-
Textbox
cmdfindpFind PelangganCommand Button
cmdfindbFind BarangCommand Button
Cmdadd&addCommand Button
Cmdclear&clearCommand Button
Cmdsave&saveCommand Button
Cmdexit&exitCommand Button
CmdlagilagiCommand Button
CmdselesaiselesaiCommand Button
OptdalamDalam kotaCommand Button
OptluarLuar kotaCommand Button
OpttidakTidak dikirimCommand Button
Timer1
-
TimerInterval : 10
Dbgrid1
-
DbgridData source: data6
Dbgrid2
-
DbgridData source: data2
Dbgrid3
-
DbgridData source: data1
Data1Data
Data2Data
Data3Data
Data4

Data
Data5

Data
Data6

Data
Data7

Data
FTransaksiTransaksiForm
Frame1Biaya Pengiriman BukuFrame
Frame2BukuFrameVisible: False
Frame3PelangganFrameVisible: False
Frame4
-
Frame
Frame5
-
Frame
CR
-
Crystal ReportJika Punya CR
Adapun Listing Program dari Form Transaksi Ini Adalah :
Private Sub Form_Activate()
Call nonaktif
Call kosong
TXTKASIR.Text = Menuutama.txtuser.Text
End Sub

Private Sub Form_Load()
Data1.DatabaseName = App.Path & "/buku.mdb"
Data1.RecordSource = "select * from Table_buku order by Kode_buku"
Data2.DatabaseName = App.Path & "/buku.mdb"
Data2.RecordSource = "select * from Table_pelanggan"
Data3.DatabaseName = App.Path & "/buku.mdb"
Data3.RecordSource = "select * from Table_transaksi"
Data4.DatabaseName = App.Path & "/buku.mdb"
Data4.RecordSource = "select * from Table_detail"
Data5.DatabaseName = App.Path & "/buku.mdb"
Data5.RecordSource = "select * from Table_user"
Data6.DatabaseName = App.Path & "/buku.mdb"
Data6.RecordSource = "select * from Table_bantu"
Data7.DatabaseName = App.Path & "/buku.mdb"
Data7.RecordSource = "select * from Table_bayar"
End Sub

Private Sub CMDADD_Click()
Call Auto
Call aktif
CMDFINDP.Enabled = True
CMDADD.Enabled = False
CMDEXIT.Enabled = False
End Sub

Private Sub CMDCLEAR_Click()
Call kosong
Call hapus_grid
Call nonaktif
CMDADD.Enabled = True
CMDEXIT.Enabled = True
End Sub

Private Sub CMDEXIT_Click()
Unload Me
Menuutama.Show
End Sub

Sub aktif()
CMDCLEAR.Enabled = True
CMDSAVE.Enabled = False
End Sub

Sub nonaktif()
CMDFINDB.Enabled = False
CMDFINDP.Enabled = False
TXTKASIR.Enabled = False
TXTNOFAK.Enabled = False
TXTKDPEL.Enabled = False
TXTNMPEL.Enabled = False
TXTTELPON.Enabled = False
TXTALAMAT.Enabled = False
TXTKDBUKU.Enabled = False
TXTNMBUKU.Enabled = False
TXTSTOK.Enabled = False
TXTHARGA.Enabled = False
TXTJUMBEL.Enabled = False
TXTTOHAR.Enabled = False
TXTTOBAY.Enabled = False
TXTUBAR.Enabled = False
TXTUKEM.Enabled = False
TXTKIRIM.Enabled = False
OPTDALAM.Enabled = False
OPTLUAR.Enabled = False
OPTTIDAK.Enabled = False
CMDCLEAR.Enabled = False
CMDSAVE.Enabled = False
CMDLAGI.Enabled = False
CMDSELESAI.Enabled = False
End Sub

Sub kosong()
TXTNOFAK.Text = ""
TXTKDPEL.Text = ""
TXTNMPEL.Text = ""
TXTALAMAT.Text = ""
TXTTELPON.Text = ""
TXTKDBUKU.Text = ""
TXTNMBUKU.Text = ""
TXTSTOK.Text = ""
TXTHARGA.Text = ""
TXTJUMBEL.Text = ""
TXTTOHAR.Text = ""
TXTUBAR.Text = ""
TXTUKEM.Text = ""
TXTTOBAY.Text = ""
TXTKIRIM.Text = ""
OPTDALAM.Value = False
OPTLUAR.Value = False
OPTTIDAK.Value = False
End Sub

Private Sub CMDFINDB_Click()
Frame2.Visible = True
TXTFINDB.SetFocus
End Sub

Private Sub CMDFINDP_Click()
Frame3.Visible = True
TXTFINDP.SetFocus
End Sub
VISIBLE digunakan sebagai pilihan apakah suatu objek akan ditampilkan atau disembunyikan.
Jika VISIBLE = TRUE maka objek akan ditampilkan.
Jika VISIBLE = FALSE maka objek akan disembunyikan.
Private Sub TXTFINDB_Change()
Data1.RecordSource = "SELECT*FROM Table_buku WHERE Kode_buku LIKE’*" & TXTFINDB.Text & "*’"
DBGrid3.Refresh
Data1.Refresh
    If Data1.Recordset.EOF Then
    MsgBox "DATA TIDAK ADA !"
    End If
End Sub
Private Sub TXTFINDB_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
TXTKDBUKU.Text = Data1.Recordset!Kode_buku
TXTNMBUKU.Text = Data1.Recordset!Judul_buku
TXTSTOK.Text = Data1.Recordset!Stok_buku
TXTHARGA.Text = Data1.Recordset!Harga_buku
Frame2.Visible = False
TXTJUMBEL.Enabled = True
TXTJUMBEL.SetFocus
TXTFINDB.Text = ""
CMDFINDB.Enabled = False
End If
End Sub
Private Sub TXTFINDP_Change()
Data2.RecordSource = "SELECT*FROM Table_pelanggan WHERE Kode_pelanggan LIKE’*" & TXTFINDP.Text & "*’"
DBGrid2.Refresh
Data2.Refresh
    If Data2.Recordset.EOF Then
    MsgBox "DATA TIDAK ADA !"
    End If
End Sub
Private Sub TXTFINDP_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
TXTKDPEL.Text = Data2.Recordset!Kode_pelanggan
TXTNMPEL.Text = Data2.Recordset!Nama_Pelanggan
TXTTELPON.Text = Data2.Recordset!Telp_pelanggan
TXTALAMAT.Text = Data2.Recordset!Almt_pelanggan
Frame3.Visible = False
CMDFINDB.Enabled = True
CMDFINDP.Enabled = False
TXTFINDP.Text = ""
End If
End Sub

Private Sub CMDLAGI_Click()
CMDFINDB.Enabled = True
CMDSELESAI.Enabled = False
CMDLAGI.Enabled = False
TXTJUMBEL.Text = ""
End Sub

Private Sub CMDSELESAI_Click()
OPTDALAM.Enabled = True
OPTLUAR.Enabled = True
OPTTIDAK.Enabled = True
    If Data6.Recordset.RecordCount = 0 Then
    Data6.Recordset.AddNew
    Data6.Recordset!Nofak = TXTNOFAK.Text
    Data6.Recordset!Kode_buku = TXTKDBUKU.Text
    Data6.Recordset!Jumlah_beli = TXTJUMBEL.Text
    Data6.Recordset!Total_harga = Val(TXTTOHAR.Text)
    Data6.Recordset.Update
    Data6.Refresh
    DBGrid1.Refresh
    TXTTOBAY.Text = Val(TXTTOBAY.Text) + Val(TXTTOHAR.Text)
   End If
CMDLAGI.Enabled = False
CMDSELESAI.Enabled = False
TXTJUMBEL.Enabled = False
End Sub
Maksud dari If Data6.Recordset.RecordCount = 0 Then  dst… yang ada pada CmdSelesai ini adalah jika isi dari field data6 (Table_bantu) masih kosong maka terjadi penyimpanan data dan isi data txttobay adalah txttobay yang lama ditambah dengan txttohar.

Private Sub OPTDALAM_Click()
If OPTDALAM.Value = True Then
TXTKIRIM.Text = 5000
TXTTOBAY.Text = Val(TXTTOBAY.Text) + Val(TXTKIRIM.Text)
TXTUBAR.Enabled = True
TXTUBAR.SetFocus
OPTLUAR.Enabled = False
OPTTIDAK.Enabled = False
TXTUBAR.SetFocus
End If
End Sub
Private Sub OPTLUAR_Click()
If OPTLUAR.Value = True Then
TXTKIRIM.Text = 10000
TXTTOBAY.Text = Val(TXTTOBAY.Text) + Val(TXTKIRIM.Text)
TXTUBAR.Enabled = True
TXTUBAR.SetFocus
OPTDALAM.Enabled = False
OPTTIDAK.Enabled = False
TXTUBAR.SetFocus
End If
End Sub
Private Sub OPTTIDAK_Click()
If OPTTIDAK.Value = True Then
TXTKIRIM.Text = 0
TXTTOBAY.Text = Val(TXTTOBAY.Text) + Val(TXTKIRIM.Text)
TXTUBAR.Enabled = True
TXTUBAR.SetFocus
OPTLUAR.Enabled = False
OPTDALAM.Enabled = False
TXTUBAR.SetFocus
End If
End Sub
Maksud dari VALUE pada Option Button adalah:
Jika VALUE = TRUE berarti Option Button tersebut dipilih.
Jika VALUE = FALSE berarti Option Button tersebut tidak dipilih.
Keterangan dari data biaya pengirimannya adalah:
Jika yang dipilih adalah OptDalam (dalam kota) maka biaya kirimnya adalah 5000
Jika yang dipilih adalah OptLuar(luar kota) maka biaya kirimnya adalah 10000
Jika yang dipilih adalah OptTidak (tidak dikirim) maka biaya kirimnya adalah 0
Total bayar berisi penjumlahan dari Total bayar yang lama ditambah  biaya kirim tersebut.

Private Sub TXTJUMBEL_Change()
TXTTOHAR.Text = Val(TXTJUMBEL.Text) * Val(TXTHARGA.Text)
End Sub
Private Sub TXTJUMBEL_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
If Val(TXTJUMBEL.Text) > Val(TXTSTOK.Text) Then
MsgBox "stok terbatas"
Else
     Data6.Recordset.AddNew
    Data6.Recordset!No_faktur = TXTNOFAK.Text
    Data6.Recordset!Kode_buku = TXTKDBUKU.Text
Data6.Recordset!Jumlah_beli = Val(TXTJUMBEL.Text)
    Data6.Recordset!Total_harga = Val(TXTTOHAR.Text)
    Data6.Recordset.Update
    Data6.Refresh
    DBGrid1.Refresh
TXTTOBAY.Text = Val(TXTTOBAY.Text) + Val(TXTTOHAR.Text)
TXTJUMBEL.Text = ""
TXTTOHAR.Text = ""
CMDFINDB.Enabled = False
CMDLAGI.Enabled = True
CMDSELESAI.Enabled = True
TXTKDBUKU.Text = ""
TXTNMBUKU.Text = ""
TXTSTOK.Text = ""
TXTHARGA.Text = ""
TXTJUMBEL.Enabled = False
End If
End If
End Sub
Perhatikan bahwa TxtJumbel (jumlah beli) disitu ada 2 bagian yaitu CHANGE dan KEYPRESS.
CHANGE: Pada txtjumbel ketika ditulis suatu data maka secara langsung akan terjadi perkalian antara txtjumbel dan txtharga dan hasilnya akan ditaruh di txttohar (total harga).
KEYPRESS: Pada txtjumbel ketika ditekan Enter maka akan terjadi perhitungan data stok, Jika angka yang dimasukan pada txtjumbel lebih besar daripada angka yang ada di txtstok maka akan muncul pesan bahwa Stok terbatas. Tapi jika lebih kecil maka akan terjadi proses penyimpanan data.

Private Sub TXTUBAR_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
If Val(TXTUBAR.Text) < Val(TXTTOBAY.Text) Then
MsgBox "uang bayar kurang"
Else
TXTUKEM.Text = Val(TXTUBAR.Text) – Val(TXTTOBAY.Text)
CMDSAVE.Enabled = True
CMDSAVE.SetFocus
End If
End If
End Sub
Pada txtubar apabila ditekan Enter maka akan terjadi perhitungan data sebagai berikut:
Jika angka yang dimasukan pada txtubar (uang bayar)  lebih kecil dari angka yang ada di txttobay (total bayar) maka akan muncul pesan bahwa uang bayar kurang.
Tapi jika lebih besar maka terjadi pengurangan antara txtubar dikurangi dengan txttobay yang hasilnya diletakkan pada txtukem (uang kembali).

Private Sub Timer1_Timer()
TXTTGL.Text = Date
TXTJAM.Text = Time
End Sub
Listing ini digunakan untuk memunculkan tanggal dan waktu terjadinya transaksi (hari itu juga)
Txttgl berisi Tanggal terjadinya transaksi.
txtjam berisi Jam terjadinya transaksi.
Diperlukan Tool TIMER dan jangan lupa untuk merubah INTERVAL nya pada properties.

Sub hapus_grid()
    If Data6.Recordset.RecordCount <= 0 Then
        Exit Sub
    End If
        Data6.Recordset.MoveFirst
        Do While Not Data6.Recordset.EOF
        Data6.Recordset.Delete
        Data6.Recordset.MoveNext
    Loop
End Sub

Sub hapus_bayar()
If Data7.Recordset.RecordCount <= 0 Then
        Exit Sub
    End If
        Data7.Recordset.MoveFirst
        Do While Not Data7.Recordset.EOF
        Data7.Recordset.Delete
        Data7.Recordset.MoveNext
    Loop
End Sub

Private Sub CMDSAVE_Click()
‘TABLE DETAIL DAN TABLE BANTU
While Not Data6.Recordset.EOF
    Data4.Recordset.AddNew
                 Data4.Recordset!No_faktur = Data6.Recordset!No_faktur
                Data4.Recordset!Kode_buku = Data6.Recordset!Kode_buku
                Data4.Recordset!Jumlah_beli = Data6.Recordset!Jumlah_beli
                Data4.Recordset!Total_harga = Data6.Recordset!Total_harga
‘ PENGURANGAN STOK
                 Data1.Recordset.MoveFirst
                Data1.Recordset.FindFirst "Kode_buku= ‘" & Data6.Recordset!Kode_buku & "’"
                                 If Not Data1.Recordset.NoMatch Then
                                 Data1.Recordset.Edit
                                 Data1.Recordset!Stok_buku = Val(Data1.Recordset!Stok_buku) – Val(Data6.Recordset!Jumlah_beli)
                                Data1.Recordset.Update
                                Data1.Refresh
                                End If
     Data4.Recordset.Update
    Data6.Recordset.MoveNext
    N = N + 1
Wend   
    Data4.Refresh
    Data6.Refresh
    ‘TABLE TRANSAKSI
    Data3.Recordset.AddNew
    Data3.Recordset!No_faktur = TXTNOFAK.Text
    Data3.Recordset!Tgl_faktur = TXTTGL.Text
    Data3.Recordset!Kode_pelanggan = TXTKDPEL.Text
    Data3.Recordset!Total_bayar = TXTTOBAY.Text
    Data3.Recordset!Id_user = TXTKASIR.Text
    Data3.Recordset!Biaya_kirim = TXTKIRIM.Text
    Data3.Recordset.Update
    Data3.Refresh
    ‘TABLE BAYAR
    Data7.Recordset.AddNew
    Data7.Recordset!No_faktur = TXTNOFAK.Text
    Data7.Recordset!Uang_bayar = TXTUBAR.Text
    Data7.Recordset!Uang_kembali = TXTUKEM.Text
    Data7.Recordset.Update
    Data7.Refresh

‘MENCETAK FAKTUR
‘CR.ReportFileName = App.Path & "\Faktur.rpt"
‘CR.SelectionFormula = "({Table_detail.No_faktur}=’" & TXTNOFAK.Text & "’)"
‘CR.WindowState = crptMaximized
‘CR.RetrieveDataFiles
‘CR.Action = 1

CMDADD.Enabled = True
CMDSAVE.Enabled = False
Call kosong
Call nonaktif
Call hapus_grid
Call hapus_bayar
CMDEXIT.Enabled = True
End Sub
Dalam Tombol Save ini terjadi Penyimpanan data pada beberapa Table yaitu: Table Detail (diambil dari Table Bantu), Table Transaksi (diambil dari form), dan Table Bayar (diambil dari form).
Isi dari Table Detail didapat dari isi dari Table Bantu. Sedangkan isi Table Bantu itu sendiri didapat dari data yang dimasukan pada form transaksi ini.
Pada Penyimpanan data ke dalam Table Detail terjadi perintah perulangan yaitu WHILE WEND karena data Table Bantu yang akan disimpan ke dalam Table Detail berjumlah banyak sehingga berulang ulang memasukannya.
Contoh dari perulangan itu adalah apabila ada pelanggan yang membeli buku banyak yang berbeda beda pastinya semua itu hanya dicatat dalam 1 faktur atau 1 struk saja. Makanya disini terjadi pengulangan. Karena tidak mungkin setiap 1 pelanggan yang membeli buku yang banyak harus menggunakan banyak faktur juga.
Didalam penyimpanan Table Detail diatas juga terjadi PENGURANGAN STOK.
Maksud Listing Programnya adalah:
FINDFIRST dipakai untuk mencari kode_buku yang ada pada data1 (Table_buku) yang sama dengan kode_buku yang ada pada data6 (Table_bantu).
Dan jika data tersebut ditemukan maka stok_buku yang ada di data1 (Table_buku) akan dikurangi oleh Jumlah_beli yang ada di data6 (Table_bantu).
Dan setelah data tersebut di Save, maka terjadi perintah untuk memanggil Sub Hapus_Grid dan Sub Hapus_bayar.
Dengan adanya  Sub Hapus_Grid  tersebut, maka semua data yang ada di data6 (table_bantu) akan dikosongkan karena sudah disimpan pada data4 (table_detail).
Dan dengan adanya  Sub Hapus_Bayar  tersebut, maka semua data yang ada di data7 (table_bayar) juga akan dikosongkan karena sudah dipakai dan ditampilkan di dalam Faktur.

MENCETAK FAKTUR hanya dipakai jika anda mempunyai software pembuat laporan yang bernama CRYSTAL REPORT. Jika tidak punya, silahkan hapus rumusnya. Tapi jika anda punya, gunakan listing program tersebut dan hilangkan  tanda petik di depan rumusnya. Untuk keterangan lebih lanjut baca Tutorial Membuat Laporan dengan Crystal Report.

Private Sub Auto()
Data3.RecordSource = "select * from Table_Transaksi Where No_faktur In(Select Max(No_faktur)From Table_Transaksi)Order By No_faktur Desc"
Data3.Refresh
    Dim Urutan As String * 10
    Dim Hitung As Long
    With Data3.Recordset
        If .EOF Then
            Urutan = Right(Date, 2) + Mid(Date, 4, 2) + Left(Date, 2) + "0001"
            No_faktur = Urutan
        Else
            If Left(!No_faktur, 6) <> Right(Date, 2) + Mid(Date, 4, 2) + Left(Date, 2) Then
                Urutan = Right(Date, 2) + Mid(Date, 4, 2) + Left(Date, 2) + "0001"
            Else
                Hitung = (!No_faktur) + 1
                Urutan = (Right(Date, 2) + Mid(Date, 4, 2) + Left(Date, 2)) + Right("0000" & Hitung, 4)
            End If
        End If
        TXTNOFAK.Text = Urutan
    End With
End Sub
Sub AUTO ini digunakan untuk memunculkan nomor faktur secara otomatis.
Jumlah karakter dari nomor faktur ini adalah 10 digit angka yang terdiri dari: 2 angka pertama untuk Tahun faktur, 2 angka berikutnya untuk Bulan faktur, 2 angka berikutnya untuk Tanggal faktur dan 4 angka terakhir digunakan untuk Nomor faktur.
Contoh: jika ada Nomor Faktur yang bertuliskan 0806250099 maka
Tahun faktur tersebut adalah 08 (2008)
Bulan faktur tersebut adalah 06 (Juni)
Tanggal faktur tersebut adalah 25
Nomor faktur tersebut adalah 0099
PERHATIAN: untuk memakai nomor faktur otomatis ini, settingan waktu komputer anda harus berformat ”dd/mm/yy”  (2 digit angka hari/bulan/tahun). Contoh: 30/12/09.
Jika belum dirubah, maka rubahlah format tanggal tersebut dari CONTROL PANEL lalu pilihlah REGIONAL AND LANGUAGE OPTIONS lalu tekan tombol CUSTOMIZE dan pilih DATE lalu rubahlah SHORT DATE FORMAT menjadi dd/mm/yy jika sudah tekan Oke.

CARA MEMAKAI FORM TRANSAKSI INI:
1. Klik Add, untuk memasukan data transaksi yang baru
2. Klik tombol find yang ada disamping kode pelanggan lalu masukan kode pelanggan pada kotak pencarian data kemudian tekan enter.
3. Klik tombol find yang ada disamping kode buku lalu masukan kode buku pada kotak pencarian data kemudian tekan enter.
4. Masukan jumlah beli, lalu tekan enter.
5. Klik tombol Lagi untuk membeli buku yang lainnya lagi.
6. Klik tombol Selesai bila semua buku yang diinginkan sudah selesai dimasukkan.
7. Pilih cara pengiriman buku yang telah disediakan.
8. Masukan uang bayar pada tempat yang disediakan.
9. Klik Save, untuk menyimpan data atau Klik Clear, untuk mengosongkan dan membatalkan data yang akan disimpan.
10. Klik Exit untuk keluar.
- Jangan lupa untuk mengganti Name dari form ini di properties menjadi ”Ftransaksi” dan menyimpannya dengan nama ”Transaksi.frm”.

Demikianlah pembahasan tentang program transaksi yang memang sangat panjang dan lebar. Tapi jika anda mengerti maka terasa tidak terlalu sulit untuk membuatnya. Selamat menikmati tutorial selanjutnya !

By: OPIX HOLMES
opix.holmes@yahoo.com
http://www.islamicunderground.com
vb-transaksi

Membuat Program Penjualan Visual Basic 3 : Membuat Form Pelanggan dan User


Membuat Program Penjualan Visual Basic 3 : Membuat Form Pelanggan dan User
Di tutorial ini kita masih belajar membuat form seperti yang kita buat pada tutorial yang ke 2. Dan form yang akan kita buat adalah form pelanggan dan form user. Inti dari rumusnya sebagian besar sama hanya ada beberapa saja yang mesti dirubah. Tapi jika ada beberapa rumus atau logika yang tidak anda mengerti di tutorial yang ke 3 ini silahkan baca kembali tutorial yang ke 2 karena listing programnya hampir sama dan saya tidak akan menulis keterangan listing program tersebut kembali pada tutorial yang kali ini karena sudah saya jelaskan di tutorial yang ke 2.
2. Membuat FORM PELANGGAN
- Buat form baru lagi lalu isikan dengan isi dan properties dibawah ini:
NAME
CAPTION/TEXT
KETERANGAN
TAMBAHAN
Label1Kode pelangganLabel
Label2Nama pelangganLabel
Label3Nomor Hp/telponLabel
Label4AlamatLabel
Txtkdpel
-
Textbox
Txtnmpel
-
Textbox
Txttelp
-
Textbox
Txtalamat
-
Textbox
Cmdadd&addCommand Button
Cmdclear&clearCommand Button
Cmdsave&saveCommand Button
Cmdedit&editCommand Button
Cmddelete&deleteCommand Button
Cmdexit&exitCommand Button
Cmdfind&findCommand Button
Data1
-
Data
Dbgrid1
-
DbgridData source : data1
PelangganData PelangganForm
Cmdprint&printCommand ButtonJika punya Crystal Report
CR
-
Crystal ReportJika punya Crystal Report
Adapun Listing Program dari Form Pelanggan ini: (keterangannya baca di Tutorial 2)
Private Sub Form_Load()
Data1.DatabaseName = App.Path & "/BUKU.mdb"
Data1.RecordSource = "Table_Pelanggan"
End Sub
Private Sub Form_Activate()
Call nonaktif
TXTKDPEL.Enabled = False
CMDCLEAR.Enabled = False
CMDSAVE.Enabled = False
CMDEDIT.Enabled = False
CMDDELETE.Enabled = False
End Sub

Sub aktif()
TXTNMPEL.Enabled = True
TXTALAMAT.Enabled = True
TXTTELP.Enabled = True
End Sub
Sub nonaktif()
TXTNMPEL.Enabled = False
TXTALAMAT.Enabled = False
TXTTELP.Enabled = False
End Sub
Sub tampil()
On Error Resume Next
With Data1.Recordset
    TXTKDPEL.Text = !Kode_pelanggan
    TXTNMPEL.Text = !Nama_Pelanggan
    TXTALAMAT.Text = !Almt_pelanggan
    TXTTELP.Text = !Telp_pelanggan
End With
End Sub
Private Sub CMDFIND_Click()
Dim Kode_pelanggan As String
Kode_pelanggan = InputBox("masukan kode!", "Cari Data")
If Kode_pelanggan = Empty Then Exit Sub
If Kode_pelanggan <> "" Then
Data1.Recordset.Index = "Kode_pelanggan"
Data1.Recordset.Seek "=", Kode_pelanggan
If Not Data1.Recordset.NoMatch Then
Call tampil
Call aktif
TXTKDPEL.Enabled = False
TXTNMPEL.Enabled = False
TXTALAMAT.Enabled = False
TXTTELP.Enabled = False
CMDSAVE.Enabled = False
CMDADD.Enabled = False
CMDDELETE.Enabled = True
CMDEDIT.Enabled = True
CMDFIND.Enabled = False
Else
MsgBox "Data Tidak ada"
End If
End If
End Sub
KETERANGAN: Untuk Pencarian Data pada Tutorial 3 ini berbeda dengan Tutorial 2. Kalau pada Tutorial 2 saya menggunakan textbox maka kali ini saya menggunakan command button.
Tipe data Kode pelanggan disini dideklarasikan sebagagai STRING.
INPUT BOX adalah sebuah form kecil yang digunakan untuk memasukan data yang ingin dicari.
Maksud logika pencariannya adalah:
Jika Kode Pelanggan yang dimasukan ke dalam Input Box itu kosong (empty) maka akan keluar dari sub program ini.
Tapi Jika Kode Pelanggan yang dimasukan ke dalam Input Box itu tidak kosong (ada isinya) maka akan dilakukan proses pencarian data dari kode pelanggan yang sama dengan yang dimasukan ke Input box tadi.
Dan jika data yang dicari “BUKAN TIDAK ADA” (maksudnya ada) maka data akan ditampilkan.
Tapi jika data yang dicari SELAIN ITU (maksudnya tidak ada) maka akan muncul pesan.
JANGAN BINGUNG YA? HEHEHE ! BAHASANYA DIBOLAK BALIK .
Sub kosong()
TXTNMPEL.Text = ""
TXTALAMAT.Text = ""
TXTTELP.Text = ""
End Sub
Private Sub CMDADD_Click()
Call aktif
Call kosong
CMDADD.Enabled = False
CMDCLEAR.Enabled = True
CMDSAVE.Enabled = True
CMDEDIT.Enabled = False
CMDDELETE.Enabled = False
CMDFIND.Enabled = False
TXTNMPEL.SetFocus
End Sub
Private Sub CMDCLEAR_Click()
TXTKDPEL.Text = ""
Call kosong
Call nonaktif
CMDADD.Enabled = True
CMDSAVE.Enabled = False
CMDCLEAR.Enabled = False
CMDFIND.Enabled = True
CMDEDIT.Enabled = False
CMDDELETE.Enabled = False
End Sub
Private Sub CMDSAVE_Click()
With Data1.Recordset
.AddNew
!Kode_pelanggan = TXTKDPEL.Text
!Nama_Pelanggan = TXTNMPEL.Text
!Almt_pelanggan = TXTALAMAT.Text
!Telp_pelanggan = TXTTELP.Text
.Update
End With
Data1.Refresh
MsgBox "data telah disimpan"
Call nonaktif
CMDSAVE.Enabled = False
CMDCLEAR.Enabled = False
CMDADD.Enabled = True
CMDFIND.Enabled = True
TXTKDPEL.Text = ""
Call kosong
End Sub
Private Sub CMDEDIT_Click()
If CMDEDIT.Caption = "&EDIT" Then
Call aktif
CMDSAVE.Enabled = False
CMDCLEAR.Enabled = False
CMDADD.Enabled = False
CMDDELETE.Enabled = False
CMDEDIT.Caption = "&UPDATE"
Else
With Data1.Recordset
.Edit
!Kode_pelanggan = TXTKDPEL.Text
!Nama_Pelanggan = TXTNMPEL.Text
!Almt_pelanggan = TXTALAMAT.Text
!Telp_pelanggan = TXTTELP.Text
.Update
 End With
Call kosong
CMDEDIT.Caption = "&EDIT"
CMDADD.Enabled = True
CMDDELETE.Enabled = False
CMDFIND.Enabled = True
CMDEDIT.Enabled = False
Call nonaktif
TXTKDPEL.Text = ""
End If
End Sub
Private Sub CMDDELETE_Click()
CMDEDIT.Enabled = False
CMDCLEAR.Enabled = False
CMDDELETE.Enabled = False
a = MsgBox("YAKIN ANDA MAU MENGAHAPUS DATA INI ?", vbQuestion + vbYesNo, "KONFIRMASI")
    If a = vbYes Then
    Data1.Recordset.Delete
    Call kosong
    TXTKDPEL.Text = ""
    MsgBox "DATA TELAH BERHASIL DIHAPUS", vbOKOnly, "INFO"
    CMDADD.Enabled = True
    CMDFIND.Enabled = True
    Data1.Refresh
    DBGrid1.Refresh
Else
CMDDELETE.Enabled = False
CMDADD.Enabled = True
CMDFIND.Enabled = True
Call kosong
TXTKDPEL.Text = ""
    End If
End Sub
Private Sub CMDEXIT_Click()
Unload me
End Sub

Private Sub CMDPRINT_Click()
‘CR.ReportFileName = App.Path & "\PELANGGAN.rpt"
‘CR.WindowState = crptMaximized
‘CR.RetrieveDataFiles
‘CR.Action = 1
End Sub

PERHATIAN: CMDPRINT hanya dipakai jika anda mempunyai software pembuat laporan yang bernama CRYSTAL REPORT. Jika tidak punya, silahkan hapus rumusnya. Tapi jika anda punya, gunakan listing program tersebut dan hilangkan  tanda petik di depan rumusnya. Untuk keterangan lebih lanjut baca Tutorial Membuat Laporan dengan Crystal Report.

- Jangan lupa untuk mengganti Name dari form ini di properties menjadi ”Pelanggan” dan menyimpannya dengan nama ”Pelanggan.frm”.

3. Membuat FORM USER
- Buat form baru lagi lalu isikan dengan isi dan properties dibawah ini:
NAME
CAPTION/TEXT
KETERANGAN
TAMBAHAN
Label1ID userLabel
Label2Nama userLabel
Label3AlamatLabel
Label4TelponLabel
Label5TypeLabel
Label6PasswordLabel
TxtId
-
Textbox
Txtnama
-
Textbox
Txtalamat
-
Textbox
Txttelpon
-
Textbox
Cbotype
-
Combo box
Txtpass
-
Textbox
Txtfind
-
Textbox
Cmdadd&addCommand Button
Cmdclear&clearCommand Button
Cmdsave&saveCommand Button
Cmdedit&editCommand Button
Cmddelete&deleteCommand Button
Cmdexit&exitCommand Button
Cmdfind&findCommand Button
Data1
-
Data
Dbgrid1
-
DbgridData source : data1
UserData UserForm
Cmdprint&printCommand ButtonJika punya Crystal Report
CR
-
Crystal ReportJika punya Crystal Report
Adapun Listing Program dari Form User ini: (keterangannya baca di Tutorial 2)
Private Sub Form_Load()
Data1.DatabaseName = App.Path & "/BUKU.mdb"
Data1.RecordSource = "Table_user"
Cbotype.add item “ADMINISTRATOR”
Cbotype.add item “LIMITED”
End Sub
Private Sub Form_Activate()
CBOTYPE.Enabled = False
Call nonaktif
TXTID.Enabled = False
CMDCLEAR.Enabled = False
CMDSAVE.Enabled = False
CMDDELETE.Enabled = False
CMDEDIT.Enabled = False
End Sub
Sub aktif()
TXTNAMA.Enabled = True
TXTPASS.Enabled = True
TXTALAMAT.Enabled = True
TXTTELPON.Enabled = True
End Sub
Sub nonaktif()
TXTNAMA.Enabled = False
TXTPASS.Enabled = False
TXTALAMAT.Enabled = False
TXTTELPON.Enabled = False
End Sub
Sub kosong()
TXTNMPEL.Text = ""
TXTALAMAT.Text = ""
TXTTELP.Text = ""
End Sub
Sub tampil()
On Error Resume Next
With Data1.Recordset
    TXTKDPEL.Text = !Kode_pelanggan
    TXTNMPEL.Text = !Nama_Pelanggan
    TXTALAMAT.Text = !Almt_pelanggan
    TXTTELP.Text = !Telp_pelanggan
End With
End Sub
Private Sub TXTFIND_Change()
If TXTFIND.Text = "" Then
Data1.RecordSource = "SELECT*FROM Table_user"
Data1.Refresh
CMDEDIT.Enabled = False
CMDDELETE.Enabled = False
CMDFIND.Enabled = True
TXTFIND.Enabled = True
CMDADD.Enabled = True
End If
End Sub
Private Sub CMDFIND_Click()
If TXTFIND.Text = "" Then
MsgBox "masukan data dulu"
TXTFIND.SetFocus
Else
Data1.RecordSource = "SELECT*FROM Table_user WHERE Id_user=’" & TXTFIND.Text & "’"
Data1.Refresh
Call tampil
CMDFIND.Enabled = False
CMDADD.Enabled = False
CMDEDIT.Enabled = True
CMDDELETE.Enabled = True
If Data1.Recordset.EOF Then
MsgBox "DATA TIDAK ADA !!!", vbOKOnly, "INFO"
TXTFIND.Text = ""
TXTFIND.SetFocus
Call kosong
TXTID.Text = ""
End If
End If
End Sub
KETERANGAN: Lagi lagi di Form User ini saya memakai kode pencarian yang berbeda dari Form Pelanggan dan Form Buku. Jika di Form Buku saya hanya menggunakan textbox lalu di Form Pelanggan saya hanya menggunakan command button, maka pada Form User ini saya menggunakan kedua duanya baik textbox dan command button.
Maksud dari logika program pencariannya agak mirip dengan yang ada di Form Buku tetapi kalau memasukan data yang dicari pada Form User ini harus benar benar sama persis dengan yang ada di database. Arti listing programnya yaitu: Pilih semua data dari Table User yang ada di database yang ID User nya sama persis dengan yang ada di txtfind.
Private Sub CMDADD_Click()
Call aktif
Call kosong
CBOTYPE.Enabled = True
TXTNAMA.SetFocus
CMDADD.Enabled = False
CMDCLEAR.Enabled = True
CMDSAVE.Enabled = True
CMDEDIT.Enabled = False
CMDDELETE.Enabled = False
CMDFIND.Enabled = False
End Sub
Private Sub CMDCLEAR_Click()
TXTID.Text = ""
Call kosong
Call nonaktif
CMDADD.Enabled = True
CMDSAVE.Enabled = False
CMDCLEAR.Enabled = False
CMDEDIT.Enabled = False
CMDDELETE.Enabled = False
CBOTYPE.Enabled = False
CMDFIND.Enabled = True
End Sub
Private Sub CMDSAVE_Click()
With Data1.Recordset
.AddNew
!Id_user = TXTID.Text
!Nama_user = TXTNAMA.Text
!Almt_user = TXTALAMAT.Text
!Telp_user = TXTTELPON.Text
!Pass_user = TXTPASS.Text
!Type_user = CBOTYPE.Text
.Update
End With
Data1.Refresh
MsgBox "data telah disimpan"
Call nonaktif
CMDSAVE.Enabled = False
CMDCLEAR.Enabled = False
CMDADD.Enabled = True
CBOTYPE.Enabled = False
CMDFIND.Enabled = True
Call kosong
TXTID.Text = ""
End Sub
Private Sub CMDEDIT_Click()
If CMDEDIT.Caption = "&EDIT" Then
Call aktif
CMDSAVE.Enabled = False
CMDCLEAR.Enabled = False
CMDDELETE.Enabled = False
CMDEDIT.Caption = "&UPDATE"
CBOTYPE.Enabled = True
Else
CBOTYPE.Enabled = False
With Data1.Recordset
.Edit
!Id_user = TXTID.Text
!Nama_user = TXTNAMA.Text
!Almt_user = TXTALAMAT.Text
!Telp_user = TXTTELPON.Text
!Pass_user = TXTPASS.Text
!Type_user = CBOTYPE.Text
.Update
End With
If TXTID.Text = Menuutama.txtuser.Text Then
Menuutama.txtuser.Text = Data1.Recordset!Id_user
Menuutama.Label2.Caption = Data1.Recordset!Nama_user
End If
Call kosong
TXTFIND.Text = ""
TXTID.Text = ""
CMDEDIT.Caption = "&EDIT"
CMDDELETE.Enabled = False
CMDADD.Enabled = True
CMDEDIT.Enabled = False
CMDFIND.Enabled = True
Call nonaktif
End If
End Sub
Private Sub CMDDELETE_Click()
a = MsgBox("YAKIN ANDA MAU MENGAHAPUS DATA INI ?", vbQuestion + vbYesNo, "KONFIRMASI")
    If a = vbYes Then
    Data1.Recordset.Delete
    Call kosong
    TXTID.Text = ""
    MsgBox "DATA TELAH BERHASIL DIHAPUS", vbOKOnly, "INFO"
    CMDADD.Enabled = True
    Data1.Refresh
    CMDDELETE.Enabled = False
    CMDEDIT.Enabled = False
    CMDFIND.Enabled = True
    TXTFIND.Text = ""
Else
CMDDELETE.Enabled = False
CMDADD.Enabled = True
Call kosong
TXTID.Text = ""
TXTFIND.Text = ""
    End If
End Sub
Private Sub CMDEXIT_Click()
Unload Me
End Sub

Private Sub CMCPRINT_Click()
CR.ReportFileName = App.Path & "\USER.rpt"
CR.WindowState = crptMaximized
CR.RetrieveDataFiles
CR.Action = 1
End Sub

PERHATIAN: CMDPRINT hanya dipakai jika anda mempunyai software pembuat laporan yang bernama CRYSTAL REPORT. Jika tidak punya, silahkan hapus rumusnya. Tapi jika anda punya, gunakan listing program tersebut dan hilangkan  tanda petik di depan rumusnya. Untuk keterangan lebih lanjut baca Tutorial Membuat Laporan dengan Crystal Report.

- Jangan lupa untuk mengganti Name dari form ini di properties menjadi ”User” dan menyimpannya dengan nama ”User.frm”.

Akhirnya selesai juga Form Pelanggan dan Form User ini. Bagaimana? Tambah mengerti atau tambah pusing? Nyantai aja bro, masih banyak yang harus kita bikin. Masih ada beberapa form lagi. Jadi, tetap ikuti tutorial dari saya. We’ll meet at 4rd Tutorial , okey? Cheeeeeeeeeeeeeeeeeeeeerrrrrrrrrrrrrrrsssssss!!!

By: OPIX HOLMES
opix.holmes@yahoo.com
http://www.islamicunderground.com
vb-data-user

Jasa

Photobucket

Kamus

English French German Spain Italian Dutch

Russian Portuguese Japanese Korean Arabic Chinese Simplified
by : BTF