드로우홀릭 더베이직

로그인폼 만들기

2016.04.18 00:26:20 조회 수 18175 추천 수 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 31699
공지 좋은 답변을 이끌어 내는 방법 [1] 돌직구 2017-07-14 27835
공지 액세스 Q/A 게시판 형식을 변경합니다. 돌직구 2014-09-10 23077
299 액세스 날짜 형식 2 우진이 2018-10-30 18911
298 access 2010 무작정 따라하기 자습하고 있는 데 질문이 있습니다. file 1 goban 2018-10-21 2399
297 쿼리 조건신 문의 (년-월-일 중에 특정일에 해당하는 날만) 8 푸른약속 2018-10-11 23185
296 직장인을 위한 실무엑세스에서 교재 및 동영상강의의 교육화면과 실제 제 컴퓨터에서 실행한 파일이 다릅니다. file 1 하샤 2018-09-26 3674
295 쿼리 조건 식 1 수달 2018-09-14 4401
294 하나의 폼에서 데이터 입력 및 조회 구현 file 1 park 2018-08-22 45119
293 실무 액세스를 읽고 있습니다. 1 호수달 2018-08-18 3855
292 피벗형데이터를 db형데이터로 변경하는 방법 file 작왕 2018-08-13 3079
291 엑세스 다른 테이블 목록 불러오기?(bom) file 1 엑세스와엑셀 2018-08-06 13830
290 [개발 의뢰 건] 해당 내용이 엑세스로 구현이 가능한지 궁금합니다. 1 livinona91 2018-07-30 3723
289 액세스 조회 할때 원하는 거래처를 모두 조회할 수 있는 방법이 있을까요? file 2 써노~ 2018-07-20 12129
288 엑세스 2016 피벗차트 엑세스배움이 2018-07-19 8228
287 조회폼 만드는 중 레이블과 텍스트상자 중복연결이 안되요.. airi 2018-07-06 8283
286 vba 보고서_엑셀 내보내기 문의 _file첨부 file 열공액세스 2018-06-27 3453
285 거래명세표 양식 작성 문의 2 우진이 2018-06-22 3485
284 폼 제작 및 신규 등록 아이콘 추가 방법 file 1 해지는소리 2018-06-21 6918
283 Powerapps로 전환 관련 1 sayHo 2018-06-10 3721
282 vba 보고서_엑셀 내보내기 문의 file 1 열공액세스 2018-06-04 3880
281 VBA폰트변경시 문제 file 2 아카아키 2018-06-01 14696
280 함수 질문 드립니다 1 김푸센 2018-05-19 6755


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