드로우홀릭 더베이직

로그인폼 만들기

2016.04.18 00:26:20 조회 수 18288 추천 수 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
번호 제목 글쓴이 날짜 조회 수sort
공지 FAQ: 어떤 과정을 수강하는 것이 좋을까요? 외 돌직구 2017-08-29 31831
공지 좋은 답변을 이끌어 내는 방법 [1] 돌직구 2017-07-14 27981
공지 액세스 Q/A 게시판 형식을 변경합니다. 돌직구 2014-09-10 23113
519 특정 테이블의 필드 값을 다른 테이블로 옮기는 작업 1 1 thedream77 2014-12-18 45474
518 하나의 폼에서 데이터 입력 및 조회 구현 file 1 park 2018-08-22 45331
517 한 필드에서 여러개의 같은 데이터중 한개의 데이터만 가져오는 방법 2 백두산 2020-06-05 42790
516 추가쿼리에서 키위반 오류 문의드립니다 file 3 1 박형근 2022-07-17 36074
515 엑세스로 재고관리대장을 만들계획입니다. 2 1 똥구녕멍멍 2019-04-18 32407
514 외부데이터 "가져오기 오류 - 형식변환실패"의 의미는~? file 1 1 방랑김사깟 2017-02-19 31984
513 액셀의 데이타(하이퍼링크)를 복사해서 기존의 액세스 테이블에 붙이기 file 3 1 광야에서살아남기 2015-08-21 30988
512 이벤트 에러 file 4 1 엑세스29 2017-06-15 29396
511 엑세스 데이터베이스 일관성 에러 문의 1 박상순 2021-02-22 28435
510 목록상자 클릭시 클릭한 COL, ROW의 값 vb로 받아오기 2 쐬주도사 2017-12-15 27988
509 메시지박스의 체크박스로 테이블의 체크박스 컨트롤하기 1 공잇 2016-04-07 27801
508 엑셀파일 불러오기 오류 문의 file 3 기영주 2016-02-16 27457
507 vba에서 날짜 포멧 변환 질문드립니다. 1 1 쐬주도사 2017-12-18 27047
506 액세스 데이터베이스 딜레이 및 멈춤 문제 file 1 3 전맥 2016-10-11 26532
505 통화 필드에 단위($ 또는 \)표시가 저장 안 되게 할 수 있을까요? 3 클로이 2019-07-04 25883
504 리스트박스의 선택된값을 해제 하려면 어떻게해야하나요, 1 김은교 2016-01-16 25810
503 입력식에 유호하지 않는 날짜값이 있습니다. 2 sky3300 2019-03-26 25008
502 액세스 DB 파일 용량 문제 문의 드립니다. 4 바남풍 2019-08-26 24849
501 사진이나 그림 삽입 방법 1 notebook01 2016-05-01 24846
500 텍스트 가져오는 데 문제가 생겨요. 1 당연히나지 2021-01-24 24188


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