나눔터  
  HOME > 나눔터 > 묻고답하기 > 액세스
액세스
액세스에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내
작성자:  

 황동준 (bogri2000)

추천:  0
파일:     211224_년개월일수[2].accdb (528KB) 조회:  1064
제목:   [RE]근무년월일 구하는 질문 올립니다.
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 액세스 버전(95,97,2000,xp,2003,2007):

* 아래줄에 질문을 작성하세요 >> 

묻고답하기에서 근무년수를 검색해보니 근무년과 월까지만 구해지는 모듈은 있는데 일까지 구할수 있는지 있으면 알려주시면 감사하겠습니다.

Public Function LenOFSvc(고용일 As Date, Optional 퇴직일 As Variant) As String

 Dim totalm As Integer
 Dim m As Integer
 Dim y As Integer
 Dim xx As Date

 If IsNull(퇴직일) Then
 xx = Date
 Else: xx = 퇴직일
 End If

 If Day(고용일) > Day(xx) Then
   totalm = DateDiff("m", 고용일, xx) - 1
  Else
  totalm = DateDiff("m", 고용일, xx)
  End If
  
  y = totalm \ 12
  m = totalm Mod 12
  
  LenOFSvc = y & "년" & m & "개월"
  
  End Function




==============[대왕초보님 글에 대한 답변입니다]==============

    Dim totalm As Integer
    Dim d As String
    Dim m As String
    Dim y As String
    Dim xx As Date
    
    If IsNull(퇴직일) Then
        xx = Date
    Else
        xx = 퇴직일
    End If
    
    If Day(고용일) > Day(xx) Then
        totalm = DateDiff("m", 고용일, xx) - 1
    Else
        totalm = DateDiff("m", 고용일, xx)
    End If
    
    y = Format(totalm \ 12, "00")
    m = Format(totalm Mod 12, "00")
    d = Format(xx - DateSerial(Year(xx), Month(xx), 1), "00")
    
    LenOFSvc = y & "년 " & m & "개월 " & d & "일"
==============[황동준님 글에 대한 답변입니다]==============
Public Function LenOFSvc(고용일 As Date, Optional 퇴직일 As Variant) As String

    Dim i As Integer
    Dim j As Integer
    Dim k As Integer
    Dim l As Integer
    Dim m As Integer
    Dim n As Integer
    
    If IsNull(퇴직일) Then 퇴직일 = Date
    
    i = DateDiff("m", 고용일, 퇴직일) - 1
    
    If Right(고용일, 2) - Right(퇴직일, 2) - 1 < 0 Then
        j = 1
    Else
        j = 0
    End If
    
    k = i + j
    
    l = Int(k / 12)
    m = k - l * 12
    n = DateDiff("d", DateAdd("m", k, 고용일), 퇴직일)
    
    LenOFSvc = Format(l, "00") & "년" & Format(m, "00") & "개월" & Format(n, "00") & "일"

End Function

출처 : https://cafe.naver.com/xpath/15980
 
[불량 게시물 신고]  
대왕초보감사합니다^^12-24 (10:28)
삭제 ■신고
대왕초보고용일이 1988/1/1이고 퇴직일이 2021/12/24일로 하니까 결과값이 33년11월23일로 나오는데 아까보다는 지금이 좀 더 정확하긴 하네요^^ 어쨰든 감사한데 좀 더 정확한건 없겠죠^^*12-24 (10:36)
삭제 ■신고
황동준33년11개월23일이 맞는거 아닌가요?12-24 (10:54)
삭제 ■신고
대왕초보제가 착각을 했네요 ㅋㅋ 33년11개월24일로 할라면 어느 부위를 고쳐야 할까요?12-24 (11:18)
삭제 ■신고
황동준오늘을 포함해서 일수 계산하시는건가요?
n = DateDiff("d", DateAdd("m", k, 고용일), 퇴직일)
  수식에서 +1 하시면 될 듯 합니다.
12-24 (17:06)
삭제 ■신고
대왕초보그렇게 하니까 안되고 고용일 대신 고용일-1로 바꾸니까 더 정확하게 결과치가 나오는거 같네요.  
고용일 1988/1/1  퇴직일 2021/12/31 결과치가 33년11개월31일로 나오는데, 고용일-1 로는 34년00개월00일로 나오네요^^*  어쨰든 감사합니다
12-24 (17:42)
삭제 ■신고
        
  

작성일 : 2021-12-24(10:14)
최종수정일 : 2021-12-24(10:20)
 


 ◎ 관련글

  제 목   작성자   날짜
근무년월일 구하는 질문 올립니다. 대왕초보 2021-12-23
[RE]근무년월일 구하는 질문 올립니다. 황동준 2021-12-24
[RE]근무년월일 구하는 질문 올립니다. 황동준 2021-12-24