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

