드로우홀릭 더베이직
엑세스로 가져와야 할 다음과 같은 엑셀 데이터가 있습니다. 각 그룹의 첫 레코드에만 그룹명이 있습니다.
그룹 | 이름 | 특성1 | 특성2 | | |
A | 김철수 | | | | |
| 강영희 | | | | |
| . . . | | | | |
| | | | | |
B | 김호영 | | | | |
| 이지수 | | | | |
| . . . | | | | |
| | | | | |
이 데이터를 엑세스로 불러들인 후, 각 이름에 그룹이 기록된 다음과 같은 테이블을 만들고 싶습니다.
그룹 | 이름 | 특성1 | 특성2 | | |
A | 김철수 | | | | |
A | 강영희 | | | | |
A | . . . | | | | |
A | | | | | |
B | 김호영 | | | | |
B | 이지수 | | | | |
B | . . . | | | | |
B | | | | | |
엑셀에서는 처리할 줄 아는데, 데이터가 커서 엑세스로 불러들인 후 작업하는 것이 좋을 것 같아 문의 드립니다.
감사합니다.
그러면 도움을 계속 받기로 하겠습니다.
첨부한 엑셀파일을 엑세스로 "가져오기"를 하면서,
빈칸이 위의 데이터로 채워진 테이블을 만들어 주시기 바랍니다.
거듭 감사 드립니다.
네, 회신 드립니다.
첨부한 파일을 참고해 주십시오.
첨부한 파일에서 '빈칸_채우기' 라는 프로시저를 실행하면 값이 채워질 것입니다.
일단, 엑셀과 달리 '이전 행'의 개념이 없기 때문에, 임의로 이러한 기준을 만들어 주어야 합니다.
첨부한 파일에 보면, 'Data1' 이라는 테이블이 있는데, 여기에서 'ID' 필드가 이러한 기준입니다.
'ID' 순서로 한 행씩 읽어 나가면서, '고객사' 필드에 값이 있으면 임시 변수에 값을 담고 넘어갑니다.
'고객사' 필드에 값이 없으면, 임시 변수에 보관된 값(이전 값이겠죠)을 해당하는 'ID' 값을 가진 레코드의 '고객사' 필드에 업데이트 하는 것입니다.
소스코드에 주석도 달아 놓았으므로, 참고하시기 바랍니다.
액세스는 개념적으로 '이전 행' 같은 개념이 없습니다.
따라서, 지금 말씀하신 것은 엑셀에서 처리하는 것이 훨씬 더 편리합니다.
엑셀에서 처리하는 것이 어려울 경우, VBA를 이용하여 레코드를 하나씩 적용하는 방법이 있습니다.
예를 들자면, '그룹' 필드에 값이 있을 경우, 변수 하나에 넣어 두고..
다음 레코드에서 '그룹' 필드에 값이 없을 경우, 변수에 저장한 값으로 채우는..
이런 규칙을 VBA를 이용해서 구현할 수 있습니다.
예제 파일을 첨부하지 않으셨는데.. 첨부해 주시면 간단히 예제 코드를 만들어 드릴 수는 있을 것 같습니다.