드로우홀릭 더베이직
안녕하세요~!
회사에서 업무를 좀 편하게 하고자 액세스의 세계에 발들 들어놓게 된 유저입니다.
사실 비쥬얼베이직도 잘 모르고 해서 만드는데 애로가 많습니다.
책을 보고 연구좀 하고 해서 로그인폼을 만들었는데
생각대로 작동이 되지 않더라고요.
일단 코드는
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("재고번호", "기본정보", )
조건을 채워야 완성이 되는데. 도와 주셨으면 합니다.
책만 복보고 하기에는 한계가 있더라고요.
함수만 따로 공부할 수 있는 책이 있나요?
'사용자' 테이블은 다음과 같이 구성이 되어 있을 것 같네요. (데이터는 제가 예시로 넣었습니다.)
로그인ID 성명 password
--------------------------------------------
user1 사용자1 pwd1
user2 사용자2 pwd2
작성하신 코드에서 보면, 다음 부분이 크게 잘못되었습니다.
이 코드의 정확한 의미는.. 입력한 로그인ID가 없거나, 암호가 없으면 오류로 처리하는 것인데요..
극단적인 예로 user1 / pwd2 로 입력해도 로그인이 되는 문제가 있겠네요.
이 부분은 다음과 같이 고쳐야 합니다.
전체적으로, 입력한 사용자 ID에 대한 암호 값을 미리 가져온 후..
가져온 암호와 입력한 암호를 비교하는 로직입니다.
그리고 '특정물건의 넘버로의 갯수를 세는' 것은, 별도의 글로 다시 질문해 주십시오.
질문이 전혀 이해가 되지 않습니다.
회사 사정상 파일을 유출할 수 없다고 하더라도, 좀 더 설명을 자세히 할 수는 있겠지요.
아니면, 실제 데이터가 아닌 것으로 파일을 새로 만들 수도 있고요.
그리고, 함수 말씀을 하셨는데, 엑셀은 함수로 대부분의 문제를 해결하지만, 액세스는 쿼리를 가지고 대부분의 문제를 해결합니다. 함수는 극히 일부분만 사용하게 되지요.
어쨌든 함수는 다음 링크를 참고하십시오.
http://www.td21.com/kb/5868