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:
              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
      
      
      
      
      
      
      
      
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 Aksan Kurdin aksan.kurdin@gmail.com [belajar-access] | View attachments on the web
3 of 3 Photo(s)
| Reply via web post | • | Reply to sender | • | Reply to group | • | Start a New Topic | • | Messages in this topic (2) | 
 
 
 
   
I personally never use codes in Microsoft Excel, because it is quite difficult. Now, I understand how complicated this program is.
ReplyDelete