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

 황동준 (bogri2000)

추천:  0
파일:     210605_인풋박스로한번에입력받기.accdb (544KB) 조회:  1320
제목:   [RE] 인풋박스로 바로 입력/수정하기
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 액세스 버전(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
==============[황동준님 글에 대한 답변입니다]==============

기존 방식과 약간 다르게 한번에 끝까지 루프 돌면서 비어있는 레코드에는 인풋박스를 이용해서 바로 입력 받아 수정하도록 하였습니다.
첨부 참조 하세요.
 
[불량 게시물 신고]  
강오리감사합니다.
샘플 잘 응용하겠습니다.
06-07 (09:25)
삭제 ■신고
        
  

작성일 : 2021-06-05(09:26)
최종수정일 : 2021-06-05(09:27)
 


 ◎ 관련글

  제 목   작성자   날짜
빈 필드 레코드로 이동을 도와주십시요. 강오리 2021-05-17
[RE]빈 필드 레코드로 이동을 도와주십시요. 황동준 2021-05-18
[RE] 루프 멈춘 레코드에 필드 포커스 주기 황동준 2021-06-05
[RE] 인풋박스로 바로 입력/수정하기 황동준 2021-06-05