Top Banner
MODUL VB APOTIK MERCUSUAR FORM LOGIN Form ini yang pertama kali dipanggil atau dieksekusi oleh program sebelum form lain. Jika Password benar maka akan buka Form Menu, jika salah sampai 3 kali maka program akan keluar. FORM LAYOUT PROPERTY SETTING No. 1 2 3 4 5 Object Form Label1 Label2 Label3 Textbox1 Property Name Caption Caption Font Caption Caption Name Setting frmLogin Login System Login System Times New Roman (12)+Bold Nama User Password txtUser Text 6 Textbox2 Name txtPass Text 7 8 Command1 Command2 Name Caption Name Caption cmdOK OK cmdKeluar Keluar CODE: Option Explicit Dim pass As String Dim 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 If CekPass End Sub By Agus .SM, S.Kom [email protected]
21
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: modulvbdatabaseapotik

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: modulvbdatabaseapotik

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: modulvbdatabaseapotik

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: modulvbdatabaseapotik

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: modulvbdatabaseapotik

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: modulvbdatabaseapotik

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: modulvbdatabaseapotik

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: modulvbdatabaseapotik

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: modulvbdatabaseapotik

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: modulvbdatabaseapotik

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: modulvbdatabaseapotik

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: modulvbdatabaseapotik

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: modulvbdatabaseapotik

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: modulvbdatabaseapotik

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: modulvbdatabaseapotik

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: modulvbdatabaseapotik

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: modulvbdatabaseapotik

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: modulvbdatabaseapotik

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: modulvbdatabaseapotik

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: modulvbdatabaseapotik

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: modulvbdatabaseapotik

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]