Page 1
MODUL VB APOTIK MERCUSUAR
FORM LOGIN
Form ini yang pertama kali dipanggil atau dieksekusi oleh program sebelum form lain. Jika Passwordbenar maka akan buka Form Menu, jika salah sampai 3 kali maka program akan keluar.
FORM LAYOUT
PROPERTY SETTING
No.1
2
345
ObjectForm
Label1
Label2Label3Textbox1
PropertyNameCaptionCaptionFontCaptionCaptionName
SettingfrmLoginLogin SystemLogin SystemTimes New Roman (12)+BoldNama UserPasswordtxtUser
Text6 Textbox2 Name txtPass
Text7
8
Command1
Command2
NameCaptionNameCaption
cmdOKOKcmdKeluarKeluar
CODE:Option ExplicitDim pass As StringDim x As Integer
Private Sub cmdKeluar_Click()End
End Sub
Private Sub cmdOK_Click()If txtUser = "" Then
MsgBox "Nama User harus diisi!", vbOKOnly + vbCritical, "Salah"End IfCekPass
End Sub
By Agus .SM, S.Kom [email protected]
Page 2
MODUL VB APOTIK MERCUSUAR
Private Sub CekPass()If txtPass = pass Then
MsgBox "AKSES DITERIMA ! Selamat Datang, " & UCase(txtUser), , "OK"Unload MefrmMenu.Show (1)
ElseIf x = 3 Then
MsgBox "Anda tidak berhak mengoperasikan aplikasi ini!", vbOKOnly +vbCritical, "UnAuthorized"
EndElse
MsgBox "Password SALAH, masukkan lagi Passwordnya!" & Chr(10) & _"Kesempatan anda " & 3 - x & " lagi", vbOKOnly + vbCritical,
"Password Salah"x = x + 1txtPass = ""txtPass.SetFocusExit Sub
End IfEnd If
End Sub
Private Sub Form_Activate()pass = "mercu"txtUser.SetFocusx = 1
End Sub
Private Sub txtPass_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then
cmdOK_ClickEnd If
End Sub
Private Sub txtUser_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then
txtPass.SetFocusEnd If
End Sub
By Agus .SM, S.Kom [email protected]
Page 3
MODUL VB APOTIK MERCUSUAR
FORM MENU
Cara Membuat Menu :1. Buatlah baru, klik menu Tool, pilih Menu Editor, muncul….
2. Pada bagian Caption, ketik File, bagian Name, ketik mnFile, maka menu File tercipta (lihatbagian bawah (putih) dari gambar diatas.
3. Klik dibagian bawah File, kemudian klik tombol tanda panah kanan. Pada bagian Caption, ketikData Obat, bagian Name, ketik mnObat, maka submenu File tercipta. Ulangi lagi langkah inimembuat submenu Exit (Caption : Exit, Name : mnExit)
4. Klik bagian bawah Exit. Bagian Caption, ketik Transaksi, bagian Name, ketik mnTrans, makamenu Transaksi tercipta.
5. Klik dibagian bawah Transaksi, kemudian klik tombol tanda panah kanan. Pada bagian Caption,ketik Penjualan Obat, bagian Name, ketik mnJual, maka submenu Transaksi tercipta.
6. Klik bagian bawah Penjualan Obat. Bagian Caption, ketik Laporan, bagian Name, ketik mnLap,maka menu Laporan tercipta.
7. Klik dibagian bawah Laporan, kemudian klik tombol tanda panah kanan. Pada bagian Caption,ketik Daftar Obat, bagian Name, ketik mnDO, maka submenu Laporan tercipta. Ulangi lagilangkah ini membuat submenu Laporan Penjualan (Caption : Laporan Penjualan, Name :mnLapJual).
8. Bila sudah jadi maka seperti gambar diatas. Akhiri dengan tekan OK, maka hasilnya seperti…
CODE :Private Sub Form_Activate()
Me.WindowState = 2End SubPrivate Sub mnDO_Click()
frmListObat.Show (1)
By Agus .SM, S.Kom [email protected]
Page 4
MODUL VB APOTIK MERCUSUAR
End SubPrivate Sub mnExit_Click()
EndEnd SubPrivate Sub mnJual_Click()
frmJual.Show (1)End SubPrivate Sub mnObat_Click()
frmObat.Show (1)End SubPrivate Sub mnLapJual_Click()
frmLapJual.Show (1)End SubPrivate Sub Timer1_Timer()
Me.Caption = "Apotik Sehat Selalu :: Menu :: " & Format(Now, "dd mmmm yyyy") & " -" & Time$End Sub
By Agus .SM, S.Kom [email protected]
Page 5
MODUL VB APOTIK MERCUSUAR
FORM OBAT(Aplikasi Koneksi Database secara Program)
Program ini membutuhkan objek tambahan yaitu :1. Microsoft Ado Data Control 6.0 (OLEDB)2. Microsoft DataGrid Control 6.0 (OLEDB)3. Microsoft Windows Common Controls-2 6.0
Tambahkan objek diatas dengan memilih menu Project, Component, dan tandai objek-objek diatas sertaakhiri dengan tekan OK.Selain membutuhkan objek diatas, program ini membutuhkan module yang bernama Connection,lakukan langkah berikut ini :Klik menu Project, pilih Add Module, klik tombol Open, kemudian, ketik isi modul dibawah ini :
Public conn As New ADODB.ConnectionPublic rsObat As New ADODB.RecordsetPublic rsJual As New ADODB.RecordsetPublic rsDump As New ADODB.RecordsetPublic NmDatabase As StringSub Main()
NmDatabase = App.Path + "\Apotik.mdb"On Error Resume NextIf conn.State = 1 Then conn.Closeconn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & NmDatabase & ";Persist
Security Info=False"End SubPublic Function RKanan(NData, CFormat) As String
'fungsi untuk format rata kanan suatu data numerikRKanan = Format(NData, CFormat)RKanan = Space(Len(CFormat) - Len(RKanan)) + RKanan
End Function
Pada bagian Property, setting Name menjadi Connection, dan simpan dengan nama yang sama yaituConnection
FORM LAYOUT
By Agus .SM, S.Kom [email protected]
Page 6
PROPERTY SETTING
MODUL VB APOTIK MERCUSUAR
No1
ObjectForm1
PropertyName
SettingfrmObat
No16
ObjectText5
PropertyName
SettingtxtHargaJual
Caption Form Data ObatAPOTIK SEHAT
Text1-
2 Label1 Caption SELALU Alignment RighJustify
3 Label2
Font
Caption
TimesNewRoman (10)
Kode Obat
17 Text6 Name
Text
txtStok
4 Label3 Caption Nama Obat 18 Combo1 Name cboSatuan
5 Label4 Caption Satuan Text
6 Label5 Caption Bentuk Obat 19 Combo2 Name cboBentuk
7 Label6 Caption Exp. Date Text
8
9
10
11
12
Label7
Label8
Label9
Label10
Text1
Caption
Caption
Caption
Caption
Name
Harga Beli
Keuntungan %
Harga Jual
Stok Obat
txtKode
20
21
22
DTPicker
Command1
Command2
Name
Name
Caption
Name
Caption
ExpDate
cmdBaru
Baru
cmdEdit
Edit
Text 23 Command3 Name cmdHapus
By Agus .SM, S.Kom [email protected]
Page 7
MODUL VB APOTIK MERCUSUAR
13
14
Text2
Text3
Name
Text
Name
Text
Alignment
txtNama
txtHargaBeli
1-RightJustify
24
25
Command4
Command5
Caption
Name
Caption
Name
Caption
Hapus
cmdBatal
Batal
cmdDaftar
Daftar Obat
15 Text4 Name txtUntung 26 Command6 Name cmdKeluar
Text Caption Keluar
Alignment 1-RightJustify 27
28
Adodc1
DataGrid1
Name
Name
Adodc1
DG
CODE :
Option ExplicitDim rsShow As New ADODB.Recordset
Private Sub Form_Activate()cboSatuan.AddItem "Strip"cboSatuan.AddItem "Botol"cboSatuan.AddItem "Ampul"cboSatuan.AddItem "Box"
cboBentuk.AddItem "Tablet"cboBentuk.AddItem "Kaplet"cboBentuk.AddItem "Kapsul"cboBentuk.AddItem "Sirup"cboBentuk.AddItem "Oral"cboBentuk.AddItem "Tetes"PasiftxtKode.MaxLength = 5cmdEdit.Enabled = FalsecmdHapus.Enabled = FalsecmdBatal.Enabled = FalsecmdDaftar_ClickcmdBaru.SetFocus
End Sub
Private Sub Form_Load()Connection.MainWith rsShow
.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &NmDatabase & ";Persist Security Info=False"
.CursorLocation = adUseClient
.LockType = adLockOptimistic
.CursorType = adOpenStatic
.Source = "SELECT Kode,NamaObat,Jenis,ExpDate,HargaJual,Stok From Obat Orderby NamaObat asc"
.OpenEnd With
End Sub
Private Sub cmdBaru_Click()If cmdBaru.Caption = "Baru" Then
cmdBaru.Caption = "Simpan"'AktifBlankcmdBatal.Enabled = True
By Agus .SM, S.Kom [email protected]
Page 8
MODUL VB APOTIK MERCUSUAR
txtKode.Enabled = TruetxtKode.SetFocus
ElsecmdBaru.Caption = "Baru"Call SimpanPasifcmdBatal.Enabled = False
End IfEnd Sub
Sub Simpan()With rsObat
If .State = 1 Then .Close.Open "Select * From Obat", conn, adOpenKeyset, adLockOptimistic.AddNew.Fields("Kode") = txtKode.Fields("NamaObat") = txtNama.Fields("Satuan") = cboSatuan.Fields("Jenis") = cboBentuk.Fields("ExpDate") = Format(ExpDate, "dd/mm/yyyy").Fields("HargaBeli") = txtHargaBeli.Fields("Keuntungan") = txtUntung.Fields("HargaJual") = txtHargaJual.Fields("Stok") = txtStok.Update
End WithcmdDaftar_Click
End Sub
Private Sub cmdBatal_Click()BlankcmdBaru.Caption = "Baru"cmdEdit.Caption = "Edit"cmdBaru.Enabled = TruecmdEdit.Enabled = FalsecmdHapus.Enabled = FalsecmdBatal.Enabled = FalsePasifDG.Visible = FalsecmdBaru.SetFocus
End Sub
Private Sub cmdDaftar_Click()If cmdDaftar.Caption = "Daftar Obat" Then
cmdDaftar.Caption = "Tutup Daftar"DG.Visible = TrueWith rsShow
If .State = 1 Then .Close.Source = "SELECT Kode,NamaObat,Jenis,ExpDate,HargaJual,Stok From Obat
Order by NamaObat asc".Open
End WithSet DG.DataSource = rsShowDG.Refresh
ElsecmdDaftar.Caption = "Daftar Obat"DG.Visible = False
End IfEnd Sub
Private Sub cmdEdit_Click()With rsObat
By Agus .SM, S.Kom [email protected]
Page 9
MODUL VB APOTIK MERCUSUAR
If .State = 1 Then .Close.Open "Select * From Obat where Kode='" & txtKode & "'", conn, adOpenKeyset,
adLockOptimistic.Fields("NamaObat") = txtNama.Fields("Satuan") = cboSatuan.Fields("Jenis") = cboBentuk.Fields("ExpDate") = Format(ExpDate, "dd/mm/yyyy").Fields("HargaBeli") = txtHargaBeli.Fields("Keuntungan") = txtUntung.Fields("HargaJual") = txtHargaJual.Fields("Stok") = txtStok.Update
End WithcmdDaftar_ClickcmdBatal_Click
End Sub
Private Sub cmdHapus_Click()If MsgBox("Benar data obat " & UCase(txtNama) & " mau dihapus?", vbYesNo +
vbQuestion, "Hapus") = vbYes ThenWith rsObat
If .State = 1 Then .Close.Open "Select * From Obat where Kode='" & txtKode & "'", conn,
adOpenKeyset, adLockOptimistic.Delete
End WithEnd IfcmdBatal_Click
End Sub
Private Sub cmdKeluar_Click()Unload Me
End Sub
Private Sub DG_DblClick()txtKode = DG.Columns(0).Value
End Sub
Sub Pasif()txtKode.Enabled = FalsetxtNama.Enabled = FalsecboSatuan.Enabled = FalsecboBentuk.Enabled = FalseExpDate.Enabled = FalsetxtHargaBeli.Enabled = FalsetxtUntung.Enabled = FalsetxtHargaJual.Enabled = FalsetxtStok.Enabled = False
End Sub
Sub Aktif()txtKode.Enabled = TruetxtNama.Enabled = TruecboSatuan.Enabled = TruecboBentuk.Enabled = TrueExpDate.Enabled = TruetxtHargaBeli.Enabled = TruetxtUntung.Enabled = TruetxtHargaJual.Enabled = TruetxtStok.Enabled = True
End Sub
By Agus .SM, S.Kom [email protected]
Page 10
MODUL VB APOTIK MERCUSUAR
Sub Blank()txtKode = ""txtNama = ""cboSatuan = ""cboBentuk = ""ExpDate = NowtxtHargaBeli = ""txtUntung = ""txtHargaJual = ""txtStok = ""
End Sub
Private Sub txtHargaBeli_Change()txtHargaJual = Val(txtHargaBeli) + (Val(txtHargaBeli) * Val(txtUntung) / 100)
End Sub
Private Sub txtUntung_Change()txtHargaJual = Val(txtHargaBeli) + (Val(txtHargaBeli) * Val(txtUntung) / 100)
End Sub
Private Sub txtKode_Change()If Len(txtKode) < 5 Then Exit SubWith rsObat
If .State = 1 Then .Close.Open "Select * From Obat Where Kode='" & txtKode & "'", conn, adOpenKeyset,
adLockOptimisticIf .RecordCount > 0 Then
txtNama = .Fields("NamaObat")cboSatuan = .Fields("Satuan")cboBentuk = .Fields("Jenis")txtHargaBeli = .Fields("HargaBeli")txtHargaJual = .Fields("HargaJual")txtUntung = .Fields("Keuntungan")txtStok = .Fields("Stok")ExpDate = .Fields("Expdate")If MsgBox("Kode Obat Sudah terpakai. Mau Edit Data", vbYesNo + vbQuestion,
"Kode Obat") = vbYes ThenAktiftxtKode.Enabled = FalsetxtNama.SetFocuscmdBaru.Caption = "Baru"cmdBaru.Enabled = FalsecmdBatal.Enabled = TruecmdEdit.Enabled = TruecmdHapus.Enabled = TruecmdEdit.Caption = "Update"Exit Sub
ElsecmdBatal_Click
End IfEnd If
End WithAktiftxtKode.Enabled = FalsetxtNama.SetFocus
End Sub
Private Sub txtNama_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then
cboSatuan.SetFocusEnd If
End Sub
By Agus .SM, S.Kom [email protected]
Page 11
MODUL VB APOTIK
Private Sub cboSatuan_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then
cboBentuk.SetFocusEnd If
End Sub
Private Sub cboBentuk_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then
ExpDate.SetFocusEnd If
End Sub
Private Sub ExpDate_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = 13 Then
txtHargaBeli.SetFocusEnd If
End Sub
Private Sub txtHargaBeli_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then
txtUntung.SetFocusEnd If
End Sub
Private Sub txtUntung_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then
txtStok.SetFocusEnd If
End Sub
Private Sub txtStok_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then
If cmdBaru.Enabled = True ThencmdBaru.SetFocus
ElsecmdEdit.SetFocus
End IfEnd If
End Sub
Private Sub txtKode_KeyPress(KeyAscii As Integer)KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
MERCUSUAR
By Agus .SM, S.Kom [email protected]
Page 12
MODUL VB APOTIK MERCUSUAR
MODUL PENJUALAN OBAT
Untuk membuat program dibawah ini perlu ditambahkan objek baru yaitu ListView. Lakukan langkahberikut ini :
Klik menu Project, pilih Components, gulung ke bawah, tandai Microsoft Windows Common Control6.0 (SP6), kemudian klik tombol OK.
FORM LAYOUT
PROPERTY SETTINGNo
1
Object
Form1
Property
Name
Setting
frmJual
No
17
Object
Textbox5
Property
Name
Setting
txtJumlah
Caption Transaksi PenjualanApotik SEHAT
Text
2 Label1 Caption SELALU 18 Textbox6 Name txtDisc
3 Label2 Caption No.Faktur Text
4 Label3 Caption Kode Obat 19 Textbox7 Name txtJam
5 Label4 Caption Tanggal Text
6 Label5 Caption Jumlah Beli Locked TRUE
7 Label6 Caption Discount (%) 20 Textbox8 Name txtTotal
8 Label7 Caption >>> Enter Text
9 Label8 Caption Jam Locked TRUE
10 Label9 Caption Total 21 Textbox9 Name txtBayar
11 Label10 Caption Bayar Text
12 Label11 Caption Kembali 22 Textbox10 Name txtKembali
By Agus .SM, S.Kom [email protected]
Page 13
MODUL VB APOTIK MERCUSUAR
13 Textbox1 Name
Text
txtNoFak Text
Locked TRUE
Locked TRUE 23 Timer1 Interval 100
14 Textbox2 Name txtKode 24 ListView1 Name lstJual
Text 25 Command1 Name cmdReset
15 Textbox3 Name
Text
txtNama
26 Command2
Caption
Name
Reset
cmdCetakSimpan
Locked TRUE Caption (Cetak)
16 Textbox4 Name txtTgl
Text
Locked TRUE
CODE:Option ExplicitDim rsShow As New ADODB.RecordsetDim vbnofak As StringDim vbharga, vbtotal As SingleDim List As ListItemDim header As ColumnHeader
Private Sub HeaderJual()Set header = lstJual. _
ColumnHeaders.Add(, , "No", 500)
Set header = lstJual. _ColumnHeaders.Add(, , "Kode", 700)
Set header = lstJual. _ColumnHeaders.Add(, , "Nama Barang", 3000)
Set header = lstJual. _ColumnHeaders.Add(, , "QTY", 600, 1)
Set header = lstJual. _ColumnHeaders.Add(, , "Harga", 1200, 1)
Set header = lstJual. _ColumnHeaders.Add(, , "Disc%", 700, 1)
Set header = lstJual. _ColumnHeaders.Add(, , "PJualan", 1500, 1)
End Sub
Private Sub ListJual()Dim no As Integer
no = 1vbtotal = 0
lstJual.View = lvwReport
With rsDumpIf .State = 1 Then .Close.Open "Select * From dumpJual", conn, adOpenKeyset, adLockOptimisticlstJual.ListItems.Clear'.MoveFirst
By Agus .SM, S.Kom [email protected]
Page 14
MODUL VB APOTIK MERCUSUAR
Do While Not .EOFOn Error Resume NextSet List = lstJual.ListItems.Add(, , no)List.SubItems(1) = .Fields("Kode")List.SubItems(2) = .Fields("Nama")List.SubItems(3) = .Fields("Jumlah")List.SubItems(4) = Format(.Fields("Harga"), "##,###,##")List.SubItems(5) = .Fields("Disc")List.SubItems(6) = Format(.Fields("Pjual"), "##,###,##")vbtotal = vbtotal + .Fields("Pjual").MoveNext
no = no + 1Loop
End WithtxtTotal = Format(vbtotal, "###,###,###")
End Sub
Private Sub Form_Load()Connection.Main
End Sub
Private Sub Form_Activate()txtTgl = Format(Now, "dd mmmm yyyy")HapusHeaderJualListJualCekNofaktxtKode.SetFocus
End Sub
Sub SimpanTransaksi()Dim pj As Single
With rsDumpIf .State = 1 Then .Close.Open "Select * From dumpJual", conn, adOpenKeyset, adLockOptimistic.AddNew.Fields("Kode") = txtKode.Fields("Nama") = txtNamaObat.Fields("Jumlah") = txtJumlah.Fields("Disc") = Val(txtDisc).Fields("Harga") = vbhargapj = Val(txtJumlah) * vbharga.Fields("Pjual") = pj - (pj * Val(txtDisc) / 100).Update
End WithtxtKode = ""txtNamaObat = ""txtJumlah = ""txtDisc = ""ListJualtxtKode.SetFocus
End Sub
Sub SalinPenjualan()With rsJual
If .State = 1 Then .Close.Open "Select * From Jual", conn, adOpenKeyset, adLockOptimisticIf rsDump.State = 1 Then rsDump.ClosersDump.Open "Select * From dumpJual", conn, adOpenKeyset, adLockOptimisticIf rsDump.RecordCount = 0 Then
By Agus .SM, S.Kom [email protected]
Page 15
MODUL VB APOTIK MERCUSUAR
MsgBox "Tidak ada Transaksi", vbOKOnly + vbCritical, "Transaksi"Exit Sub
End IfrsDump.MoveFirstDo While Not rsDump.EOF'salin dari dump ke jual
.AddNew
.Fields("Kode") = rsDump.Fields("Kode")
.Fields("Nofak") = txtNoFak
.Fields("Jumlah") = rsDump.Fields("Jumlah")
.Fields("Disc") = rsDump.Fields("Disc")
.Fields("TglJual") = Format(Now, "dd/mm/yyyy")
.Update'Update Stok ObatIf rsObat.State = 1 Then rsObat.ClosersObat.Open "Select * From Obat Where Kode='" & rsDump.Fields("Kode") &
"'", conn, adOpenKeyset, adLockOptimisticrsObat.Fields("Stok") = rsObat.Fields("Stok") - rsDump.Fields("Jumlah")rsObat.UpdatersDump.MoveNext
LoopEnd With
End Sub
Private Sub txtKode_Change()If Len(txtKode) < 5 Then Exit SubWith rsObat
If .State = 1 Then .Close.Open "Select * From Obat where Kode='" & txtKode & "'", conn, adOpenKeyset,
adLockOptimisticIf .RecordCount = 0 Then
MsgBox "Kode obat tidak dikenal !", vbOKOnly + vbCritical, "Kode Salah"txtKode.SetFocusExit Sub
End IftxtNamaObat = .Fields("NamaObat")vbharga = .Fields("HargaJual")txtJumlah.SetFocus
End WithEnd Sub
Private Sub cmdCetak_Click()SalinPenjualanIf MsgBox("Mau dicetak?", vbYesNo + vbQuestion, "Cetak") = vbYes Then
CetakSlipEnd IfCekNofakcmdReset_Click
End Sub
Private Sub cmdReset_Click()txtKode = ""txtNamaObat = ""txtJumlah = ""txtDisc = ""txtTotal = ""txtBayar = ""txtkembali = ""HapusListJualtxtKode.SetFocus
End Sub
By Agus .SM, S.Kom [email protected]
Page 16
MODUL VB APOTIK MERCUSUAR
Sub CekNofak()Dim n As SingleDim t, b, h As String
t = Format(Now, "yyyy")b = Format(Now, "mm")h = Format(Now, "dd")With rsJual
If .State = 1 Then .Close.Open "Select * From Jual order by Nofak asc", conn, adOpenKeyset,
adLockOptimisticIf .RecordCount > 0 Then
.MoveLastn = Mid(Val(.Fields("Nofak")), 9, 2)vbnofak = t + b + h & n + 1
Elsevbnofak = t + b + h & "1"
End IfEnd WithtxtNoFak = vbnofak
End Sub
Sub Hapus()With rsDump
If .State = 1 Then .Close.Open "Select * From dumpJual", conn, adOpenKeyset, adLockOptimisticIf .RecordCount > 0 Then
.MoveFirstDo While Not .EOF
.Delete
.MoveNextLoop
End IfEnd With
End Sub
Private Sub Timer1_Timer()txtJam = Format(Now, "hh:mm:ss") & " WIB"
End Sub
Private Sub txtBayar_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then
txtkembali = Round(Val(txtBayar) - vbtotal)cmdCetak.SetFocus
End IfEnd Sub
Private Sub txtJumlah_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then
txtDisc.SetFocusEnd If
End SubPrivate Sub txtDisc_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 ThenSimpanTransaksi
End IfEnd Sub
Private Sub txtKode_KeyPress(KeyAscii As Integer)KeyAscii = Asc(UCase(Chr(KeyAscii)))If KeyAscii = 13 Then
If MsgBox("Transaksi selesai ?", vbYesNo + vbQuestion, "Selesai") = vbYes Then
By Agus .SM, S.Kom [email protected]
Page 17
MODUL VB APOTIK MERCUSUAR
txtBayar.SetFocusElse
txtKode.SetFocusEnd If
End IfEnd Sub
Sub CetakSlip()Dim ttl As Single
Printer.PrintPrinter.PrintPrinter.Print Tab(5); "APOTIK SEHAT SELALU"Printer.Print Tab(5); "Jl. Seger Waras 10"Printer.PrintPrinter.Print Tab(5); "Faktur Pembelian"Printer.Print Tab(5); "Tanggal : "; Format(Now, "dd/mm/yyyy hh:mm:ss")Printer.Print Tab(5); String(80, "-")Printer.Print Tab(5); "Nama Obat";Printer.Print Tab(35); "QTY";Printer.Print Tab(42); "Harga";Printer.Print Tab(52); "Total"Printer.Print Tab(5); String(80, "-")ttl = 0With rsDump
If .State = 1 Then .Close.Open "Select * From dumpjual", conn, adOpenKeyset, adLockOptimistic.MoveFirstDo While Not .EOF
Printer.Print Tab(5); .Fields("Nama");Printer.Print Tab(35); RKanan(.Fields("Jumlah"), "###");Printer.Print Tab(42); RKanan(.Fields("Harga"), "#,###,###");Printer.Print Tab(52); RKanan(.Fields("Pjual"), "#,###,###")ttl = ttl + .Fields("Pjual").MoveNext
LoopEnd WithPrinter.Print Tab(5); String(80, "-")Printer.Print Tab(30); "Grand Total"; Tab(52); RKanan(ttl, "#,###,###")Printer.Print Tab(30); "Bayar"; Tab(52); RKanan(Val(txtBayar), "#,###,###")Printer.Print Tab(30); "Kembalian"; Tab(52); RKanan(Val(txtkembali), "#,###,###")Printer.Print Tab(52); "Terima kasih"Printer.EndDoc
End Sub
By Agus .SM, S.Kom [email protected]
Page 18
No Object Property Setting No Object Property Setting
1
2
3
4
5
6
7
Form1
Frame1
Label1
Label2
Textbox1
Combo1
Command1
Name
Caption
Caption
Caption
Caption
Name
Text1
Name
Text1
Name
Caption
frmListObat
Daftar Obat:: Filter Data Obat::
Nama Obat
Jenis Obat
txtNama
cboJenis
cmdShow
:: Show
8
9
10
11
12
13
Command2
Command3
Command4
ListView
Label3
Textbox2
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Text1
cmdCetak
:: Cetak
cmdRefresh
:: Refresh
cmdKeluar
:: Keluar
lstObatJumlah ItemObat
txtJml
MODUL VB APOTIK MERCUSUAR
FORM DAFTAR OBAT
Untuk membuat program dibawah ini perlu ditambahkan objek baru yaitu ListView. Lakukan langkahberikut ini :
Klik menu Project, pilih Components, gulung ke bawah, tandai Microsoft Windows Common Control6.0 (SP6), kemudian klik tombol OK.
FORM LAYOUT
PROPERTY SETTING
CODE
By Agus .SM, S.Kom [email protected]
Page 19
Option ExplicitDim rsShow As New ADODB.RecordsetDim List As ListItemDim header As ColumnHeader
Private Sub HeaderObat()Set header = lstObat. _
ColumnHeaders.Add(, , "No", 500)
Set header = lstObat. _ColumnHeaders.Add(, , "Kode", 800)
Set header = lstObat. _ColumnHeaders.Add(, , "Nama Obat", 3000)
Set header = lstObat. _ColumnHeaders.Add(, , "Satuan/Jenis", 1500)
Set header = lstObat. _ColumnHeaders.Add(, , "Harga", 1200, 1)
Set header = lstObat. _ColumnHeaders.Add(, , "Stok", 700, 1)
Set header = lstObat. _ColumnHeaders.Add(, , "ExpDate", 1100, 1)
End Sub
Private Sub ListObat()Dim no, vbtotal As Integer
no = 1: vbtotal = 0
lstObat.View = lvwReportlstObat.GridLines = TruelstObat.FullRowSelect = TrueWith rsObat
If .State = 1 Then .CloseIf txtNama <> "" And cboJenis <> "" Then
MODUL VB APOTIK MERCUSUAR
.Open "Select Kode,NamaObat,Satuan,Jenis,HargaJual,Stok,expDate Fromwhere NamaObat LIKE '%" & Trim(txtNama) & "%' and jenis='" & cboJenis & "' orderNamaObat Asc", conn, adOpenKeyset, adLockOptimistic
ElseIf txtNama <> "" Then.Open "Select Kode,NamaObat,Satuan,Jenis,HargaJual,Stok,expDate From
where NamaObat LIKE '%" & Trim(txtNama) & "%' order by NamaObat Asc", conn,adOpenKeyset, adLockOptimistic
ElseIf cboJenis <> "" Then.Open "Select Kode,NamaObat,Satuan,Jenis,HargaJual,Stok,expDate From
where jenis='" & cboJenis & "' order by NamaObat Asc", conn, adOpenKeyset,adLockOptimistic
Else.Open "Select Kode,NamaObat,Satuan,Jenis,HargaJual,Stok,expDate From
order by NamaObat Asc", conn, adOpenKeyset, adLockOptimisticEnd IflstObat.ListItems.Clear.MoveFirstDo While Not .EOF
On Error Resume NextSet List = lstObat.ListItems.Add(, , no)List.SubItems(1) = .Fields("Kode")List.SubItems(2) = .Fields("NamaObat")List.SubItems(3) = .Fields("Satuan") & "/" & .Fields("Jenis")List.SubItems(4) = Format(.Fields("HargaJual"), "##,###,##")
Obatby
Obat
Obat
Obat
By Agus .SM, S.Kom [email protected]
Page 20
MODUL VB APOTIK MERCUSUAR
List.SubItems(5) = .Fields("Stok")List.SubItems(6) = .Fields("ExpDate")vbtotal = vbtotal + 1.MoveNext
no = no + 1Loop
End WithtxtJml = Format(vbtotal, "###")
End Sub
Private Sub cmdCetak_Click()If MsgBox("Printer sudah siap?", vbYesNo + vbQuestion, "Cetak") = vbYes Then
Call CetakEnd If
End Sub
Private Sub cmdKeluar_Click()Unload Me
End Sub
Private Sub cmdRefresh_Click()txtNama = ""cboJenis = ""ListObat
End Sub
Private Sub cmdShow_Click()ListObat
End Sub
Private Sub Form_Activate()cboJenis.AddItem "Tablet"cboJenis.AddItem "Kaplet"cboJenis.AddItem "Sirup"cboJenis.AddItem "Kapsul"cboJenis.AddItem "Oral"cboJenis.AddItem "Tetes"HeaderObatListObat
End Sub
Private Sub Form_Load()Connection.Main
End Sub
Sub Cetak()Dim no, ttl As Integerno = 1: ttl = 0With rsObat
If .State = 1 Then .CloseIf txtNama <> "" And cboJenis <> "" Then
.Open "Select Kode,NamaObat,Satuan,Jenis,HargaJual,Stok,expDate From Obatwhere NamaObat LIKE '%" & Trim(txtNama) & "%' and jenis='" & cboJenis & "' order byNamaObat Asc", conn, adOpenKeyset, adLockOptimistic
ElseIf txtNama <> "" Then.Open "Select Kode,NamaObat,Satuan,Jenis,HargaJual,Stok,expDate From Obat
where NamaObat LIKE '%" & Trim(txtNama) & "%' order by NamaObat Asc", conn,adOpenKeyset, adLockOptimistic
ElseIf cboJenis <> "" Then
By Agus .SM, S.Kom [email protected]
Page 21
MODUL VB APOTIK MERCUSUAR
.Open "Select Kode,NamaObat,Satuan,Jenis,HargaJual,Stok,expDate From Obatwhere jenis='" & cboJenis & "' order by NamaObat Asc", conn, adOpenKeyset,adLockOptimistic
Else.Open "Select Kode,NamaObat,Satuan,Jenis,HargaJual,Stok,expDate From Obat
order by NamaObat Asc", conn, adOpenKeyset, adLockOptimisticEnd IfCall Judul.MoveFirstDo While Not .EOF
Printer.Print Tab(5); Format(no, "##");Printer.Print Tab(8); .Fields("Kode");Printer.Print Tab(15); .Fields("NamaObat");Printer.Print Tab(45); .Fields("Satuan") & "/" & .Fields("Jenis"); ";"Printer.Print Tab(60); .Fields("HargaJual");Printer.Print Tab(72); .Fields("Stok");Printer.Print Tab(82); .Fields("ExpDate")no = no + 1ttl = ttl + 1.MoveNext
LoopEnd WithPrinter.Print Tab(5); String(100, "-")Printer.Print Tab(50); "Jumlah Item Obat : "; Format(ttl, "###")Printer.EndDoc
End Sub
Sub Judul()Printer.PrintPrinter.PrintPrinter.Font = "Times New Roman": Printer.Font.Size = 12Printer.Print Tab(5); "APOTIK SEHAT SELALU"Printer.Font = "Courier New": Printer.Font.Size = 9Printer.Print Tab(5); "Jl. Seger Waras No.10"Printer.PrintPrinter.Print Tab(25); "DAFTAR OBAT"Printer.Print Tab(5); String(100, "-")Printer.Print Tab(5); "No";Printer.Print Tab(8); "Kode";Printer.Print Tab(15); "Nama Obat";Printer.Print Tab(45); "Sat/Jenis";Printer.Print Tab(60); "Harga";Printer.Print Tab(72); "Stok";Printer.Print Tab(82); "ExpDate"Printer.Print Tab(5); String(100, "-")
End Sub
By Agus .SM, S.Kom [email protected]