Datanya sudah benar.
Saldo harian sampai tanggal periode awal - 1 adalah masuk:5 keluar:1 total:1
Selanjutnya adalah data transaksi harian.
Yang anda inginkan lina, adalah running balance report.
Oke, saya juga perbaiki report yang sebelumnya, karena displaynya juga tidak benar, tanggalnya ter-sort descending.
Saya jarang memberikan mdb/accdb file. Tetapi saya lebih mengharap dari yang punya permasalahan mencoba membuat sendiri dari petunjuk2 yang kami berikan. Dengan demikian pemahaman harusnya lebih masuk, ketimbang terima barang jadi. Jadi coba buat dulu sebisanya, kalau mentok, mungkin baru akan kami kirimkan mdb-nya.
Berikut adalah query2 yang dibutuhkan:
qs_CurrPeriod_Trx:
SELECT stock.[id brg], stock.Category, stock.Merk, stock.Type, stock.Tanggal, stock.Masuk, stock.Keluar, [Masuk]-[Keluar] AS Saldo
FROM stock
WHERE (((stock.Tanggal) Between [Forms]![Laporan]![Text1] And [Forms]![Laporan]![Text3]))
ORDER BY stock.Tanggal;
qs_CurrPeriod_BegBlc:
SELECT stock.[id brg], stock.Category, stock.Merk, stock.Type, DateAdd("d",-1,[Forms]![Laporan]![Text1]) AS _Tanggal, Sum(stock.Masuk) AS _Masuk, Sum(stock.Keluar) AS _Keluar, Sum([Masuk]-[Keluar]) AS _Saldo
FROM stock
GROUP BY stock.[id brg], stock.Category, stock.Merk, stock.Type, DateAdd("d",-1,[Forms]![Laporan]![Text1]), stock.Tanggal
HAVING (((stock.Tanggal)<[Forms]![Laporan]![Text1]))
ORDER BY stock.Tanggal;
Lalu kedua query ini diunionkan menjadi:
qu_CurrPeriod:
select * from qs_CurrPeriod_Trx;
UNION ALL select * from qs_CurrPeriod_BegBlc;
Untuk bisa sort by tanggal, kita select kembali query union tersebut dan menambahkan dengan sort by tanggal:
qs_CurrPeriod:
SELECT qu_CurrPeriod.[id brg], qu_CurrPeriod.Category, qu_CurrPeriod.Merk, qu_CurrPeriod.Type, qu_CurrPeriod.Tanggal, qu_CurrPeriod.Masuk, qu_CurrPeriod.Keluar, qu_CurrPeriod.Saldo
FROM qu_CurrPeriod
ORDER BY qu_CurrPeriod.[id brg], qu_CurrPeriod.Tanggal;
Desain reportnya seperti berikut:
dengan control source paling bawah berturut-turut adalah:
="Total " & [id brg] & ":"
=Sum([Masuk])
=Sum([Keluar])
=Sum([Masuk]-[Keluar])
Note:
Ada keanehan bahwa report access tidak mengikuti sort yang ada di query (clausa order by), sehingga di report harus ditambahkan lagi sort by tanggal.
Nah perhatikan ada unbound text untuk saldo. Inilah yang harus kita 'program' sedikit untuk mensimulasikan running balance setiap id barang. Modul yang dipergunakan adalah sebagai berikut:
Option Compare Database Option Explicit Dim totSaldo As Long Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer) If FormatCount = 1 Then totSaldo = totSaldo + [_masuk] - [_keluar] End If Me.txtTotSaldo = totSaldo End Sub Private Sub GroupHeader0_Format(Cancel As Integer, FormatCount As Integer) totSaldo = 0 End Sub
isi txtTotSaldo (unbound text saldo) di ambil dari akumulasi totSaldo yang selalu di jumlahkan melalui rumus totsaldo + masuk - keluar, di setiap kali event format detail dijalankan.
Kadang-kadang saat berganti halaman, format event di jalankan dua kali, yaitu sekali di batalkan karena sudah terlalu ke bawah halaman sebelumnya, dan sekali lagi terbit pada saat mulai di format di lembar berikutnya. Kita harus pagar bahwa perhitungan hanya sekali dilakukan dengan mengecek isi formatcount.
Nah, sekarang coba simulasikan.
Selamat bekerja.
aksan kurdin
On 10/30/2010 3:26 PM, sel lina wrote:
namun untuk idbrg = 1 saldonya salah paksaldo = awal + masuk - keluar.yang artinya untuk tgl 1 = awal = 4tgl 2 saldo = 104tgl 3 saldo = 114dstmemang secara total hasil sama, tetapi nilai saldo per tgl tsb tidak bisa di pakai.
From: Aksan Kurdin <aksan.kurdin@gmail.com>
To: belajar-access@yahoogroups.com
Sent: Sat, October 30, 2010 3:14:49 PM
Subject: Re: [belajar-access] stok report
sebelumnya data memang ada yang saya ubah tanggalnya, seperti 10/2/2010, saya jadikan 2/10/2010 (format mm/dd/yyyy) karena system komputer saya english.
anda perhatikan query tersebut :
urutannya adalah berdasarkan id brg, lalu urut berdasarkan tanggal transaksi.
untuk saldo, saya ambilkan selalu tanggal awal di kurang 1, berhubung parameter tanggal yang diinput saya sesuaikan dengan data yang ada, maka periode adalah dari tanggal 10/2/2010 -10/3/2010. karenanya, akumulasi saldo adalah periode awal di kurang 1 menjadi tanggal 10/1/2010.
query ini bisa diolah lagi direport untuk mendapatkan tampilan yang lebih bisa di baca, beserta saldo akhir setiap id brg seperti berikut:
aksan kurdin
On 10/30/2010 2:55 PM, sel lina wrote:kok hasil union querynya ga sesuai ??berikut saya lampirkan hasil nya.harusnya saldo mengakumulasi dari saldo sebelumnya.
From: Aksan Kurdin <aksan.kurdin@gmail.com>
To: belajar-access@yahoogroups.com
Sent: Sat, October 30, 2010 2:17:49 PM
Subject: Re: [belajar-access] stok report
qs_CurrPeriod_BegBlc:
SELECT stock.[id brg], stock.Category, stock.Merk, stock.Type, DateAdd("d",-1,[Forms]![Laporan]![Text1]) AS _Tanggal, Sum(stock.Masuk) AS _Masuk, Sum(stock.Keluar) AS _Keluar, Sum([Masuk]-[Keluar]) AS _Saldo
FROM stock
GROUP BY stock.[id brg], stock.Category, stock.Merk, stock.Type, DateAdd("d",-1,[Forms]![Laporan]![Text1]), stock.Tanggal
HAVING (((stock.Tanggal)<[Forms]![Laporan]![Text1]))
ORDER BY stock.Tanggal;
qs_CurrPeriod_Trx:
SELECT stock.[id brg], stock.Category, stock.Merk, stock.Type, stock.Tanggal, stock.Masuk, stock.Keluar, [Masuk]-[Keluar] AS Saldo
FROM stock
WHERE (((stock.Tanggal) Between [Forms]![Laporan]![Text1] And [Forms]![Laporan]![Text3]))
ORDER BY stock.Tanggal;
anda sudah bisa union dua query ini:
select * from qs_CurrPeriod_BegBlc
union all select * from qs_CurrPeriod_Trx
order by [id brg], [_tanggal]
aksan kurdin
On 10/30/2010 1:48 PM, sel lina wrote:stock = tablestock Query = query summary dr stock yg sdh sy sum dan group
*terlampir file mdb nya pak
From: Aksan Kurdin <aksan.kurdin@gmail.com>
To: belajar-access@yahoogroups.com
Sent: Sat, October 30, 2010 1:32:38 PM
Subject: Re: [belajar-access] stok report
stock itu query atau table ?
coba kirim mdb berisi query/table itu, jika query, maka table2 yang terkait di dalamnya juga kirim kemari.
data-nya di dummy saja, atau potong seperlunya.
aksan kurdin
On 10/30/2010 1:21 PM, sel lina wrote:
From: sel lina <sel_linaus@yahoo.com>dear pak aksan,
To: belajar-access@yahoogroups.com
Sent: Sat, October 30, 2010 11:20:03 AM
Subject: Re: [belajar-access] stok report
saya telah coba syntax bapakselect Masuk-Keluar from stock Query where tanggal < [Forms]![Laporan]![Text1]
UNION ALL select masuk,keluar from stock where stock Query between [Forms]![Laporan]![Text1]] and [Forms]![Laporan]![Text3];
namun hasilnya syntax error (missing operator) 'stock Query between [Forms]![Laporan]![Text1]] and [Forms]![Laporan]![Text3]'ini gimana ya pak ??thx
From: Aksan Kurdin <aksan.kurdin@gmail.com>
To: belajar-access@yahoogroups.com
Sent: Sat, October 30, 2010 6:51:25 AM
Subject: Re: [belajar-access] stok report
Dear sel_linaus@yahoo.com,
Penggunaan DISTINCT pada agregate query (query yang di summary dengan klausa GROUP BY) bisa membawa informasi yang keliru.
Saya belum coba, tetapi dugaan saya, DISTINCT dikerjakan dulu, baru GROUP BY.
Jadi jika di query anda ada duplikasi row, maka DISTINCT akan membuang lainnya, di jadikan satu saja, barulah di GROUP BY untuk summary pada stock.masuk, stock.keluar, dst. Jika dugaan saya benar, maka informasi summary akan menjadi tidak tepat (lebih sedikit).
untuk membuat laporan berupa saldo awal yang berasal dari summary transaksi sampai awal periode, dengan detail transaksi dari periode awal hingga periode akhir, gunakan cara berikut:
select summary from query where tanggal < [periode awal]
union all
select detail from tabel where query between [periode awal] and [ periode akhir]
jadi dari satu query asal (detail transaksi), bisa ditarik dua kali sebagai summary sampai awal periode (saldo awal), dan sebagai transaksi berjalan dari periode awal hingga akhir.
aksan kurdin
On 10/27/2010 3:50 PM, sel lina wrote:dear master access,saya mau tny gmn nambahin saldo awal untuk stok report saya.adapun query yang telah saya buat sbb:SELECT DISTINCT stock.Tanggal, stock.Category, stock.Merk, stock.Type, Sum(stock.Masuk) AS Masuk, Sum(stock.Keluar) AS Keluar, sum(masuk)-sum(keluar)<tanggal + masuk - keluar as saldo
FROM stock
GROUP BY stock.Tanggal, stock.Category, stock.Merk, stock.Type
HAVING (((stock.Tanggal) Between [Forms]![Laporan]![Text1] And [Forms]![Laporan]![Text3]));mohon bantu ya...
No comments:
Post a Comment