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

작성자:  

 웹맨 (anmingui)

추천:  0
파일:     조회:  432
제목:   프로시져내용중 이해가 안가는 부분이 있습니다
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

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

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

김규경님 사이트에 예제로 올라와 있는 폼 이벤트 속성을 이용하여 입력및 저장을 제어하는 예제중에 이해가 안가는 부분이 몇군데 있어서 이렇게 질문 드립니다.(가져다 쓰는데는 지장이 없는데.. 이해를 해야 활용할수 있을것 같습니다..)아무것도 모르는 초보라(초보 맞습니다)생각하시고 프로시져 내용 해석좀 부탁드립니다.  

프로시져 내용은 다음과 같습니다.

Option Compare Database
Option Explicit

Dim m_Save As Boolean  왜
Boolean 으로 전역번수를 선언하는지 모르겟습니다.
________________________________________________________________
Private Sub cmdSave_Click() ' 
    
    m_Save = True  
    
    DoCmd.RunCommand acCmdSaveRecord '저장실행
    
End Sub
_________________________________________________________________
Private Sub Form_BeforeUpdate(Cancel As Integer) 

    If m_Save = False Then 

        Beep 

        ' MsgBox "[SAVE] 버튼을 눌러 자료를 저장하십시오.",vbInformation

    End If
    
    Cancel = (m_Save = False) ->이부분도 잘이해가...안가네요..
    
    m_Save = False

End Sub
 
[불량 게시물 신고]  
CrociiDim insertOK As Boolean

Private Sub cmdSave_Click()
    insertOK = True
    DoCmd.RunCommand acCmdSaveRecord
    insertOK = False
End Sub

Private Sub Form_BeforeUpdate(Cancel As Integer)
    Cancel = Not insertOK
End Sub

이렇게 하면 직관적이지요? 똑같은 내용입니다..

Cancel이 True가 되면 Update를 Cancel 시킵니다.
Cancel이 False로 있어야 레코드가 Update되고 AfterUpdate이벤트로 넘어가지요..
10-13 (21:42)
삭제 ■신고
드리뭉검색중 의문이 생겨 글 올립니다.ㅜㅜ

Cancel=(m_Save=False)이부분이 m_Save에 False를 넣고 m_Save에들어온 False를 다시 Cancel에 넣는다는 말아닌가요?

근데왜 다시 m_Save=False라고한것인가요?
두번 쓸 필요는 없는것 아닌가요?
10-13 (23:22)
삭제 ■신고
Crocii괄호 안의 = 은 변수에 담으라는 것이 아니라 좌우를 비교하라는 것이지요.. 다른 랭귀지의 == 과 같은 겁니다..
m_Save = False 냐? m_Save가 False False=False가 되니까 True를 반환할 것이고.. True라면 True=False가 되니까 False가 되겠지요..
즉.. Cancel = Not m_Save 와 똑같은 겁니다.
10-14 (08:55)
삭제 ■신고
웹맨그렇다면 insertOK 전역 변수는 기본값이 FALSE인가요? 만약 해당폼이 열리고 cmdSave버튼을 누르지 않은 상황이라면 BeforeUpdate 문에서 insertOK 변수가 TRUE 인지 FALSE 인지 어떻게 구분을 하죠? (몰라서 죄송합니다.)10-14 (11:19)
삭제 ■신고
Crocii죄송은요..

저는 변수 선언을 하는 주된 이유가 변수의 디폴트값이 설정되기 때문에 편리해서 꼭 선언해 줍니다..
변수를 선언하고 아무 값도 안 주었을 때. 각각의 디폴트 값은
String=""
숫자형=0
Boolean도 숫자형이므로 0=False
Date도 결국 숫자형이므로 0=1899/12/30
또.. 머가 있더라.. 암튼 이래요..
10-14 (16:29)
삭제 ■신고
        
  

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