[Attachment(s) from Muhamad Safei safeimuhamad@yahoo.com [belajar-access] included below]
iya mas..awalnya mau sy buat sprti itu..tp dari atasan pengennya untuk data barang dibuat seperti itu..tanggal berlakunya dibuat kesamping supaya mereka input barangnya tidak terlalu banyak..karna item barang diambil dari data excel yang jumlahnya ribuan dengan mekanisme upload saja...jd data master barang..awalnya dari file excel yang mereka input..nah..mereka mintanya program yang dibuat mengikuti file excel yang sudah ada....
apakah kemungkinan jika tblmaster1 dibuat seperti itu tidak bisa ya mas???
Pada Jumat, 17 April 2015 17:52, "Aksan Kurdin aksan.kurdin@gmail.com [belajar-access]" <belajar-access@yahoogroups.com> menulis:
[Attachment(s) from Aksan Kurdin aksan.kurdin@gmail.com [belajar-access] included below]
dear bang safei,
pertama2 desain tabel anda tidak normal.
anda jadi harus menambahkan field baru setiap kali periode tanggal perlu ditambahkan kembali.
ubah tabel tblMaster1 menjadi:
code
hargaJual
hargaBeli
tglBerlaku
lalu isikan data2 nya dijadikan satu lajur kolom saja.
sekarang mari berlogika untuk memperoleh harga di tanggal tertentu berdasarkan tabel di atas.
misalkan harga A1 di tanggal 2 April 2015
maka range yang masuk itu adalah batasBawah <= 4/2/2015 < batasAtas
bagaimana memperoleh harga terakhir di tanggal tersebut ?
caranya dengan menyusun daftar untuk kode barang tertentu, yang lebih kecil dari tanggal yang dimaksud, dan di sort descending by dateApplied.
Jika sudah terbentuk datanya, baru kita selesaikan dengan mengambil TOP 1 informasi yang diperlukan.
ini sql querynya:
SELECT tblTmp.GoodID, tblTmp.PODate, getmaster1value("sprice",[goodid],[podate]) AS SPrice, getmaster1value("bprice",[goodid],[podate]) AS BPrice, getmaster1value("dateapplied",[goodid],[podate]) AS dateCheck
FROM tblTmp;
dan ini fungsi ajaibnya untuk memperoleh selling price dan buying price:
Function getMaster1Value(fieldname As String, goodsid As String, dateapplied As Date) As Variant
On Error GoTo errHandle
Dim db As DAO.Database
Set db = CurrentDb
Dim sql As String
sql = "select TOP 1 goodsid, sprice, bprice, dateapplied "
sql = sql & "from tblmaster1 "
sql = sql & "where goodsid = '" & goodsid & "' and dateapplied <= #" & Format(dateapplied, "mm/dd/yyyy") & "# "
sql = sql & "order by dateApplied DESC"
Dim rs As DAO.Recordset
Set rs = db.OpenRecordset(sql, dbOpenDynaset)
Dim result As Variant
If Not (rs.BOF And rs.EOF) Then
result = rs(fieldname)
End If
rs.Close
Set rs = Nothing
Set db = Nothing
getMaster1Value = result
Exit Function
errHandle:
Set rs = Nothing
Set db = Nothing
End Function
hasilnya:
regards,
Aksan Kurdin
pertama2 desain tabel anda tidak normal.
anda jadi harus menambahkan field baru setiap kali periode tanggal perlu ditambahkan kembali.
ubah tabel tblMaster1 menjadi:
code
hargaJual
hargaBeli
tglBerlaku
lalu isikan data2 nya dijadikan satu lajur kolom saja.
sekarang mari berlogika untuk memperoleh harga di tanggal tertentu berdasarkan tabel di atas.
misalkan harga A1 di tanggal 2 April 2015
maka range yang masuk itu adalah batasBawah <= 4/2/2015 < batasAtas
bagaimana memperoleh harga terakhir di tanggal tersebut ?
caranya dengan menyusun daftar untuk kode barang tertentu, yang lebih kecil dari tanggal yang dimaksud, dan di sort descending by dateApplied.
Jika sudah terbentuk datanya, baru kita selesaikan dengan mengambil TOP 1 informasi yang diperlukan.
ini sql querynya:
SELECT tblTmp.GoodID, tblTmp.PODate, getmaster1value("sprice",[goodid],[podate]) AS SPrice, getmaster1value("bprice",[goodid],[podate]) AS BPrice, getmaster1value("dateapplied",[goodid],[podate]) AS dateCheck
FROM tblTmp;
dan ini fungsi ajaibnya untuk memperoleh selling price dan buying price:
Function getMaster1Value(fieldname As String, goodsid As String, dateapplied As Date) As Variant
On Error GoTo errHandle
Dim db As DAO.Database
Set db = CurrentDb
Dim sql As String
sql = "select TOP 1 goodsid, sprice, bprice, dateapplied "
sql = sql & "from tblmaster1 "
sql = sql & "where goodsid = '" & goodsid & "' and dateapplied <= #" & Format(dateapplied, "mm/dd/yyyy") & "# "
sql = sql & "order by dateApplied DESC"
Dim rs As DAO.Recordset
Set rs = db.OpenRecordset(sql, dbOpenDynaset)
Dim result As Variant
If Not (rs.BOF And rs.EOF) Then
result = rs(fieldname)
End If
rs.Close
Set rs = Nothing
Set db = Nothing
getMaster1Value = result
Exit Function
errHandle:
Set rs = Nothing
Set db = Nothing
End Function
hasilnya:
regards,
Aksan Kurdin
On 4/13/2015 11:28 AM, Muhamad Safei safeimuhamad@yahoo.com [belajar-access] wrote:
Selamat siang..mhn pencerahannya....
berdasarkan gambar diatas...sy ingin membuat query dengan kondisi sebagai berikut :
1.menampilkan code dimana kode pada tbltmp =code pada tblmaster12.menampilkan harga jual dimana :jika tgl_po pada tbltmp >/= tgl berlaku1 pada tblmaster maka harga jual=harga jual1 dan harga beli=harga beli1.tapi jika tgl_po pada tbltmp >/= tgl berlaku2 pada tblmaster maka harga jual=harga jual2 dan harga beli=harga beli2.tapi jika tgl_po pada tbltmp >/= tgl berlaku3 pada tblmaster maka harga jual=harga jual3 dan harga beli=harga beli3.tapi jika tgl_po pada tbltmp >/= tgl berlaku4 pada tblmaster maka harga jual=harga jual4 dan harga beli=harga beli4.
jadi query yang ingn ditampilkan adala seperti dihbahaw inicode harga jual harga beli- - -- - -
sy sudah coba seperti dibawah ini,tp kagak bisa jalan...
SELECT tbltmp.[MC Seq#], tbltmp.[PO Date],case when tbltmp.[PO Date]>tblmaster1.[tgl berlaku1] then tblmaster1.[harga jual1]
when tbltmp.[PO Date]>tblmaster1.[tgl berlaku2] then tblmaster1.[harga jual2]
when tbltmp.[PO Date]>tblmaster1.[tgl berlaku3] then tblmaster1.[harga jual3]
when tbltmp.[PO Date]>tblmaster1.[tgl berlaku4] then tblmaster1.[harga jual4]
end as harga_jual from tbltmp.[PO date],
FROM tblmaster1 INNER JOIN tbltmp ON tblmaster1.Mc = tbltmp.[MC Seq#];
Sekian Terimakasih....!!!
__._,_.___
Attachment(s) from Muhamad Safei safeimuhamad@yahoo.com [belajar-access] | View attachments on the web
3 of 3 Photo(s)
Posted by: Muhamad Safei <safeimuhamad@yahoo.com>
Reply via web post | • | Reply to sender | • | Reply to group | • | Start a New Topic | • | Messages in this topic (3) |
SPAM IS PROHIBITED
.
__,_._,___
Tidak ada komentar:
Posting Komentar