드로우홀릭 더베이직
안녕하세요?
모든 근무자들에 대해 일일 근무 시작 시간과 끝나는 시간이 있습니다. 시간은 제각기고요.
이런 상황에서 매번 시간을 계산해야 하는 일이 생깁니다. 총 시간이든, 일일 시간이든요.
그런데 입력을 짧은텍스트 (00:00)로 받아서 저장이 된 상태라 이 자료를 숫자로 변경한 후에 계산하는 방식으로 해야 합니다.
입력을 시간으로 받을 수 있는 방법이 있는지 궁금합니다. 그럼 텍스트를 숫자로 변환하는 과정을 거치지 않고, 시간은 시간대로 빼거나 더해주면 되지 않을까요?
만들어 보지는 않고 질문만 드려서 송구합니다.
답변에 미리 감사드립니다.
테스트를 해보고 싶어서 테스트db를 만들었는데 제가 datediff를 잘못 이해하고 있는 것 같네요. 결과가 안 나오고 #NAME? 이라고 뜹니다. 파일 첨부합니다. 고맙습니다.Database2.accdb
입력을 시간으로 받는다면.. 폼이 있다는 말씀이지요?
그 폼에 텍스트상자를 하나 만들어 두시고.. 시간을 입력받는다면 '형식' 속성에 'hh:nn:ss' 라고 입력해 두세요.
그러면 그 텍스트 상자는 시간 데이터를 입력 받습니다.
시간 계산은 DateDiff 라는 함수를 사용합니다. 도움말 찾아 보시고요.
근무시간 계산할 때, 보통 '일'과 '시간'을 분리해서 입력하는데..
'일'과 '시간'을 한 칸으로 하는 것이 좋습니다.
날짜와 시간을 합쳐서 한 번에 입력하는 것이 좋다는 말씀입니다.
그러나 이것은 계산에 좋다는 뜻이고..
입력하는 사람 입장에서는 날짜와 시간을 분리해서 입력하는 것이 편하죠.
그러면 텍스트 상자를 두 개 만듭니다. 하나는 날짜 입력, 하나는 시간 입력이죠.
날짜 입력 텍스트 상자에는 형식 속성을 'yyyy-mm-dd'와 같이 입력해 두면 역시 날짜만 들어갑니다.
그 다음 제3의 텍스트 상자를 만들고 계산식을
= 1텍스트상자 + 2텍스트상자
이런 식으로 하면 제3의 텍스트 상자에는 날짜와 시간이 모두 들어갑니다.
DateDiff 함수를 제3의 텍스트 상자의 값을 이용해서 적용하면 간단하게 근무시간이 기록됩니다.
날짜와 시간을 분리하면, 근무시간 계산식이 매우 복잡해 집니다.
밤 12시를 넘겨서 근무한 경우, 근무종료시-근무시작시+24시간 해 줘야 하는 등의 처리를 해야 하기 때문입니다.
반면, 날짜와 시간을 하나로 하면, DateDiff 함수를 이용해서 간단히 처리할 수 있지요.
이번 주는 제가 출장이라, 다음 주 중에 예제를 하나 만들어서 올려 놓겠습니다. (TD21 정보 DB에 올려 놓겠습니다.)