Aplikasi Pemesanan
Dan Pengiriman Barang VB 6.0
Program pemesanan dan pengiriman barang ini polanya mengikuti
program perpustakaan dan rental VCD.
Perbedaannya adalah pada program pengiriman barang terdapat tambahan proses,
yaitu pada pengisian kurir yang mengirimkan barang pesanan dan biaya sisa yang
harus di bayar jika uang muka belum lunas.
Normalisasi File
Program Pesanan ini dirancang dengan Normaliasi level ketiga
(3NF) dengan bentuk seperti Gambar
11.1.
Program pemesanan barang ini menyimpan
data ke dua tabel yaitu tabel Pesanan dan DetailPsn seperti terlihat pada
tabel-tabel berikut ini.
Tabel Pesanan
Pesanan
|
|||||||||
Nomorpsn
|
Tanggalpsn
|
Totalitem
|
Totalhrg
|
DP
|
Sisa
|
Nomorksm
|
KodeKsr
|
TglMintakrm
|
Ket
|
P070905005
|
05/09/07
|
3
|
18500
|
0
|
18500
|
KSM02
|
KSR01
|
05/09/07
|
Belum Dikirim
|
P070918001
|
18/09/07
|
3
|
7000
|
0
|
7000
|
KSM04
|
KSR01
|
18/09/07
|
Belum Dikirim
|
Tabel DetailPsn
DetailPsn
|
||
Nomorpsn
|
Kodebrg
|
Jumlahpsn
|
P070918001
|
BRG002
|
2
|
P070918001
|
BRG001
|
1
|
P070910001
|
BRG002
|
2
|
P070910001
|
BRG001
|
1
|
P070905005
|
BRG008
|
1
|
P070905005
|
BRG004
|
1
|
P070905005
|
BRG001
|
1
|
Database Dan Tabel
Untuk mengetahui file database dan struktur masing-masing
tabel berikut type data dan kunci primer maupun
kunci tamunya silakan buka CD pendukung buku ini.
Membuat Module
Untuk memulai membuat program Pesanan, aktifkanlah VB
kemudian awali dengan membuat module lalu ketik coding
berikut ini.
Coding :
Public Conn As New
ADODB.Connection
Public RSBarang As
ADODB.Recordset
Public RSKasir As
ADODB.Recordset
Public RSKonsumen
As ADODB.Recordset
Public RSPesanan
As ADODB.Recordset
Public RSDetailPsn
As ADODB.Recordset
Public RSKurir As
ADODB.Recordset
Public
RSPengiriman As ADODB.Recordset
Public RSDetailKrm
As ADODB.Recordset
Public RSTransaksi
As ADODB.Recordset
Public Sub
BukaDB()
Dim STR As String
Set Conn = New
ADODB.Connection
Set RSBarang = New
ADODB.Recordset
Set RSKasir = New
ADODB.Recordset
Set RSKonsumen =
New ADODB.Recordset
Set RSPesanan =
New ADODB.Recordset
Set RSDetailPsn =
New ADODB.Recordset
Set RSKurir = New
ADODB.Recordset
Set RSPengiriman =
New ADODB.Recordset
Set RSDetailKrm =
New ADODB.Recordset
Set RSTransaksi =
New ADODB.Recordset
Conn.Open
"PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path &
"\ADOPesanan.mdb"
End Sub
Transaksi Pemesanan Barang
Dengan asumsi form login, data kasir, barang, konsumen dan kurir
telah dibuat, kini saatnya membuat form Pesanan dengan bentuk seperti Gambar 11.3
berikut ini.
Coding :
Private Sub
Form_Activate()
DT.ConnectionString
= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path
& "\ADOPesanan.mdb"
DT.RecordSource =
"Transaksi"
Set
DataGrid1.DataSource = DT
DataGrid1.Refresh
If Kodeksr =
"" Then
MsgBox "Kasir tidak terdeteksi"
Login.Show
Exit Sub
End If
Call BukaDB
RSBarang.Open
"Barang", Conn
List1.Clear
Do Until
RSBarang.EOF
List1.AddItem RSBarang!KodeBrg & vbTab
& RSBarang!NamaBrg
RSBarang.MoveNext
Loop
RSKonsumen.Open
"Konsumen", Conn
Combo1.Clear
Do Until
RSKonsumen.EOF
Combo1.AddItem RSKonsumen!Nomorksm
RSKonsumen.MoveNext
Loop
Call AutoPsn
Call AutoKsm
Call Tabel_Kosong
DT.Recordset.MoveFirst
Tanggal = Date
TglMintakrm.Value
= Date
Nomorksm.Enabled =
False
CmdSimpan.Enabled
= False
End Sub
Private Sub
Form_Load()
Kodeksr = Login.TxtKodeKsr
Namaksr = Login.TxtNamaKsr
DataGrid1.Col = 1
CmdSimpan.Enabled = False
End Sub
Private Sub
Timer1_Timer()
Jam = Time$
End Sub
Private Sub
AutoPsn()
Call BukaDB
RSPesanan.Open
("select * from pesanan Where NomorPsn In(Select Max(NomorPsn)From
Pesanan)Order By NomorPsn Desc"), Conn
RSPesanan.Requery
Dim Urutan As String * 10
Dim Hitung As Long
With RSPesanan
If .EOF Then
Urutan = "P" +
Right(Date, 2) + Mid(Date, 4, 2) + Left(Date, 2) + "001"
NomorPsn = Urutan
Exit Sub
Else
If Mid(!NomorPsn, 2, 6) <>
Right(Date, 2) + Mid(Date, 4, 2) + Left(Date, 2) Then
Urutan = "P" +
Right(Date, 2) + Mid(Date, 4, 2) + Left(Date, 2) + "001"
Else
Hitung = Right(!NomorPsn, 9) +
1
Urutan = "P" +
(Right(Date, 2) + Mid(Date, 4, 2) + Left(Date, 2)) + Right("000"
& Hitung, 3)
End If
End If
NomorPsn = Urutan
End With
End Sub
Private Sub
AutoKsm()
Call BukaDB
RSKonsumen.Open
("select * from Konsumen Where NomorKsm In(Select Max(NomorKsm)From
Konsumen)Order By NomorKsm Desc"), Conn
RSKonsumen.Requery
Dim Urutan As String * 5
Dim Hitung As Long
With RSKonsumen
If .EOF Then
Urutan = "KSM01"
Nomorksm = Urutan
Else
Hitung = Right(!Nomorksm, 2) + 1
Urutan = "KSM" +
Right("00" & Hitung, 2)
End If
Nomorksm = Urutan
End With
End Sub
Private Sub
Nomorksm_Change()
Call BukaDB
RSKonsumen.Open
"Select * from konsumen where nomorksm='" & Nomorksm &
"'", Conn
RSKonsumen.Requery
If Not
RSKonsumen.EOF Then
Namaksm = RSKonsumen!Namaksm
Alamatksm = RSKonsumen!Alamatksm
Teleponksm = RSKonsumen!Teleponksm
End If
End Sub
Private Sub
teleponksm_KeyPress(Keyascii As Integer)
If Keyascii = 13
Then
Call BukaDB
RSKonsumen.Open "Select * from
konsumen where teleponksm='" & Teleponksm & "'", Conn
RSKonsumen.Requery
If Not RSKonsumen.EOF Then
Nomorksm = RSKonsumen!Nomorksm
Namaksm = RSKonsumen!Namaksm
Alamatksm = RSKonsumen!Alamatksm
Teleponksm = RSKonsumen!Teleponksm
List1.SetFocus
Else
Namaksm.SetFocus
End If
End If
If Not (Keyascii
>= Asc("0") And Keyascii <= Asc("9") Or Keyascii = vbKeyBack)
Then Keyascii = 0
End Sub
Private Sub
Namaksm_KeyPress(Keyascii As Integer)
Keyascii =
Asc(UCase(Chr(Keyascii)))
If Keyascii = 13
Then
Call BukaDB
RSKonsumen.Open "Select * from
konsumen where namaksm='" & Namaksm & "'", Conn
RSKonsumen.Requery
If Not RSKonsumen.EOF Then
Nomorksm = RSKonsumen!Nomorksm
Alamatksm = RSKonsumen!Alamatksm
Teleponksm = RSKonsumen!Teleponksm
End If
Alamatksm.SetFocus
End If
End Sub
Private Sub
alamatksm_KeyPress(Keyascii As Integer)
Keyascii =
Asc(UCase(Chr(Keyascii)))
If Keyascii = 13
Then
Call BukaDB
RSKonsumen.Open "Select * from
konsumen where alamatksm='" & Alamatksm & "'", Conn
RSKonsumen.Requery
If Not RSKonsumen.EOF Then
Nomorksm = RSKonsumen!Nomorksm
Namaksm = RSKonsumen!Namaksm
Teleponksm = RSKonsumen!Teleponksm
End If
DataGrid1.SetFocus
End If
End Sub
Private Sub
Combo1_Keypress(Keyascii As Integer)
Keyascii =
Asc(UCase(Chr(Keyascii)))
If Keyascii = 13
Then
If Combo1 = "" Then
Call AutoKsm
MsgBox "silakan isi data konsumen
baru"
Kosongksm
Teleponksm.SetFocus
Exit Sub
Else
DataGrid1.SetFocus
End If
End If
If Keyascii = 27
Then
Combo1 = ""
Call AutoKsm
MsgBox "silakan isi data konsumen
baru"
Kosongksm
Teleponksm.SetFocus
Exit Sub
End If
End Sub
Private Sub
Combo1_Click()
Call BukaDB
RSKonsumen.Open "Select * from
Konsumen where Nomorksm='" & Combo1 & "'", Conn
If Not RSKonsumen.EOF Then
Nomorksm = RSKonsumen!Nomorksm
End If
Conn.Close
End Sub
Function
Tabel_Kosong()
DT.Recordset.MoveFirst
Do While Not DT.Recordset.EOF
DT.Recordset.Delete
DT.Recordset.MoveNext
Loop
For i = 1 To 1
DT.Recordset.AddNew
DT.Recordset!Nomor = i
DT.Recordset.Update
Next i
DataGrid1.Col = 1
End Function
Function
Tambah_Baris()
For i = DT.Recordset.RecordCount To
DT.Recordset.RecordCount
DT.Recordset.AddNew
DT.Recordset!Nomor = i + 1
DT.Recordset.Update
Next i
End Function
Private Sub
DataGrid1_KeyPress(Keyascii As Integer)
Keyascii =
Asc(UCase(Chr(Keyascii)))
End Sub
Private Sub
DataGrid1_AfterColEdit(ByVal ColIndex As Integer)
If DataGrid1.Col = 1 Then
Call BukaDB
RSBarang.Open "Select * from
Barang where Kodebrg='" & DT.Recordset!Kode & "'", Conn
If RSBarang.EOF Then
Pesan = MsgBox("Kode Barang
Tidak Terdaftar")
List1.SetFocus
Exit Sub
End If
DT.Recordset!Kode = RSBarang!KodeBrg
DT.Recordset!Nama = RSBarang!NamaBrg
DT.Recordset!Harga = RSBarang!HargaJual
DataGrid1.Col = 4
Exit Sub
End If
If DataGrid1.Col = 4 Then
DT.Recordset!Jumlah = DT.Recordset!Jumlah
DT.Recordset!Total = DT.Recordset!Harga
* DT.Recordset!Jumlah
DT.Recordset.Update
Call Tambah_Baris
DT.Recordset.MoveNext
DataGrid1.Col = 1
DT.Recordset.MoveLast
DataGrid1.Refresh
Total = TotalHarga
JmlItem = TotalItem
End If
End Sub
Function
TotalHarga()
Set TTlHarga = New ADODB.Recordset
TTlHarga.Open "select sum(Total) as
JumTotal from Transaksi", Conn
TotalHarga = TTlHarga!JumTotal
End Function
Function
TotalItem()
Set TTlItem = New ADODB.Recordset
TTlItem.Open "select sum(Jumlah) as
JumItem from Transaksi", Conn
TotalItem = TTlItem!Jumitem
End Function
Private Sub
Bersihkan()
JmlItem = ""
Total = ""
DP = ""
Sisa = ""
Stok = ""
End Sub
Sub Kosongksm()
Namaksm =
""
Alamatksm =
""
Teleponksm =
""
End Sub
Private Sub
DP_KeyPress(Keyascii As Integer)
If Keyascii = 13 Then
If DP = "" Then
DP = 0
Sisa = Total
ElseIf DP = Total Then
Sisa = 0
ElseIf DP > Val(Total) Then
MsgBox "Kembali : " &
DP - Total & ""
Sisa = 0
ElseIf DP < Val(Total) Then
Sisa = Total - DP
End If
CmdSimpan.Enabled = True
CmdSimpan.SetFocus
End If
If Not (Keyascii >= Asc("0")
And Keyascii <= Asc("9") Or Keyascii = vbKeyBack) Then Keyascii =
0
End Sub
Private Sub
CmdSimpan_Keypress(Keyascii As Integer)
If Keyascii = 27 Then
CmdSimpan.Enabled = False
DP = ""
DP.SetFocus
End If
End Sub
Sub SimpanKsm()
Call BukaDB
RSKonsumen.Open
"select * from konsumen where nomorksm='" & Nomorksm &
"'", Conn
RSKonsumen.Requery
If RSKonsumen.EOF
Then
Dim SQLTambahksm As String
SQLTambahksm = "Insert Into
Konsumen(NomorKsm,namaksm,AlamatKsm,Teleponksm)" & _
"values('" & Nomorksm &
"','" & Namaksm & "','" & Alamatksm &
"','" & Teleponksm & "')"
Conn.Execute (SQLTambahksm)
End If
End Sub
Private Sub CmdSimpan_Click()
If Namaksm = "" Or Alamatksm =
"" Or Teleponksm = "" Then
MsgBox "data pemesan belum
lengkap"
Exit Sub
End If
Dim Input1 As String
Input1 = "Insert Into
Pesanan(NomorPsn,TanggalPsn,JamPsn,Totalitem,TotalHrg,DP,Sisa,Nomorksm,Kodeksr,TglMintakrm,Ket)"
& _
"values('" & NomorPsn &
"','" & Tanggal & "','" & Jam &
"','" & JmlItem & "','" & Total &
"','" & DP & "','" & Sisa & "','"
& Nomorksm & "','" & Kodeksr & "','" &
TglMintakrm & "','Belum Dikirim')"
Conn.Execute (Input1)
RSTransaksi.Open "select * from
Transaksi", Conn
RSTransaksi.MoveFirst
Do While Not RSTransaksi.EOF
If RSTransaksi!Kode <>
vbNullString Then
Dim SQLTambahDetail As String
SQLTambahDetail = "Insert Into
DetailPsn(Nomorpsn,KodeBrg,Jumlahpsn) " & _
"values ('" &
NomorPsn & "','" & RSTransaksi!Kode & "','"
& RSTransaksi!Jumlah & "')"
Conn.Execute (SQLTambahDetail)
End If
RSTransaksi.MoveNext
Loop
Call SimpanKsm
DT.Recordset.MoveFirst
Do While Not DT.Recordset.EOF
If DT.Recordset!Kode <>
vbNullString Then
Call BukaDB
RSBarang.Open "Select * from
Barang where Kodebrg='" & DT.Recordset!Kode & "'", Conn
If Not RSBarang.EOF Then
Dim Kurangi As String
Kurangi = "update barang
set jumlahbrg='" & RSBarang!JumlahBrg - DT.Recordset!Jumlah &
"' where kodebrg='" & DT.Recordset!Kode & "'"
Conn.Execute (Kurangi)
End If
End If
DT.Recordset.MoveNext
Loop
Bersihkan
Kosongksm
Form_Activate
Call Cetak
End Sub
Private Sub
CmdBatal_Click()
Bersihkan
Form_Activate
End Sub
Private Sub
CmdTutup_Click()
Unload Me
End Sub
Function Cetak()
Call BukaDB
RSPesanan.Open
"select * from Pesanan Where NomorPsn In(Select Max(NomorPsn)From
Pesanan)Order By NomorPsn Desc", Conn
Tampilkan.Show
Dim JmlHarga,
JmlJual, JmlHasil As Double
Dim MGrs As String
Tampilkan.Font =
"Courier New"
Tampilkan.Print
Tampilkan.Print
RSKasir.Open
"select * From Kasir where KodeKsr= '" & RSPesanan!Kodeksr &
"'", Conn
RSKonsumen.Open
"select * From Konsumen where Nomorksm= '" & RSPesanan!Nomorksm
& "'", Conn
Tampilkan.Print
Tab(5); "Nomor : "; RSPesanan!NomorPsn
Tampilkan.Print
Tab(5); "Tanggal : "; Format(RSPesanan!TanggalPsn,
"DD-MMMM-YYYY")
Tampilkan.Print
Tab(5); "Jam : "; Format(RSPesanan!Jampsn,
"HH:MM:SS")
Tampilkan.Print
Tab(5); "Kasir : "; RSKasir!Namaksr
MGrs = String$(33,
"-")
Tampilkan.Print
Tab(5); "Pemesan : "; RSKonsumen!Namaksm
Tampilkan.Print
Tab(5); "Alamat : "; RSKonsumen!Alamatksm
Tampilkan.Print
Tab(5); "Telepon : "; RSKonsumen!Teleponksm
Tampilkan.Print
Tab(5); MGrs
RSDetailPsn.Open
"select * from detailpsn Where NomorPsn='" & RSPesanan!NomorPsn
& "'", Conn
RSDetailPsn.MoveFirst
no = 0
Do While Not
RSDetailPsn.EOF
no = no + 1
Set RSBarang = New ADODB.Recordset
RSBarang.Open "select * From Barang
where Kodebrg= '" & RSDetailPsn!KodeBrg & "'", Conn
RSBarang.Requery
Harga = RSBarang!HargaJual
Jumlah = RSDetailPsn!JumlahPsn
Hasil = Harga * Jumlah
Tampilkan.Print Tab(5); no; Space(2);
RSBarang!NamaBrg
Tampilkan.Print Tab(10); RKanan(Jumlah,
"##"); Space(1); "X";
Tampilkan.Print Tab(15); Format(Harga,
"###,###,###");
Tampilkan.Print Tab(25); RKanan(Hasil,
"###,###,###")
RSDetailPsn.MoveNext
Loop
Tampilkan.Print
Tab(5); MGrs
Tampilkan.Print
Tab(5); "Total :";
Tampilkan.Print
Tab(25); RKanan(RSPesanan!totalhrg, "###,###,###");
Tampilkan.Print
Tab(5); "Uang Muka :";
Tampilkan.Print
Tab(25); RKanan(RSPesanan!DP, "###,###,###");
Tampilkan.Print
Tab(5); MGrs
Tampilkan.Print
Tab(5); "Sisa :";
Tampilkan.Print
Tab(25); RKanan(RSPesanan!Sisa, "###,###,###");
Tampilkan.Print
Tab(5); MGrs
Tampilkan.Print
Tampilkan.Print
Tampilkan.Print
Conn.Close
End Function
Private Function
RKanan(NData, CFormat) As String
RKanan = Format(NData, CFormat)
RKanan = Space(Len(CFormat) - Len(RKanan))
+ RKanan
End Function
Private Sub
List1_keyPress(Keyascii As Integer)
If Keyascii = 13 Then
If DataGrid1.SelText <>
Left(List1, 6) Then
DataGrid1.SelText = Left(List1, 6)
DT.Recordset.Update
Call BukaDB
RSBarang.Open "Select * from Barang
where KodeBrg='" & Left(List1, 6) & "'", Conn
RSBarang.Requery
If Not RSBarang.EOF Then
DT.Recordset!Kode =
RSBarang!KodeBrg
DT.Recordset!Nama =
RSBarang!NamaBrg
DT.Recordset!Harga =
RSBarang!HargaJual
Stok = RSBarang!JumlahBrg
DT.Recordset.Update
DataGrid1.SetFocus
DataGrid1.Col = 4
End If
End If
End If
End Sub
Logika dasar dalam program pengiriman barang ini adalah
membaca kembali data yang telah disimpan dalam tabel pesanan dan detailpsn,
kemudian kirimkan oleh kurir dan isilah berapa sisa pembayarannya. Setelah itu
berilah keterangan di tabel pesanan bahwa data dengan nomor kirim tersebut
telah dikirimkan.
Coding :
Private Sub
Form_Activate()
DT.ConnectionString
= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path
& "\ADOPesanan.mdb"
DT.RecordSource =
"Transaksi1"
Set DataGrid1.DataSource
= DT
DataGrid1.Refresh
If Kodeksr =
"" Then
MsgBox "Kasir tidak terdeteksi"
Login.Show
Exit Sub
End If
Call Autokrm
Call Tabel_Kosong
Tanggal = Date
CmdSimpan.Enabled
= False
Combo1.SetFocus
Call BukaDB
RSPesanan.Open
"Select * from Pesanan where ket='BELUM DIKIRIM'", Conn
Combo1.Clear
Do Until
RSPesanan.EOF
Combo1.AddItem RSPesanan!NomorPsn
RSPesanan.MoveNext
Loop
RSKurir.Open
"Select * from kurir ", Conn
Combo2.Clear
Do Until
RSKurir.EOF
RSKurir.MoveNext
Loop
Conn.Close
End Sub
Private Sub
Form_Load()
Kodeksr = Login.TxtKodeKsr
Namaksr = Login.TxtNamaKsr
DataGrid1.Col = 1
CmdSimpan.Enabled = False
End Sub
Private Sub
Autokrm()
Call BukaDB
RSPengiriman.Open
("select * from pengiriman Where Nomorkrm In(Select Max(Nomorkrm)From
Pengiriman)Order By Nomorkrm Desc"), Conn
RSPengiriman.Requery
Dim Urutan As String * 10
Dim Hitung As Long
With RSPengiriman
If .EOF Then
Urutan = "K" +
Right(Date, 2) + Mid(Date, 4, 2) + Left(Date, 2) + "001"
Nomorkrm = Urutan
Else
If Mid(!Nomorkrm, 2, 6) <>
Right(Date, 2) + Mid(Date, 4, 2) + Left(Date, 2) Then
Urutan = "K" +
Right(Date, 2) + Mid(Date, 4, 2) + Left(Date, 2) + "001"
Else
Hitung = Mid(!Nomorkrm, 9) + 1
Urutan = "K" +
(Right(Date, 2) + Mid(Date, 4, 2) + Left(Date, 2)) + Right("000"
& Hitung, 3)
End If
End If
Nomorkrm = Urutan
End With
End Sub
Function
Tabel_Kosong()
If
DT.Recordset.RecordCount > 0 Then
DT.Recordset.MoveFirst
Do While Not DT.Recordset.EOF
DT.Recordset.Delete
DT.Recordset.MoveNext
Loop
End If
End Function
Private Sub Combo1_Keypress(Keyascii
As Integer)
If Keyascii = 27
Then Unload Me
If Keyascii = 13
Then
Call BukaDB
RSPesanan.Open "Select * from Pesanan
where nomorpsn='" & Combo1 & "'", Conn
RSPesanan.Requery
If RSPesanan.EOF Then
MsgBox "Nomor pesanan tidak
terdaftar"
Combo1.SetFocus
Exit Sub
Else
Combo2.SetFocus
End If
End If
End Sub
Private Sub
Combo1_Click()
Call BukaDB
RSPesanan.Open
"Select * from Pesanan where nomorpsn='" & Combo1 &
"'", Conn
RSPesanan.Requery
If Not
RSPesanan.EOF Then
TglMintakrm = CDate(RSPesanan!TglMintakrm)
Total = Format(RSPesanan!TotalHrg,
"###,###,###")
Sisa = Format(RSPesanan!Sisa,
"###,###,###")
DP = Format(RSPesanan!DP,
"###,###,###")
If Total = Sisa Then
DP = 0
Else
DP = Format(RSPesanan!DP,
"###,###,###")
End If
If Val(DP) >= Val(Total) Then
Sisa = 0
Kembali = 0
Else
Sisa = Format(RSPesanan!Sisa,
"###,###,###")
End If
JmlItem = Val(RSPesanan!TotalItem)
NomorKsm = RSPesanan!NomorKsm
Dim RS As New ADODB.Recordset
RS.Open "select
barang.kodebrg,barang.namabrg,barang.hargajual,jumlahpsn,hargajual*jumlahpsn as
total from barang,detailpsn where
left(nomorpsn,10)='" & Combo1 & "' and
barang.kodebrg=detailpsn.kodebrg", Conn
Call Tabel_Kosong
RS.MoveFirst
Nomor = 0
Do While Not RS.EOF
Nomor = Nomor + 1
DT.Recordset.AddNew
DT.Recordset!Nomor = Nomor
DT.Recordset!Kode = RS!KodeBrg
DT.Recordset!Nama = RS!NamaBrg
DT.Recordset!Harga = RS!HargaJual
DT.Recordset!Jumlah = RS!JumlahPsn
DT.Recordset!Total = RS!Total
DT.Recordset.Update
RS.MoveNext
Loop
Else
MsgBox "nomor pesanan tidak terdaftar"
Combo1.SetFocus
Exit Sub
End If
End Sub
Private Sub
Nomorksm_Change()
Call BukaDB
RSKonsumen.Open
"Select * from konsumen where nomorksm='" & NomorKsm &
"'", Conn
RSKonsumen.Requery
If Not
RSKonsumen.EOF Then
NamaKsm = RSKonsumen!NamaKsm
AlamatKsm = RSKonsumen!AlamatKsm
TeleponKsm = RSKonsumen!TeleponKsm
End If
End Sub
Private Sub
Combo2_click()
Call BukaDB
RSKurir.Open
"select * from kurir where kodekrr='" & Combo2 &
"'", Conn
If Not RSKurir.EOF
Then
NamaKrr = RSKurir!NamaKrr
Else
MsgBox "kode kurir tidak
terdaftar"
Combo2.SetFocus
End If
Conn.Close
End Sub
Private Sub
Combo2_KeyPress(Keyascii As Integer)
Keyascii =
Asc(UCase(Chr(Keyascii)))
If Keyascii = 13
Then
Call BukaDB
RSKurir.Open "select * from kurir
where kodekrr='" & Combo2 & "'", Conn
If Not RSKurir.EOF Then
NamaKrr = RSKurir!NamaKrr
Else
MsgBox "kode kurir tidak
terdaftar"
Combo2.SetFocus
Exit Sub
End If
If Val(DP) >= Val(Total) Then
Dibayar.Enabled = False
Dibayar = 0
CmdSimpan.Enabled = True
CmdSimpan.SetFocus
Else
Dibayar.Enabled = True
Dibayar.SetFocus
End If
End If
End Sub
Private Sub
Dibayar_KeyPress(Keyascii As Integer)
If Keyascii = 13 Then
If Dibayar = "" Or
Val(Dibayar) < (Sisa) Then
MsgBox "Jumlah Pembayaran
Kurang"
Dibayar.SetFocus
Else
Dibayar = Format(Dibayar,
"###,###,###")
If Dibayar = Sisa Then
Kembali = Dibayar - Sisa
Else
Kembali = Format(Dibayar -
Sisa, "###,###,###")
End If
CmdSimpan.Enabled = True
CmdSimpan.SetFocus
End If
End If
If Not (Keyascii >= Asc("0")
And Keyascii <= Asc("9") Or Keyascii = vbKeyBack) Then Keyascii =
0
End Sub
Private Sub
Timer1_Timer()
Jam = Time$
End Sub
Private Sub
Bersihkan()
Combo1 = ""
JmlItem = ""
Total = ""
DP = ""
Sisa = ""
TglMintakrm = ""
Combo2 = ""
Dibayar = ""
NomorKsm = ""
NamaKsm = ""
AlamatKsm = ""
TeleponKsm = ""
Kembali = ""
NamaKrr = ""
End Sub
Private Sub
CmdSimpan_Click()
If Combo1 = "" Or Combo2 =
"" Then
MsgBox "data pengiriman belum
lengkap"
Exit Sub
Else
If Sisa <> 0 And Dibayar =
"" Then
MsgBox "Pembayaran belum
lunas"
Dibayar.SetFocus
Exit Sub
End If
End If
'simpan ke tabel pengiriman
Dim SimpanPesanan As String
SimpanPesanan = "Insert Into
Pengiriman(Nomorkrm,Nomorpsn,Tanggalkrm,Total,DP,Sisa,Dibayar,Kembali,Nomorksm,Kodeksr,Kodekrr)"
& _
"values('" & Nomorkrm &
"','" & Combo1 & "','" & Tanggal &
"','" & Total & "','" & DP &
"','" & Sisa & "','" & Dibayar &
"','" & Kembali & "','" & NomorKsm &
"','" & Kodeksr & "','" & Combo2 &
"')"
Conn.Execute (SimpanPesanan)
'ubah ket di tabel pesanan
Dim SimpanPesanan1 As String
SimpanPesanan1 = "Update Pesanan set
Ket='TELAH DIKIRIM' where nomorpsn='" & Combo1 & "'"
Conn.Execute (SimpanPesanan1)
'simpan ke tabel detailkrm
DT.Recordset.MoveFirst
Do While Not DT.Recordset.EOF
Dim SimpanDetailPsn As String
SimpanDetailPsn = "Insert Into
Detailkrm(Nomorkrm,KodeBrg,Jumlahkrm) " & _
"values ('" & Nomorkrm
& "','" & DT.Recordset!Kode & "','" &
DT.Recordset!Jumlah & "')"
Conn.Execute (SimpanDetailPsn)
DT.Recordset.MoveNext
Loop
Bersihkan
Form_Activate
End Sub
Private Sub
CmdBatal_Click()
Conn.Close
Bersihkan
Form_Activate
End Sub
Private Sub
CmdTutup_Click()
Unload Me
End Sub
Catatan
:
Dalam CD pendukung buku kami telah membuat program ini lengkap
dengan laporan yang sifatnya parsial dan laporan akumulasi baik pemesanan maupun
pengiriman barang. Selain itu telah dibuatkan pula program rincian pemesanan
dan pengiriman barang. Silakan dilihat programnya satu persatu.
EmoticonEmoticon