|
* 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.
- 액세스 버전(95,97,2000,xp,2003,2007):2019
* 아래줄에 질문을 작성하세요 >>
a테이블에 가끔씩 새로운 레코드가 추가되는데
고유번호가 있어서 수천개의 레코드 중간중간에 위치하게 됩니다.
새롭게 추가된 레코드를 찾아 수작업으로 구분코드를 입력해 줘야 하는데,
'구분코드'필드를 정렬해서 빈 것만 골라 입력하면 쉽지만...
문제는 전후 레코드를 보고 판단해서 구분코드를 입력해야 합니다.
레코드가 많은데 일일이 찾아가는 것이 힘듭니다.
해서 '아래 화살표'나 '단추'를 누르면 빈 필드 레코드를 찾아
이동하게 하고 싶습니다.
==============[강오리님 글에 대한 답변입니다]==============
첨부 파일 참조 하세요
되감기버튼을 누르면 레코드번호 텍스트박스 에 null을 입력해서 구분한다.
재생버튼을 누르면 레코드번호 텍스트상자를 참조 하여 빈값(null)일 경우레코드셋을 제일 첨으로 이동하고 아니면 현재 선택된 레코드에서 다시 루프한다.
레코드 카운터가 되면서 구분필드가 비어있는 레코드에서 멈추고(Exit sub), 값을 수정 한 후 다시 재생버튼을 누르면 현재 레코드 부터 다시 탐색한다.
하위폼을 레코드셋으로 하므로 원하는데로 정렬 한 후 실행 하시면 됩니다.
Private Sub 되감기_Click()
'이버튼을 클릭하여 텍스트상자 값을 지워 최초로 돌아감을 구분한다.
Me.레코드카운터 = Null
End Sub
Private Sub 재생_Click()
'하위폼을 DAO 레코드셋으로 선언
Dim rs As DAO.Recordset
Set rs = Me.f1_1.Form.Recordset
'텍스트상자의 값으로 최조와 진행중임을 구분한다.
'값이 없으면 최초로 돌린후 루프.. 값이 있으면 해당 레코드부터 루프
If IsNull(레코드카운터) Then
rs.MoveFirst
Me.레코드카운터 = 1
End If
'루프를 돌면서 구분코드가 비어 있으면 빠져나간다.
'이후 다시 재생버튼을 눌러 해당 레코드 부터 다시 루프한다.
Do
If IsNull(rs!구분코드) Then Exit Sub
rs.MoveNext
Me.레코드카운터 = 레코드카운터 + 1
Loop Until rs.EOF
End Sub
==============[황동준님 글에 대한 답변입니다]==============
기존 방식과 약간 다르게 한번에 끝까지 루프 돌면서 비어있는 레코드에는 인풋박스를 이용해서 바로 입력 받아 수정하도록 하였습니다.
첨부 참조 하세요. |
|