Dear sherina, Mungkin ada sedikit tambahan dan kritik dari saya. Kalau saya bilang anda telah melakukan pemborosan terhadap data. karena anda melakukan pembuatan field yang tidak perlu. sebaiknya anda buang saja field. StockAwal, Masuk, Keluar, dan akhir. Dan diganti dengan field qty (kuantitas). sehingga isi dari tabel menjadi seperi ini
tblBarang: 1. idBarang (LongInteger) auto increment, Primary Key 2. NamaBarang (nVarChar) tblStock: 1. idStock (LongInteger) auto increment, Primary Key 2. idBarang (LongInteger) 3. Tanggal (date/time) 4. Qty (Long Integer) Note: Untuk barang masuk field qty adalah positif(+) dan untuk barang keluar negatif(-). Untuk mendapatkan stock awal, Transaksi Pada Hari tertentu atau Stock Akhir anda dapat mengambilnya dengan menggunakan SUM. contoh: Melihat Stock Awal tanggal 1 Januari 2008: "SELECT tblBarang.NamaBarang, Sum(tblStock.qty) AS StockAwal FROM tblBarang INNER JOIN tblStock ON tblBarang.idBarang = tblStock.idBarang WHERE tblStock.Tanggal<#1/1/2008# GROUP BY tblBarang.NamaBarang" Melihat Stock Akhir tanggal 31 Januari 2008: "SELECT tblBarang.NamaBarang, Sum(tblStock.qty) AS StockAkhir FROM tblBarang INNER JOIN tblStock ON tblBarang.idBarang = tblStock.idBarang WHERE tblStock.Tanggal<#1/31/2008# GROUP BY tblBarang.NamaBarang" Melihat Barang Masuk Selama Bulan Januari 2008: SELECT tblBarang.NamaBarang, Sum(tblStock.qty) AS BarangMasuk FROM tblBarang INNER JOIN tblStock ON tblBarang.idBarang = tblStock.idBarang WHERE Month([Tanggal])=1 AND Year([Tanggal])=2008 AND tblStock.qty>0 GROUP BY tblBarang.NamaBarang Melihat Barang Keluar Selama Bulan Januari 2008: SELECT tblBarang.NamaBarang, Sum(tblStock.qty) AS BarangKeluar FROM tblBarang INNER JOIN tblStock ON tblBarang.idBarang = tblStock.idBarang WHERE Month([Tanggal])=1 AND Year([Tanggal])=2008 AND tblStock.qty<0 GROUP BY tblBarang.NamaBarang Ok, sekian tambahan dari saya. saya mohon maaf apabila anda tersinggung dan mohon maaf apabila cara ini cukup membingungkan buat anda tapi setidaknya anda dapat belajar untuk dapat mengoptimalkan database dengan menggunakan Join Tabel. Terima Kasih dan Selamat Mencoba. Salam Aiska Hendra --- In [email protected], Dian Rahmadi <[EMAIL PROTECTED]> wrote: > > Dear Sherina... > > Bisa sih bisa, dalam tabel itu ada field-field : > 1. Tanggal > 2. Nama Barang > 3. StockAwal > 4. Masuk > 5. Keluar > 6. Akhir (maksudnya mungkin stock akhir ya ..?) > Nama Tabel misalnya MUTASI_BARANG > > Gunakan saja filter Tanggal <= TglLaporan, contoh: > "SELECT * FROM MUTASI_BARANG WHERE TANGGAL <=#" & > dtpicker1.value & "# AND NAMA_BARANG='" & > KriteriaNamaBarang & "'" > > Trus di Adodbnya di move ke record terakhir, > misanyanya Adonya Adors1, jadi statementnya : > > Adors1.MoveLast > > Setelah itu tampilin deh hasilnya... > > Tapi ada masalah gimana ya kalo dalam satu tanggal > tersebut terjadi lebih dari satu kali mutasi terhadap > nama barang yang sama ? > > Mungkin ada baiknya pada tabel tersebut ditambahkan > Field yang menampung nomor urut transaksi. > > > > --- sherinalavenda <[EMAIL PROTECTED]> wrote: > > > sebuah database berisi > > > > Tgl Nama Barang StockAwal Masuk Keluar > > Akhir > > 1/1/08 barang A 10 2 0 12 > > 5/1/08 barang A 12 0 1 11 > > 10/1/08 barang A 11 5 0 16 > > > > ada yg bisa bantu syntax untuk mengetahui stock awal > > & stock akhir > > tanggal 7/1/08(dtpicker)? > > thank u. > > > > > > > > ________________________________________________________ > Bergabunglah dengan orang-orang yang berwawasan, di di bidang Anda! Kunjungi Yahoo! Answers saat ini juga di http://id.answers.yahoo.com/ >
