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

 황동준 (bogri2000)

추천:  0
파일:     220826_비밀번호.accdb (2044KB) 조회:  1028
제목:   [RE]비밀번호 오류 체크 및 매개변수 쿼리
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

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

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

안녕하세요?

액세스를 공부하는 직장인입니다.

문제를 풀다 도저히 안풀리는 문제들이 있어서 문의 드립니다.

고수님들의 많은 조언 부탁 드립니다.

파일도 같이 올려 드립니다.

문의드릴 내용은 다음과 같습니다.

나라별 예매현황 쿼리에서 매개변수 쿼리가 있습니다.

여기에 조건을 붙이고 싶습니다.

나라명이 없거나 또는 값을 입력하지 않을경우 종료하는 쿼리는 어떻게 작성을 해야 할까요?

단순 매개쿼리는 작성이 가능한데, 조건을 만족하는 매개쿼리는 작성이 어렵네요 ㅠㅠ

그리고 또 하나는 로그인폼에서 비밀번호가 맞지 않을경우 입니다.

단순 비밀번호 체크 후 메세지를 띄우는 건 가능하지만, 3회 비밀번호 오류 시 폼이 종료되는 vba 작성은 어떻게 해야 하는지 궁금합니다.
 ㅠㅠ

고수님들의 많은 조언 부탁 드립니다.

감사합니다. 
 

==============[스타119님 글에 대한 답변입니다]==============

※ 첨부파일 참조하세요.


1. 매개변수 쿼리
  1) 쿼리는 간단한 매개변수로 검색이 가능하나 더 많은 기능(매크로, VBA 등 ) 은 사용 불가능 합니다.
  2) 따라서 폼으로 검색폼을 만들거나 해서 사용 하여야 합니다.
  3) 첨부파일은 검색용 인풋박스는 쿼리 매개변수를 사용하여 질문하고, 해당 결과가 0일 경우 폼이 열리는것을 취소 하는 방식입니다.

Private Sub Form_Open(Cancel As Integer)
'폼이 열릴때 레코드 갯수가 0이면 폼이 열리는것을 취소함
    If Me.Recordset.RecordCount = 0 Then Cancel = True
End Sub

2. 로그인 횟수
  1) 적절한 로그인 코드에서 오류 상황일때 카운터를 합니다.
  2) 카운터를 하기위해 값을 담을 곳이 필요합니다.
  3) 보통 공용변수나 폼의 텍스트 상자 같은것을 이용합니다.
  4) 첨부파일에는 로그인카운터 라는 텍스트 상자를 안보이게 배치한 후, 기본값을 0으로 두고 매 실패시 1씩 증가하고 특정 횟수를(3회) 초과하면 종료(폼닫기등)할수 있도록 하였습니다.

Private Sub 로그인_button_Click()
    On Error Resume Next
    
    '로그인 버튼을 누르면 아이디 및 비밀번호란을 확인하고
    '폼을 새로고침 한 후 아이디 비번이 일치하는 레코드가 있는지
    '있으면 메인폼을 실행,
    '조건이 맞지 않으면 로그인카운터 텍스트 상자에 로그인 오류 횟수를 더하고
    '특정횟수 이상 시도하였을때 종료함.
    
    Dim strSQL
    Dim cntNo
    
    DoCmd.Requery
    
    If IsNull(txtid) Or IsNull(txtpw) Then
        MsgBox "사용자 및 비밀번호를 입력하세요"
    Else
        If ID > 0 Then
            Dim tmpNo
    
            tmpNo = Me.회원번호
            
            DoCmd.Close
            
            DoCmd.OpenForm "관리자메인", , , "회원번호=" & tmpNo
                
        Else
            MsgBox "잘못된 정보입니다."
            Me.txtpw = Null
            Me.txtpw.SetFocus
            Me.로그인카운터 = Me.로그인카운터 + 1
            If Me.로그인카운터 >= 3 Then
                MsgBox "로그인 오류 3회로 종료 됩니다."
                'DoCmd.Quit
                DoCmd.Close
            End If
        End If
    End If
End Sub

3. 첨부파일에 Mod_CloseAllForms 이라는 모듈은 한번에 모든 폼을 닫아주는 기능을 합니다. 보통 로그아웃 기능에서 사용하시면 편리합니다.
사용법은 모듈안에 주석을 참조하세요.
 
[불량 게시물 신고]  
스타119감사합니다. 많은 도움이 되었습니다. ^^09-12 (19:21)
삭제 ■신고
        
  

작성일 : 2022-08-26(09:09)
최종수정일 : 2022-08-26(09:09)
 


 ◎ 관련글

  제 목   작성자   날짜
비밀번호 오류 체크 및 매개변수 쿼리 스타119 2022-08-25
[RE]비밀번호 오류 체크 및 매개변수 쿼리 황동준 2022-08-26