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

 mari (bliss)

추천:  0
파일:     조회:  454
제목:   [RE]답변주셔서 감사합니다. 그런데..
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

1. 액세스 버전(95,97,2000,2002):2000
2. 윈도우즈의 버전(win95,win98,winME,winNT,win2000,winXP):win2000
3. CPU (486,PentiumI/II/III/IV...):
4. RAM (32,64,128,256,512MB,1G...): 

필드A  필드B
가      2
나      1 
다      2 

일때, 필드 B 안의 숫자(각각 2,1,2)만큼 A필드의 레코드가 복사되는 방법은 없을까요? 

필드 A   
가        



다 

이렇게 되게요..^^; 

==============[mari님 글에 대한 답변입니다]==============

전 주로 97버전만 사용하는데.. 다음과 같이 vba로 처리해보세요.

테이블명 : Table1(필드A, 필드B)
테이블명 : Table2(필드A)

Function DataAddTest()

    Dim DB As Database
    Dim RS1, RS2 As Recordset
    Dim Li As Integer
    Set DB = CurrentDb()
    Set RS1 = DB.OpenRecordset("Table1")
    RS1.MoveFirst
    Do Until RS1.EOF
        Set RS2 = DB.OpenRecordset("Table2")
        For Li = 1 To Val(RS1![필드B])
            RS2.AddNew
            RS2![필드A] = RS1![필드A]
            RS2.Update
        Next Li
        RS2.Close
        RS1.MoveNext

    Loop
    RS1.Close
    Set DB = Nothing
    
End Function
==============[찡어님 글에 대한 답변입니다]==============
답변주셔서 정말 감사드리고요,,그런데 제가 vba 초보라 잘못해서
그런지 오류가 나네요..^^;

13 런타임오류가 발생하였습니다
형식이 일치하지 않습니다 라는 메시지가 나오면서 디버그를
누르면 Set RS2 = DB.OpenRecordset("Table2") 이 부분에
노란줄이 생기는데 무엇이 문제인지 모르겠네요..
 
[불량 게시물 신고]  
찡어
Dim RS1, RS2 As Recordset을 주석처리(')하고 해보세요.
Access97에서 2000하고의 문법이 조금 틀리나봐요.
그부분만 없으면 2000 버전에서도 실행되는군요.
Microsoft DAO 3.51 Object Library 를 참조하는 vba입니다.
10-09 (15:00)
삭제 ■신고
mari감사합니다. 알려주신 방법으로 하니까 되네요. ^^10-09 (21:50)
삭제 ■신고
        
  

작성일 : 2004-10-08(21:51)
최종수정일 : 2004-10-08(21:51)
 


 ◎ 관련글

  제 목   작성자   날짜
레코드의 복사에 관해.. mari 2004-10-08
[RE]레코드의 복사에 관해.. 찡어 2004-10-08
[RE]답변주셔서 감사합니다. 그런데.. mari 2004-10-08