Para Senior Access, bagaimana cara menggunakan RELATIONSHIP...?? Dan apa 
perbedaan Premier Key (PK) dan Foreign Key (FK), bagaimana cara 
menggunakannya...??
Sebelumnya saya sampaikan terima kasih atas bantuannya.

  ----- Original Message ----- 
  From: aksan kurdin 
  To: [email protected] 
  Sent: Saturday, March 08, 2008 7:41 AM
  Subject: Re: [belajar-access] Re: Menghitung lama bertugas ?


  Alternatif:
  Query:
  SELECT tblHistory.NoReg, tblHistory.History, tblHistory.tgl, 
GetTglAkhir([NoReg],[Tgl]) AS tgl2, fTahunBulan([tgl],[tgl2]) AS MasaJabatan
  FROM tblHistory
  ORDER BY tblHistory.NoReg, tblHistory.tgl;

  dengan fungsi GetTglAkhir:
  Function GetTglAkhir(NoReg As String, Tgl As Date) As Date
  Dim rs As DAO.Recordset
  Set rs = CurrentDb.OpenRecordset("select tgl from tblhistory where noreg = '" 
& NoReg & "' and tgl > #" & Format(Tgl, "mm/dd/yyyy") & "# order by tgl")
  If rs.RecordCount > 0 Then
  GetTglAkhir = rs(0)
  Else
  GetTglAkhir = Date
  End If
  rs.Close
  Set rs = Nothing
  End Function


  Kalau lihat data, T-889 memegang jabatan Kabag Pemupukan dan Kabag Penyiangan 
secara bersamaan tgl 1 April 2007.
  Jika memang seorang pegawai bisa memegang lebih dari satu jabatan sekaligus, 
maka untuk tanggal yang sama, query ini dan query mas wedhi, serta punya pak 
Edy bisa digunakan. Tetapi jika tanggalnya berbeda, saya sarankan, daripada 
pusing mikirin logika berdasarkan satu tanggal, anda tambahkan satu field lagi 
di tblHistory tgl akhir jabatan.

  Aksan Kurdin




  On 2/27/08, wedhi2002 <[EMAIL PROTECTED]> wrote:
    Tgl2 Otomatis terisi.
    NoUrut Otomatis terisi.
    Masa Keja Otomatis terisi.

    Hasilnya sbb:
    NoReg History tgl NoUrut tgl2 MasaKerja
    T-881 Kabag Pembibitan padi 21-May-2003 1 09-Apr-2006 2 tahun 11 bulan
    T-881 Staf penaburan pupuk 09-Apr-2006 2 01-Jan-2008 1 tahun 9 bulan
    T-881 Kasubbag pengairan 01-Jan-2008 3 27-Feb-2008 1 bulan
    T-889 Kabag penanaman padi 01-Dec-2005 1 09-Apr-2006 4 bulan
    T-889 Kabag pemupukan padi 01-Apr-2006 2 01-Jan-2008 1 tahun 9 bulan
    T-889 Kabag penyiangan padi 01-Apr-2007 3 27-Feb-2008 10 bulan

    Buat Query bernama Query3, dengan string SQL sbb:

    Query3:
    SELECT TblHistory.*, DCount([tgl],"Query3","tgl<=#" & [tgl] & "# AND
    NoReg='" & [NoReg] & "'") AS NoUrut,
    IIf(Len(Format(DLookUp("[tgl]","Query3","[NoUrut]=" &
    
[NoUrut]+1),"dd-mmm-yyyy"))=0,Format(Date(),"dd-mmm-yyyy"),Format(DLookUp("[tgl]","Query3","[NoUrut]="
    & [NoUrut]+1),"dd-mmm-yyyy")) AS tgl2, fTahunBulan([tgl],[tgl2]) AS
    MasaKerja
    FROM TblHistory
    ORDER BY TblHistory.NoReg, TblHistory.tgl;

    letakkan fungsi ini di module umum:

    Function fTahunBulan(ByVal tgl1 As Date, ByVal tgl2 As Date) As String
    On Error GoTo err_f

    intMonth = DateDiff("m", tgl1, tgl2)
    Select Case intMonth
    Case 0
    intDay = DateDiff("d", tgl1, tgl2)
    fTahunBulan = intDay & " hari"
    Case 1 To 12
    fTahunBulan = intMonth & " bulan"
    Case Else
    intTahun = intMonth \ 12
    intSisa = intMonth Mod 12
    fTahunBulan = intTahun & " tahun " & intSisa & " bulan"
    End Select

    exit_f:
    Exit Function

    err_f:
    Debug.Print Err.Description
    Resume exit_f

    End Function

    --- In [email protected], "andikprabowo"
    <[EMAIL PROTECTED]> wrote:
    >
    > Hello para senior acces dan kawan sekalian, moga sehat selalu.
    > 
    > Andi mau tanya untuk menghitung lamanya bertugas melihat dari tabel 
    > history, contoh :
    > 
    > NoReg History tgl 
    > T-889 Kabag penanaman padi 01-12-2005
    > T-889 Kabag pemupukan padi 01-04-2007
    > T-889 Kabag penyiangan padi 01-04-2007
    > T-881 Kabag Pembibitan padi 21-05-2003
    > T-881 Staf penaburan pupuk 09-04-2006
    > T-881 Kasubbag pengairan 01-01-2008
    > 
    > gimana ngitung lamanya bertugas untuk noreg T-889 Sewaktu menjadi 
    > kabag penanaman padi berapa tahun berapa bulan?
    > lanjut, lamanya bertugas untuk noreg T-889 Sewaktu menjadi 
    > kabag pemupukan padi berapa tahun berapa bulan?
    > 
    > mohon saran? terimakasih.
    >






  -- 
  Aksan Kurdin 

   

Kirim email ke