Latihannya , Mau ?
One2Many -
One2Many -
Untuk membuat Form Penjualan kamu harus menambahkan 5 Objek Data
yang akan mengakses Tabel Barang, Kasir, Jual, Detail, dan Sementara
Atur Properties Database Name dan Record Source pada data sesuai dengan tabel.
Jangan Lupa Buat 5 Buah Tabel, yang masing- masing fieldnya sbb :
1. Barang ( kdbar, nmbar, harga, stok )
2. User ( inisial, Nmuser, Password, Level )
3. Jual ( Tgl, Notrans, Total, Bayar )
4. Detail ( Notrans, kdbar, nmbar, harga, jml, subtotal )
5. Sementara ( Notrans, kdbar, nmbar, harga, jml, subtotal )
ingat, khusus untuk tabel detail & sementara ga usah dibuat Index ......
Fungsi Tabel Sementara hanya untuk menampilkan Keranjang Belanja
Sementara di Form Penjualan yang pada akhirnya akan
dipindahkan ke tabel detail .....
dibawah ini kode lengkapnya ....
Sub bersih_barang()
cbkdbar.Text = "": tnmbar.Text = "": tharga.Text = "": tjml.Text = "": tsubtotal.Text = ""
End Sub
'Prosedur diatas digunakan untuk membersihkan Teks pada Item barang
Sub bersih_semua()
tnotrans.Text = "": cbkdkas.Text = "": tnmkas.Text = "": ttotal.Text = "": tbayar.Text = "": tkembali.Text = "": bersih_barang
End Sub
'Klo yang ini buat mengosongkan semua teks di Form
Sub simpan_sementara()
datasem.Recordset!notrans = tnotrans.Text
datasem.Recordset!kdbar = cbkdbar.Text
datasem.Recordset!nmbar = tnmbar.Text
datasem.Recordset!harga = Val(tharga.Text)
datasem.Recordset!jml = Val(tjml.Text)
datasem.Recordset!subtotal = Val(tsubtotal.Text)
End Sub
'Perintah untuk menyimpan ke table sementara dan ditampilkan di dbgrid di Form
Sub semKEdetail()
datadetail.Recordset!notrans = datasem.Recordset!notrans
datadetail.Recordset!kdbar = datasem.Recordset!kdbar
datadetail.Recordset!nmbar = datasem.Recordset!nmbar
datadetail.Recordset!harga = datasem.Recordset!harga
datadetail.Recordset!jml = datasem.Recordset!jml
datadetail.Recordset!subtotal = datasem.Recordset!subtotal
End Sub
'Transfer data dari tabel sementara ke tabel detail
Sub simpan_semua()
datajual.Recordset!notrans = tnotrans.Text
datajual.Recordset!tgl = ttgl.Value
datajual.Recordset!kdkasir = cbkdkas.Text
datajual.Recordset!total = Val(ttotal.Text)
datajual.Recordset!bayar = Val(tbayar.Text)
End Sub
'Menyimpan Ke Tabel Jual
Sub nomor()
Dim no As String
If datajual.Recordset.RecordCount > 0 Then 'Jika Jumlah Record lebih dari 0
datajual.Recordset.MoveLast
no = Val(Right(datajual.Recordset!notrans, 3)) + 1 'Mengambil 3 karakter dari kanan
If no < 10 Then
tnotrans.Text = "FJ00" & no
ElseIf no < 100 Then
tnotrans.Text = "FJ0" & no
ElseIf no < 1000 Then
tnotrans.Text = "FJ" & no
End If
Else
tnotrans.Text = "FJ001"
End If
End Sub
'Penomoran Otomatis
'Pencarian NoTrans Terakhir pada tabel jual ditambah 1 untuk notrans baru
Sub isi_combo()
If databarang.Recordset.RecordCount > 0 Then
databarang.Recordset.MoveFirst
Do While databarang.Recordset.EOF = False 'Lakukan Perulangan selama data tidak kosong
cbkdbar.AddItem databarang.Recordset!kdbar
databarang.Recordset.MoveNext
Loop
End If
If datakasir.Recordset.RecordCount > 0 Then
datakasir.Recordset.MoveFirst
Do While datakasir.Recordset.EOF = False
cbkdkas.AddItem datakasir.Recordset!inisial
datakasir.Recordset.MoveNext
Loop
End If
End Sub
'Mengisi Kombo Kode Barang dan Kode Kasir yang sudah ada di tabel
Sub totalkan()
Dim ttl As Currency
If datasem.Recordset.RecordCount > 0 Then
datasem.Recordset.MoveFirst
Do While datasem.Recordset.EOF = False
ttl = ttl + datasem.Recordset!subtotal 'Lalukan Penjumlahan dengan Total Sebelumnya
datasem.Recordset.MoveNext
Loop
End If
ttotal.Text = ttl
End Sub
'Menghitung Total Penjualan yang ada di DBgrid atau tabel sementara
Private Sub cbkdbar_Click()
databarang.Recordset.FindFirst "kdbar = '" & cbkdbar.Text & "'"
'Pencarian data berdasarkan kode bar
If databarang.Recordset.NoMatch = False Then 'Jika data yang dicari ktemu
tnmbar.Text = databarang.Recordset!nmbar
tharga.Text = databarang.Recordset!harga
tjml.SetFocus
End If
End Sub
'Pencarian Nama Barang Dan Harga sesuai dengan Kode Barang yang di klik
Private Sub cbkdkas_Click()
datakasir.Recordset.FindFirst "inisial = '" & cbkdkas.Text & "'"
If datakasir.Recordset.NoMatch = False Then
tnmkas.Text = datakasir.Recordset!nmuser
End If
End Sub
'Pencarian nama kasir sesuai dengan kode kasir yang di klik
Private Sub Form_Activate()
isi_combo
nomor
End Sub
'Nomor terisi otomatis & combo terisi pada saat form aktif
Private Sub tbayar_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
'Jika Texbox bayar di enter
Case 13: tkembali.Text = Val(tbayar.Text) - Val(ttotal.Text)
'Penyimpanan Data Penjualan
datajual.Recordset.AddNew
simpan_semua
datajual.Recordset.Update
' Proses penyimpanan ke tabel jual
'Transfer Tabel Sementara ke tabel detail
datasem.Recordset.MoveFirst
Do While datasem.Recordset.EOF = False 'Perulangan Jika data tidak kosong
datadetail.Recordset.AddNew
semKEdetail
datadetail.Recordset.Update
'Penyimpanan Ke tabel detail
'Hapus Data Sementara
datasem.Recordset.Delete
'Hapus isi tabel sementara
datasem.Recordset.MoveNext
Loop
bersih_semua
nomor
MsgBox " Terima Kasih Atas Pembeliannya"
End Select
End Sub
'Ketika Pembayaran diisi
'Data Tersimpan ke Tabel Penjualan
'Terjadi Transfer isi dati tabel detail ke tabel sementara
'Semua isi tabel sementara dihapus
Private Sub tjml_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13: tsubtotal.Text = Val(tharga.Text) * Val(tjml.Text)
datasem.Recordset.AddNew
simpan_sementara
datasem.Recordset.Update
'Penyimpanan ke tabel sementara
bersih_barang
totalkan
tbayar.SetFocus
End Select
End Sub
'Terjadi Penyimpanan ke table sementara
'Barang yang ditambahkan akan tampil di dbgrid
Ilham Maulana | On: 16 Mei 2010 pukul 17.36
One to many ?
oke siap- siap ??
langsung ke TKP
Ilham Maulana | On: 19 Mei 2010 pukul 23.12
gimana yach one to many buat anak 4 c
Anonymous | On: 21 Mei 2010 pukul 10.41
koq rasanya lebih ribet one to many yang ini dari pada yg kdua hehehe