470 likes | 858 Views
4. 폼 실습. 부서정보관리폼. 로그인 폼 사용자의 아이디와 암호를 입력하여 [ 확인 ] 버튼을 누르면 메인 메뉴 폼이 열리는 로그인 폼 작성 전체 화면 흐름도. 사원정보관리폼. 메인메뉴폼. 부서별사원검색폼. 사원검색폼. 4. 폼 실습. 부서정보관리폼 확인 사원정보관리폼 확인. 3. 폼의 컨트롤들. 콤보 상자와 리스트 부서명을 입력 받아 사원을 찾는 폼을 만들어 보자 [ 만들기 ]-[ 폼 ]-[ 폼 디자인 ] 을 선택하여 빈 폼을 나타낸다 .
E N D
4. 폼 실습 부서정보관리폼 • 로그인 폼 • 사용자의 아이디와 암호를 입력하여 [확인] 버튼을 누르면 메인 메뉴 폼이 열리는 로그인 폼 작성 • 전체 화면 흐름도 사원정보관리폼 메인메뉴폼 부서별사원검색폼 사원검색폼
4. 폼 실습 • 부서정보관리폼 확인 • 사원정보관리폼 확인
3. 폼의 컨트롤들 • 콤보 상자와 리스트 • 부서명을 입력 받아 사원을 찾는 폼을 만들어 보자 • [만들기]-[폼]-[폼 디자인] 을 선택하여 빈 폼을 나타낸다. • [컨트롤 마법사 사용]을 해제한다. • 콤보 상자를 선택한 후 빈 폼에 콤보 상자를 그린다.
3. 폼의 컨트롤들 • 리본 메뉴의 [폼 디자인 도구]-[디자인]-[도구]-[속성시트] 를 선택하여 화면 우측에 속성 시트를 나타낸다. • 앞에서 만든 콤보 상자를 선택한 후 속성 시트의 [모두]탭 [이름]에서 Combo1 이라고 지정한다. • [데이터]탭 [행 원본] : Select 부서명 From 부서 [행원본 유형] : 테이블:쿼리 [바운드 열] : 1 [목록값만 허용]: 예 [기본값] : “부서를 선택”
3. 폼의 컨트롤들 • 콤보 상자의 레이블 내용을 “부서 선택 : ”으로 변경 • 컨트롤의 단추를 선택하여 폼에 그린다. • 속성 시트에서 단추의 이름은 Command1 캡션은 “검색 “ 지정
3. 폼의 컨트롤들 • 폼에도 단추에 “검색” 이라고 표시되어진다. • 컨트롤에서 목록 상자를 선택한 후 폼에 영역을 설정 한다.
3. 폼의 컨트롤들 • 속성 시트에서 목록 상자의 [이름]을 “List1” 으로 지정한다. [열개수 ] 는 4 : 필드가 사원번호, 이름, 주소, 호봉 이 검색되므로 . [열너비] 는 2;2;2;2 : 조회 되어질 각 필드의 넓이를 지정하는 것으로 입력하면 2cm;2cm:2cm;2cm로 변경된다. [열 이름] 은 예 : 조회 시 필드명을 화면에 나타내어 준다. 목록상자의 레이블을 “검색목록”으로 변경한다. • 검색 단추를 마우스 오른쪽을 눌러 나타나는 메뉴에서 [이벤트 작성]을 선택한다.
3. 폼의 컨트롤들 • 작성기 선택 창에서 “코드 작성기”를 선택한 후 [확인] • Visual Basic 코드 작성기가 나타난다.
3. 폼의 컨트롤들 • Visual Basic 코드 작성에 다음 소스 코드를 입력한다. Private Sub Command1_Click() Dim sql As String If IsNull(Me.combo1) Then Beep MsgBox “부서를 선택해 주세요" DoCmd.GoToControl “Combo1“ Else sql = "select 사원번호, 이름, 주소, 호봉 from 부서, 사원" sql = sql & " where 부서.부서코드 = 사원.부서코드 " sql = sql & " and 부서.부서명 = '" & Me.Combo1 & "'“ Me.List1.RowSource = sql DoCmd.Requery "list1“ End If End Sub
3. 폼의 컨트롤들 • Visual Basic 코드 작성기 소스 코드가 입력 된 후 창닫기 버튼[X]을 클릭한다. • 폼 보기로 전환 시킨 후 콤보상자에 검색하기 원하는 부서를 마우스로 선택한 후 [검색] 버튼을 누른다. • 선택한 부서에 근무하는 직원들의 정보가 나타난다. 저장 : “부서별사원검색폼”
3. 폼의 컨트롤들 • 매개변수로 폼 열기 • 부서명을 입력 받아 사원을 찾는 폼을 만들 후 검색된 사원을 클릭하면 사원에 대한 세부 정보가 있는 폼이 나타나도록 해보자 • 사원의 세부 정보가 나타나는 폼은 “사원정보관리폼”으로 이미 작성되어 있다고 가정하자.
3. 폼의 컨트롤들 • 앞의 “콤보 상자와 리스트 ” 실습에서 만든 폼을 디자인 보기로 연다. • 목록 상자를 마우스로 선택한 후 속성 시트 [이벤트] – [On Dbl Click]에 다음 코드를 입력한다. DoCmd.OpenForm 명령이 폼을 여는 명령이며 첫번째 변수인 “사원보기디자인폼”이 열리게 될 폼의 이름이며 opencode 변수에 사원폼에서 사용 할 where 조건문이 입력되었다.
3. 폼의 컨트롤들 Private Sub List1_DblClick(Cancel As Integer) Dim opencode As String opencode = "사원번호 = '" & Me.List1.Column(0) & "'" DoCmd.OpenForm "사원보기디자인폼", , , opencode End Sub
3. 폼의 컨트롤들 • Visual Basic 코드 작성기 소스 코드가 입력 된 후 창닫기 버튼[X]을 클릭한다. • 폼 보기로 전환 시킨 후 콤보상자에 검색하기 원하는 부서를 마우스로 선택한 후 [검색] 버튼을 누른다. • 선택한 부서에 근무하는 직원들의 정보가 나타난다. • 검색목록에나타난 사원 레코드 하나를 더블 클릭하면 세부 정보가 담긴 폼이 나타난다. 더블클릭
3. 폼의 컨트롤들 • 검색 버튼과 리스트 • 사원의 이름 일부분을 입력 받아 사원을 찾는 폼을 만들어 보자 • [만들기]-[폼]-[폼 디자인] 을 선택하여 빈 폼을 나타낸다. • [컨트롤 마법사 사용]을 해제한다. • 텍스트 상자를 선택한 후 빈 폼에 텍스트 상자를 그린다.
3. 폼의 컨트롤들 • 리본 메뉴의 [폼 디자인 도구]-[디자인]-[도구]-[속성시트] 를 선택하여 화면 우측에 속성 시트를 나타낸다. • 앞에서 만든 텍스트 상자를 선택한 후 속성 시트의 [모두]탭 [이름]에서 Text1 이라고 지정해 둔다. ( 뒤에 나올 프로그램에서 텍스트 상자의 이름을 사용해야 하므로 이름을 통일함) • 폼의 텍스트 상자 앞 레이블을 클릭하여 “검색어:” 라고 입력한다.
3. 폼의 컨트롤들 • 레이블의 속성 시트를 보면 이 레이블의 이름이 Label3 인 것을 알 수 있고 내용을 “검색어:”로 수정 했으므로 캡션에 표시되어 진다. • 컨트롤에서 [단추]를 선택한 후 텍스트 상자 옆에 위치 시킨다. • 속성 시트에서 에서 이름을 “Command1” 캡션을 “검색” 으로 수정
3. 폼의 컨트롤들 • 폼에서도 단추에 “검색” 이라고 표시되어진다. • 컨트롤에서 목록 상자를 선택한 후 폼에 영역을 설정 한다.
3. 폼의 컨트롤들 • 속성 시트에서 목록 상자의 [이름]을 “List1” 으로 지정한다. [열개수 ] 는 4 : 필드가 사원번호, 이름, 주소, 호봉 이 검색되므로 . [열너비] 는 2;2;2;2 : 조회 되어질 각 필드의 넓이를 지정하는 것으로 입력하면 2cm;2cm:2cm;2cm로 변경된다. [열 이름] 은 예 : 조회 시 필드명을 화면에 나타내어 준다. • 검색 단추를 마우스 오른쪽을 눌러 나타나는 메뉴에서 [이벤트 작성]을 선택한다.
3. 폼의 컨트롤들 • 작성기 선택 창에서 “코드 작성기”를 선택한 후 [확인] • Visual Basic 코드 작성기가 나타난다.
3. 폼의 컨트롤들 • Visual Basic 코드 작성에 다음 소스 코드를 입력한다. Private Sub Command1_Click() Dim sql As String ‘sql 입력될 변수 선언 If IsNull(Me.Text1) Then ‘텍스트 상자가 비었으면 Beep MsgBox "검색어를 입력해 주세요" DoCmd.GoToControl "Text1“ ‘다시 Text1 Else sql = "select 사원번호, 이름, 주소, 호봉 from 사원" sql = sql & " where 이름 like '*" & Me.Text1 & "*'" Me.List1.RowSource = sql ‘작성된 SQL 배정 DoCmd.Requery "list1“ ‘SQL 실행 End If End Sub
3. 폼의 컨트롤들 • Visual Basic 코드 작성기 소스 코드가 입력 된 후 창닫기 버튼[X]을 클릭한다. • 리스트의 레이블에 “검색내용” 이라고 입력해 준다. • 폼 보기로 전환 시킨 후 텍스트 상자에 “우” 라고 입력한 후 [검색] 버튼을 누른다. • 사원의 이름에 “우”자가 들어가 있는 사원이 검색되어 나타난다.
4. 폼 실습 • 메인 메뉴폼의 작성 • 리본 메뉴의 [만들기]-[폼디자인]을 실행하여 빈 폼을 나타낸다. • 폼의 경계선을 드래하여 크기를 조절한다.
4. 폼 실습 • [컨트롤 마법사 사용] 활성화 시킨다. • 폼에 메뉴를 위한 명령 단추를 위치 시키기 위하여 [컨트롤]-[단추]선택 • 폼에 단추를 그린다. 명령 단추 마법사에서 종류 폼작업, 매크로 함수 폼 열기 선택 [다음]
4. 폼 실습 • 열릴 폼의 이름을 선택한다. “부서별정보관리” 선택 [다음] • 부서 테이블안의 모든 데이터를 보여 줄 것이기 때문에 “폼을 열고 레코드 모두 표시합니다.” 선택 [다음] • 명령 단추에 나타날 텍스트 입력 “부서정보관리” [다음]
4. 폼 실습 • 명령 단추의 이름은 현재 이름을 그대로 쓸 것이기에 [마침] 선택 • 첫 번째 메뉴 단추가 완성된다. • 폼 보기 상태로 전환한 후 명령 단추를 눌러 부서정보관리 폼이 화면에 실행되는지 확인한다. 폼 보기 상태
4. 폼 실습 • 동일한 방법으로 나머지 명령 단추를 완성 한다. • 마지막 명령 단추를 하나 더 작성한 후 종류:폼 작업 , 매크로 함수: 폼 닫기 단추에 넣을 그림으로 “정지”를 선택한다.
4. 폼 실습 • 화면 구성이 완성된 메뉴 폼에 속성을 지정해 주어야 한다. • [도구]-[속성시트]를 선택하여 화면 우측에 속성 시트를 나타낸다. • 속성 시트안의 선택 유형에서 폼을 지정해 준다. • 레코드 선택기 숨기기 • [형식]탭의 “레코드 선택기”를 “아니오”로 지정한다. • 폼 좌측에 있던 “레코드 선택기”가 숨겨진다.
4. 폼 실습 • 탐색단추 숨기기 • [형식]탭의 “탐색 단추”를 “아니오”로 지정한다. • 폼 하단에 있던 “레코드 탐색 단추”가 숨겨진다. • 구분선 숨기기 • [형식]탭의 “구분선”을 “아니오”로 지정한다.
4. 폼 실습 • 테두리 스타일 변경 • [형식]탭의 “테두리스타일”이 “조정가능”상태로 지정되어 있으면 폼의 전체 크기를 마우스로 드래그하여 변경할 수 있다. • [없음][가늘게][대화상자]는 폼의 크기를 조정 할 수 없다. • [없음]은 폼의 테두리가 없어지며 닫기 버튼 까지도 숨겨진다. • 테두리 스타일을 [가늘게]로 지정한다. [조정가능] [없음] [대화상자] [가늘게]
4. 폼 실습 • 메인 메뉴 폼의 속성 설정이 완성 되었다. 폼 보기 상태로 변환하여 폼의 최종 상태를 확인한 후 저장한다.
4. 폼 실습 • 로그인 용 테이블 작성 • 여러 명의 사용자가 아이디와 패스워드를 갖고 시스템을 사용한다고 가정하면 로그인용 정보를 저장하는 테이블이 필요하다. • [만들기]-[테이블디자인]을 실행하여 필드이름 : id 데이터 형식 : 텍스트 필드크기 : 10 기본키 지정 필드이름 : pass 데이터 형식 : 텍스트 필드크기 : 10 으로 지정 • “사용자”라는 테이블 명으로 저장한다.
4. 폼 실습 • 사용자 테이블을 디자인 보기로 열어서 pass 필드의 필드 속성에서 입력마스크의 버튼을 클릭한다. • 입력 마스크 마법사 창에서 입력 마스크를 “암호” 로 설정한다. [마침] • 테이블 디자인 창을 닫아 저장한다.
4. 폼 실습 • 사용자 테이블을 데이터 시트로 나타내어 id에 “admin”, pass에 “adminpass”를 입력한다. pass 필드는 입력 마스크에 패스워드로 지정하였기에 입력하여도 화면에 입력문자가 보이지 않으며 다른 사용자에 의해 사용자 테이블이 열려도 패스워드를 확인 할 수 없게 만든다. • 로그인 용 폼 작성 • [만들기]-[폼]-[폼 디자인] 을 실행하여 빈 폼을 만든 후 폼의 크기를 조정하고 “로그인”이라는 이름으로 저장한다.
4. 폼 실습 • “로그인”폼을 디자인 보기로 연다. • [컨트롤 마법사 사용]을 해제한 후 • [컨트롤]-[텍스트상자]를 선택한 후 폼에 두 개의 텍스트 상자를 그리고 텍스트 상자의 레이블을 “ID:”, “PASS:” 로수정한다. • ID 텍스트 상자 이름은 text0, PASS 텍스트 상자 이름은 text1 으로 설정한다. • 컨트롤 [단추] 를 선택 한 후 폼에 명령어 버튼을 만든다. 명령어 버튼의 캡션을 “확인”, 이름은 command1 으로 설정한다.
4. 폼 실습 • Text2 텍스트 상자의 속성 시트에서 [데이터]탭을 선택 한 후 [입력 마스크] 형식에서 버튼을 누른 후 “암호” 입력 마스크를 선택하거나 직접 “Password” 라고 입력한다. • 폼이 완성된 후 로그인 시 패스워드를 입력하면 키보드 입력된 패스워드가 텍스트 상자에 “*”로 표시된다.
4. 폼 실습 • [컨트롤]-[목록상자]를 클릭하여 폼 하단에 목록 상자를 만든다. 목록 상자의 이름은 list1 으로 설정하고 레이블은 지운다. • list1의 속성 시트 [형식]-[표시] 를 “아니오”로 설정한다. • 목록상자가 폼에서 보이지 않도록 폼의 크기를 조절한다.
4. 폼 실습 • 속성 시트에서 다음과 같이 지정한다. • 레코드 선택기 : 아니오, 탐색 단추 : 아니오 구분선 : 아니오 , 테두리 스타일 : 가늘게 • 로그인 폼의 폼 보기를 선택하여 실행 화면을 보고 저장한다.
4. 폼 실습 • [확인] 버튼에 이벤트 작성 • [확인] 버튼을 클릭하면 id와 pass 박스에서 입력된 문자열을 가지고 데이터베이스의 로그인 테이블을 검색하여 그 결과를 리스트 박스에 표시하게 된다. 만약 리스트 박스가 비었다면 입력된 아이디나 패스워드가 잘못된 것이며 결과가 들어 있다면 정상적으로 입력된 결과이므로 “메인메뉴 폼”을 열게 된다. • [확인] 단추를 마우스 오른쪽 버튼을 눌러 나타나는 메뉴에서 [이벤트 작성]을 선택 • [코드 작성기] 선택
4. 폼 실습 • [확인] 버튼에 이벤트 작성 • [확인] 버튼을 클릭하면 id와 pass 박스에서 입력된 문자열을 가지고 데이터베이스의 로그인 테이블을 검색하여 그 결과를 리스트 박스에 표시하게 된다. 만약 리스트 박스가 비었다면 입력된 아이디나 패스워드가 잘못된 것이며 결과가 들어 있다면 정상적으로 입력된 결과이므로 “메인메뉴 폼”을 열게 된다. • [확인] 단추를 마우스 오른쪽 버튼을 눌러 나타나는 메뉴에서 [이벤트 작성]을 선택 • [코드 작성기] 선택 VB 코드 입력
4. 폼 실습 Private Sub Command1_Click() Dim sql As String sql = "select * from 사용자 where id ='" & Text0 & "' and pass = '" & Text1 & "‘” Me.List1.RowSource = sql DoCmd.Requery "list1” If Me.List1.ListCount = 0 Then MsgBox "아이니나 패스워드가 틀렸습니다.” DoCmd.GoToControl "text0” Else DoCmd.Close DoCmd.OpenForm "메인메뉴폼” End If End Sub
4. 폼 실습 • 완성된 “로그인” 폼을 실행한다. • 정상적인 ID, 패스워드를 입력한 후 [확인] 버튼을 누르면 “로그인” 폼이 사라지고 “메인메뉴폼”이 나타난다. • “메인메뉴폼” 에서 다른 폼들을 실행 할 수 있다.
4. 폼 실습 • 응용 프로그램처럼 실행 • 작성된 폼을 사용하여 응용프로그램처럼 실행해 보자 • 설정이 변경되면 테이블의 내용을 볼 수 없게 될 수도 있으므로 기존 실습 파일인 .accdb를 다른 이름으로 복사해 둔 후 실습한다. • [Office 단추] –[Access 옵션] 실행 • 좌측 메뉴에서 [현재 데이터베이스] 선택
4. 폼 실습 • [폼 표시]에서 “로그인”폼 선택 • [상태표시줄 표시] 해제 • [Access 특수 키 사용] 해제 • [탐색 창 표시] 해제 • [전체 메뉴 사용]해제 • [기본 바로 가기 메뉴 사용] 해제 • 액세스를 종료 한 후 다시 조금 전에 닫은 데이터 베이스를 연다.
4. 폼 실습 • 데이터베이스를 여는 동시에 “로그인” 폼이 나타나며 액세스의 기본 메뉴, 탐색 창 등이 나타나지 않아 테이블을 직접 열어 볼 수 없다. • 또한 [Office 단추]를 열어도 [Access 옵션] 메뉴가 나타나지 않는다.