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

작성자:  

 열심맨 (ojk)

추천:  1
파일:     조회:  2675
제목:   모듈에서의 전달된 폼이름이 인식이 안됩니다.
     
  - 액세스 버전: 2010

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



--- 폼닫기 버튼 이벤트 소스

Private Sub 폼닫기_Click()
    Call 폼닫기("고객입력폼") '모듈호출  
End Sub

---



--- 모듈소스
Public Function 폼닫기(a As Variant)

'폼닫기 이벤트 소스를 공용으로 사용하기 위해서...
'a변수에는 폼이름값이 들어온다.
    
'변수확인 - 잘 작동됨
MsgBox a

    '폼을 닫을때 레코드가 변경되었는지 확인메세지 내보내고 사용자가 저장할지 선택권을 넘긴다.
    If [Forms]!a.Dirty Then '<------///// 에러발생위치 a 을 인식못함
          
        If MsgBox("데이터가 변경 되었습니다.      " & Chr(13) & Chr(13) & "변경된 데이터로 저장할까요?          ", vbYesNo + vbDefaultButton2 + vbQuestion, " 안내") = vbYes Then
            '저장 선택시
            DoCmd.Close , , acSaveYes
        
        Else
           '취소 선택시
           a.Undo
           DoCmd.Close , , acSaveNo
        End If

    Else
        '변한게 없으면
        DoCmd.Close , , acSaveNo

    End If

End Function

-- 에러증상
2450 런타임 오류가 발생
참조폼 'a' 를 찾을수 없습니다.

폼에서 작동하면 잘됩니다.
그러나 모듈에 넣고 호출하여 작동시키면 에러가 발생합니다.
전달된 폼이름값 a 를 어떻게 해야 하는지 모르겠습니다.
부탁드립니다.
감사합니다.
 
[불량 게시물 신고]  
황동준Forms(a).Dirty

Forms(a).Undo
02-13 (15:16)
삭제 ■신고
열심맨아~ 괄호가 있어야 하는군요. 즉시 해보겠습니다. 
감사합니다. 꾸벅^^
02-14 (13:26)
삭제 ■신고
열심맨아~ 잘됩니다. 감사합니다. ^^02-14 (14:00)
삭제 ■신고
열심맨황동준 선생님 한가지만 더 부탁드립니다.

Forms(a)![검색결과].Requery

이건 어떻게 해야하나요? 
[검색결과]도 넘겨진 변수로 처리하려고 합니다. 
전달된 c 를 어떻게 써야 하나요?

Forms(a)![c].Requery
Forms(a)!(c).Requery
Forms(a)!c.Requery

위 3가지 방법 다 에러가 발생합니다.
02-19 (13:46)
삭제 ■신고
열심맨아~ 이것저것 해보다 찾았습니다.

Forms(b)(c).Requery
02-19 (14:43)
삭제 ■신고
황동준축하드립니다~
Forms(a).Controls(c).Requery
02-19 (14:45)
삭제 ■신고
        
  

작성일 : 2018-02-12(09:47)
최종수정일 : 2018-02-12(15:00)