드로우홀릭 더베이직

로그인폼 만들기

2016.04.18 00:26:20 조회 수 18443 추천 수 0

안녕하세요~!

회사에서 업무를 좀 편하게 하고자 액세스의 세계에 발들 들어놓게 된 유저입니다.

사실 비쥬얼베이직도 잘 모르고 해서 만드는데 애로가 많습니다.

책을 보고 연구좀 하고 해서 로그인폼을 만들었는데

생각대로 작동이 되지 않더라고요.

일단 코드는

Private Sub Command1_Click()

If IsNull(Me.txtID) Then

    MsgBox "ID를 입력하세요!", vbinformation, "사용자ID required"

    Me.txtID SetFocus

ElseIf IsNull(Me.txtpassword) Then

    MsgBox "Password를 입력하세요.", vbinformation, "password required"

    Me.txtpassword SetFocus

Else

    'proxess the job'


    If ( IsNull(DLookup("로그인ID", "사용자", "로그인ID = ' " & Me.txtID.Value & " ' "))) Or _

    (IsNull(DLookup("password", "사용자", " password = ' " &Me.password.value & " ' "))) Then

         MsgBox "ID내지는 Password가 틀립니다."

  Else

        Tempvars.add  "사용자ID, DLookup("사용자ID, "사용자", "로그인ID = ' " & Me.txtID.Value & " ' ")

        Tempvars.add  "사용자명, DLookup("성명, "사용자", "로그인ID = ' " & Me.txtID.Value & " ' ")

        DoCmd.Close

           'MsgBox "로그인 됐습니다."

       DoCmd.Openform "Navi Form"

  End IF

End IF

End Sub


어찌 어찌 해서 로그인이 구현은 되는데, 패스워드가 "Password" 필드에 있는 아무거나 입력을 해도 로그인이 되더라고요

이걸 특정인의 패스워드로 한정할수 있는 방법이 없을까요?

아 그리고 DCount 사용법에 대해 점 문의가 있는데, 제 회사 사정상 파일을 밖으로 유출을 할 수 없습니다.

특정물건의 넘버로의 갯수를 세는 함수를 만들고 싶은데, 제 실력으론 좀 어렵더라고요.

DCount("재고번호", "기본정보", )

조건을 채워야 완성이 되는데. 도와 주셨으면 합니다.

책만 복보고 하기에는 한계가 있더라고요.

함수만 따로 공부할 수 있는 책이 있나요?


profile

돌직구

2016.04.18 23:52:11
*.187.183.135

'사용자' 테이블은 다음과 같이 구성이 되어 있을 것 같네요. (데이터는 제가 예시로 넣었습니다.)


로그인ID    성명    password
--------------------------------------------
user1    사용자1    pwd1
user2    사용자2    pwd2


작성하신 코드에서 보면, 다음 부분이 크게 잘못되었습니다.

If ( IsNull(DLookup("로그인ID", "사용자", "로그인ID = ' " & Me.txtID.Value & " ' "))) Or _
    (IsNull(DLookup("password", "사용자", " password = ' " &Me.password.value & " ' "))) Then


이 코드의 정확한 의미는.. 입력한 로그인ID가 없거나, 암호가 없으면 오류로 처리하는 것인데요..

극단적인 예로 user1 / pwd2 로 입력해도 로그인이 되는 문제가 있겠네요.


이 부분은 다음과 같이 고쳐야 합니다.


Dim strPwd As String

strPwd = Nz(DLookup("password", "사용자", "로그인ID = '" & nz(txtID.Value,"") & "'"), "")
If strPwd = "" Then
    '입력한 로그인ID에 대한 데이터가 없을 때의 처리
    Exit Sub
End If

'암호 비교
If Nz(password.value,"") = strPwd Then
    '암호가 일치할 때의 처리
Else
    '암호가 일치하지 않을 때의 처리
End If

전체적으로, 입력한 사용자 ID에 대한 암호 값을 미리 가져온 후..

가져온 암호와 입력한 암호를 비교하는 로직입니다.


그리고 '특정물건의 넘버로의 갯수를 세는' 것은, 별도의 글로 다시 질문해 주십시오.

질문이 전혀 이해가 되지 않습니다.

회사 사정상 파일을 유출할 수 없다고 하더라도, 좀 더 설명을 자세히 할 수는 있겠지요.

아니면, 실제 데이터가 아닌 것으로 파일을 새로 만들 수도 있고요.



그리고, 함수 말씀을 하셨는데, 엑셀은 함수로 대부분의 문제를 해결하지만, 액세스는 쿼리를 가지고 대부분의 문제를 해결합니다. 함수는 극히 일부분만 사용하게 되지요.

어쨌든 함수는 다음 링크를 참고하십시오.

http://www.td21.com/kb/5868


해오름러너

2016.04.19 10:54:07
*.33.180.19

감사합니다 로그인 문제가 해결 됐더니 앓던 이가 빠진것 같습니다.

다른 문의사항에 관해서는 예시 파일을 만들어서 문의하겠습니다.

감사합니다~

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 FAQ: 어떤 과정을 수강하는 것이 좋을까요? 외 돌직구 2017-08-29 31974
공지 좋은 답변을 이끌어 내는 방법 [1] 돌직구 2017-07-14 28125
공지 액세스 Q/A 게시판 형식을 변경합니다. 돌직구 2014-09-10 23156
140 일련번호 질문이요~ 2 하이누스 2016-08-17 12648
139 안녕하세요. 1 히드라 2016-08-04 1959
138 온라인 동영상 화면크기 문의 2 brave 2016-08-01 1973
137 2010 VS 2013 엑세스 무작정 따라하기 2 데이타벳 2016-07-26 10400
136 엑세스가 좋을지 엑셀이 더 좋을지 궁금합니다. 2 데이타벳 2016-07-26 2477
135 테이블을 만드는데 속성값이 너무 크다고 나옵니다. 2 태평양 2016-07-06 2362
134 폼 텍스트박스에 데이터 뿌려주기... 도와주세요 file 3 medcoop 2016-06-20 6490
133 필드 유효성 검사 추가 file IluvAccess 2016-06-02 7141
132 엑세스 2013 무작정 따라하기를 구입. 하래 2016-05-27 7394
131 크로스탭 쿼리 1 해오름러너 2016-05-17 8668
130 update 구문에서의 sum 사용 질문입니다 1 빅파이 2016-05-14 2973
129 회사 경비시스템 구축 문의 드립니다. 2 깔끔신사76 2016-05-12 2681
128 사진이나 그림 삽입 방법 1 notebook01 2016-05-01 25036
127 한번에 여러명의 편집이 안되는 현상 문의 2 mr09 2016-04-20 4130
» 로그인폼 만들기 2 해오름러너 2016-04-18 18443
125 사용자 마다 엑서스를 구입해야 하나요?? 1 백승주 2016-04-14 2755
124 메시지박스의 체크박스로 테이블의 체크박스 컨트롤하기 1 공잇 2016-04-07 28111
123 엑셀에 저장된 주민번호를 액세스로 가져올 땐 앞자리 0이 없어지는 문제.. 1 닥똥 2016-04-05 6121
122 액세스 추가 쿼리 질문 드립니다. file 2 왓썹초이 2016-04-01 4682
121 검색어를 입력하여 리스트박스에 검색결과 얻기 1 순둥동이 2016-03-31 4558


  주소  12925 경기도 하남시 미사대로 540, B동 917호 (현대지식산업센터 한강미사2차) ㈜팀데이터이십일  |  고객센터 전화번호  02-467-2998  |  대표이사  염기웅
개인정보관리책임자  염기웅 (ml_privacy@td21.com)  |  사업자등록번호  120-86-79260  |  통신판매업신고번호  제 2021-경기하남-1166 호  [사업자 정보 확인]
  TD21의 사전 서면 동의 없이 TD21 사이트 일체의 정보, 콘텐츠 및 UI 등을 상업적 목적으로 전시, 전송, 스크래핑 등 무단 사용할 수 없습니다.