/* */

Friday, April 17, 2015

Fwd: Re: [belajar-access] query dengan case ?? [3 Attachments]

---------- Forwarded message ----------
From: "Aksan Kurdin aksan.kurdin@gmail.com [belajar-access]" <belajar-access@yahoogroups.com>
Date: Apr 17, 2015 5:52 PM
Subject: Re: [belajar-access] query dengan case ?? [3 Attachments]
To: <belajar-access@yahoogroups.com>
Cc:

 
[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







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 tblmaster1
2.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 ini
code        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 Aksan Kurdin aksan.kurdin@gmail.com [belajar-access] | View attachments on the web

3 of 3 Photo(s)


Posted by: Aksan Kurdin <aksan.kurdin@gmail.com>
Reply via web post Reply to sender Reply to group Start a New Topic Messages in this topic (2)

Check out the automatic photo album with 4 photo(s) from this topic.
Untitled.png aiffjbhh.png afgacach.png fbgiedgf.png

SPAM IS PROHIBITED

.

__,_._,___

1 comment:

  1. I personally never use codes in Microsoft Excel, because it is quite difficult. Now, I understand how complicated this program is.

    ReplyDelete