Punya Account Blogger?
Posted by Sofyan SOX on Minggu, 16 Mei 2010 in

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
3 Responses to “One To Many ( Database Penjualan )”:

Posting Komentar