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

작성자:  

 드리뭉 (efreecom)

추천:  0
파일:     조회:  448
제목:   docmd.runmacro에러....
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

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

* 아래줄에 질문을 작성하세요 >> 


1대1관계의 두폼을 한폼에서 연결하여 열었습니다.
그리고 열면서 첫번째 폼에서 이름(기본키)필드의 값을 두번빼폼의 이름(기본키)에 docmd.runmacro 매크로이름 여기서매크로는 setvalue이고 항목에 forms![두번째폼]![이름]  식은 [이름] 이것은 첫번째폼의 이름입니다.

이렇게 하고 폼을 열었더니 폼은 열리고 값이 입력이 됩니다. 
그런데 폼이 열린상태에서 탐색단추로 레코드를 이동시키거나 닫기버튼을 누루면 "인덱스,기본키 또는 관계에서 중복된 값을 만들었기 때문에 테이블에 요청된 변경사항이 적용되지 않았습니다."라는 에러메시지가 뜹니다.


어떻게 해야하는지요?
 
[불량 게시물 신고]  
Crociisetvalue 니까..
첫번째 테이블의 이름 필드가 두번째 폼의 이름 필드 값으로 바뀌겠군요..

철수
영희
바둑이

철수
영희
바둑이 

이렇게 있다가..

두번째 폼의 레코드가 철수에서 영희로 바뀌면..
첫번째 폼의 철수가 영희로 값이 바뀌면서..

영희
영희
바둑이

이렇게 될 겁니다.. 기본키니까.. 중복되어서 에러나겠지요..
10-14 (09:43)
삭제 ■신고
드리뭉뭐 다른 좋은 방법은 없나요?
철수<-->철수
영희<-->영희
바둑이<-->바둑이
두번째폼의 기본키를 없애고 관계를 해제하니까 레코드이동시 에러는 없는데 이름필드가 공백으로 되네요. 어떻게 될수 있는 방법이 없을는지요?
도움을 부탁드립니다.....
10-14 (15:23)
삭제 ■신고
Crocii첫번째 폼의 변경에 따라 두번째 폼이 바뀌게..
두번째 폼의 외곽을 클릭하고 속성창에서
기본연결필드:Forms!폼이름!첫번째폼이름.Form!기본키컨트롤
하위연결필드:기본키컨트롤

첫번째 폼의 Current 이벤트에
Parent!두번째폼.requery

이렇게 하면 될 겁니다.. 상위폼에 입력란 하나 만들고 그것을 기본연결필드로 해도 될 것이고..

허나 저 같으면 두 테이블을 쿼리에서 하나로 만들거나 애초에 1:1관계의 테이블은 여하하면 하나의 테이블로 만들겠지요.
10-14 (18:58)
삭제 ■신고
        
  

작성일 : 2004-10-13(23:10)
최종수정일 : 2004-10-13(23:10)