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

 황동준 (bogri2000)

추천:  2
파일:     210115[2].accdb (560KB) 조회:  1356
제목:   [RE]레코드번호를 필드에 저장하는 방법 좀...
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

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

* 아래줄에 질문을 작성하세요 >> 
예를들어
레코드가 1,000개인 테이블의 '순서'라는 필드에
vba를 이용해서 각각의 레코드번호를 채워(Update) 넣으려 하는데
모르겠습니다. 
이유는
기본키 ID(일련번호)가 있는데, 중간중간 이가 빠져서
For~next를 이용해서 처리하는데 애로가 있습니다.

vba로 '순서' 필드에 일련번호를 입력할 수 있으면 다른방법이라도 좋습니다.
도움주십시요.

==============[강오리님 글에 대한 답변입니다]==============
1. 일련번호가 고유값의미가 없거나 관계설정이 되어 있지않은 경우
 또는 기존 레코드 순서에 새로운 연번만 필요할 경우

  1) 기존 일련번호 필드의 이름과 데이터형식을 숫자로 변경한 후 저장
  2) 새로운 일련번호 필드(또는 새순서 필드) 를 생성

※ 추가정보
https://docs.microsoft.com/ko-kr/office/troubleshoot/access/reset-autonumber-value

2. 정렬 결과에 따라 새 연번 부여
  1) 해당 테이블을 DAO를 이용하여 새순서 부여(첨부파일 참조)

    Dim rs As DAO.Recordset
    
    Set rs = Me.Form.Recordset 
    'Set rs = CurrentDb.OpenRecordset("SELECT * FROM 테이블 ORDER BY 정렬필드")

    rs.MoveFirst
    
    i = 1
    
    Do
        rs.Edit
        rs!새순서 = i
        rs.Update
        rs.MoveNext
        i = i + 1
    Loop Until rs.EOF
    
    Set rs = Nothing

※ For~Next 때 문제가 된다고 하셨는데 이때 ID를 이용하지 마시고 해당 구문에서 따로 순번을 매겨서 쓰시면 되지 않을까요?
 
[불량 게시물 신고]  
강오리이번에도 동준님이시네요. 늘 감사드립니다.

덕분에 문제는 일단 해결은 했는데, 
필드명(seqNO)을 변수로 처리하는 것은 
해결하지 못했습니다. 
시간 나실 때 한 수 부탁드려봅니다. 
---------------------------------------
'지정 필드에 레코드 순번 입력
Sub setSeqNumber(strTblNM, strFldNM)
Dim db As DAO.Database
Dim rs As DAO.Recordset

Dim i As Integer
  Set db = CurrentDb()
  Set rs = db.OpenRecordset("SELECT * FROM [" & strTblNM & "] ORDER BY [ID]")
    rs.MoveFirst
    i = 1
  Do
    rs.Edit
    rs!seqNO = i  --이게 안됩니다-->  rs![ " & strFldNM & "] = i
    rs.Update
    rs.MoveNext
    i = i + 1
  Loop Until rs.EOF

  Set rs = Nothing
  Set db = Nothing
End Sub
01-15 (21:45)
삭제 ■신고
황동준rs.Fields(strFldNM) = i

화이팅입니다~
01-16 (02:21)
삭제 ■신고
강오리원하는 바가 완벽하게 해결되었습니다.
새해 복많이 받으세요.
01-16 (10:47)
삭제 ■신고
        
  

작성일 : 2021-01-15(10:00)
최종수정일 : 2021-01-15(10:12)
 


 ◎ 관련글

  제 목   작성자   날짜
레코드번호를 필드에 저장하는 방법 좀... 강오리 2021-01-14
[RE]레코드번호를 필드에 저장하는 방법 좀... 황동준 2021-01-15