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/
>


Kirim email ke