RFID Programming (출결관리 프로그램)

Slides:



Advertisements
Similar presentations
1 인사급여관리 시스템 컴퓨터응용과학부 4 학년 오 미 현오 미 현 2 업무적용 입사 신상정보 퇴직급여산정 퇴사 근무 근태상황, 급여관리 전산화.
Advertisements

SQLite 소개 및 안드로이드에서의 사용법
VISUAL BASIC 양 계 탁.
DB Injection과 대응방안 nwkim.
웹 프로그래밍 HTML, 자바스크립트, ASP를 중심으로
DB 프로그래밍 학기.
DB 프로그래밍 학기.
소리가 작으면 이어폰 사용 권장!.
PL/SQL.
소프트웨어시스템설계(6주) 데이터베이스 연동
C#에서 데이터베이스 연동 방법.
비주얼 베이직 프로그래밍 한성대학교 정보전산학부 강 승 식.
예제로 배우는 Visual Basic 계산기로 익히는 연산자
Chapter 05 SQL 인젝션 공격.
개정판 Visual Basic 6.0 바로가기.
JDBC 프로그래밍 이수지 이동주 1.
SQL 개요 SQL 개요 - SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는 데 중요한 요인의 하나
10장. 데이터베이스 보안과 권한 관리 데이터베이스 보안과 권한 관리
1장 Visual Basic 2010 시작 1.1 프로그램에 대한 기초 1.2 Visual Basic 버전
프로시저 와 인수전달 컴퓨터응용 및 실습 I.
응용프로그램 예제 컴퓨터응용 및 실습 I.
주)INVENTORNICS 노창배 소프트웨어 김 경 순
11장. 데이터베이스 서버 구축과 운영.
2007. Database Term Project Team 2 윤형석, 김희용, 최현대 우경남, 이상제
제 2 장 기본 문법 (1-2) 주제 : 객체, 변수, 모듈, 상수.
5장 기본 컨트롤 응용프로그래밍.
Chapter 05 데이터베이스 프로그래밍.
비주얼 베이직 프로그래밍 개요 비주얼 베이직 6.0 살펴보기 비주얼 베이직 6.0 설치 비주얼 베이직 6.0의 개발 환경
9. 데이터베이스 9.5 SQL을 사용하는 프로그램 9.6 데이터폼 작성기를 사용하는 프로그램
SQL Server 2000 세미나 Profiler를 이용한 문제해결
차례 튜닝 - 프로필러를 이용한 튜닝 프로필러 친해지기 프로필러 결과 테이블로 만들기 프로필러 결과 분석하기
9.3 데이터컨트롤을 제어하는 프로그램 9.4 DBGrid를 사용하는 프로그램
담당교수 : 이형원교수님 컴퓨터응용과학부 정은영
ADO컨트롤을 이용하여 데이터를 관리하는 방법과 데이터베이스내의 레코드들을 리포트 형식으로 출력하는 디자인 기능을 알아본다.
Visual Basic 연산자.
뷰와 저장 프로시저 뷰의 개념을 이해한다. 뷰의 정의와 관리 방법을 이해한다. 뷰를 사용함으로써 생기는 장점을 알아본다.
5 장 객체 지향 프로그래밍 5.1 객체 지향 프로그래밍의 개념 5.2 객체 지향 프로그래밍
DataScience Lab. 박사과정 김희찬 (월)
6.3 툴바와 이미지 리스트 사용하기.
6.3 툴바와 이미지 리스트 사용하기.
3 장 Visual Basic 2010 기본 문법 3.1 변수 3.2 데이터 형식 3.3 연산자 3.4 제어문
SK증권 API 이용방법 강사: 말과의미(SK증권 방배역지점 정광옥차장) 계좌개설 및 계좌관리, 선물옵션 협의수수료 문의
YOU Youngseok 트랜잭션(Transaction) YOU Youngseok
Visual Basic 반복문.
Serial 통신(RS-232) 2 김성환 기계설계 자동화 공학부 비주얼베이직의 기초사항을 공부합니다.
3 장 Visual Basic 2010 기본 문법 3.4 제어문 1) 조건문 2) 반복문 3) 기타 제어문
주)INVENTORNICS 노창배 소프트웨어 김 경 순
ㅇ 스프링 설정파일 (dispatcher-servlet.xml)
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
DataBase 연결 및 사용방법
6.2 공통 대화상자 사용하기.
Database Programing 이름 : 김 수 종 학번 :
JSP 게시판 구현.
Database 중고차 매매 DB 비즈니스IT 윤동섭.
MS Excel 활용 2009년 2학기 컴퓨터의 개념 및 실습 서울대학교 통계학과
주제 : 배열, 사용자정의 데이터형, 프로시저와 함수 등..
4장 - PHP의 표현식과 흐름 제어-.
                              데이터베이스 설계 및 실습 #4 - loadcompany 만들기 한국외국어대학교 DaPS 연구실                              
ASP 수행 화면(1).
U N I X 창원대학교 전자계산학과 김병찬.
06. SQL 명지대학교 ICT 융합대학 김정호.
주)INVENTORNICS 노창배 소프트웨어 김 경 순
9. 데이터베이스 두 개의 테이블 조인해서 보기.
2장 비주얼베이직 시작하기 2.1 비주얼베이직 프로그래밍 스타일 2.2 비주얼베이직 시작하기.
자바 5.0 프로그래밍.
백업 PC에서 데이터 불러오기 (VBA 코드)
뇌를 자극하는 Windows Server 장. 데이터베이스 서버.
1장 Visual Basic 2010 시작 1.1 프로그램에 대한 기초 1.2 Visual Basic 버전
Stored program 장종원
DataScience Lab. 박사과정 김희찬 (화)
Presentation transcript:

RFID Programming (출결관리 프로그램) 2010. 04. 13 Choi, Namseok http://sugi.pe.kr

Contents Visual Basic을 이용한 RFID 출결 관리 프로그램 기본 프로그램 Database Design From Design 사용자 등록 모듈 출결 체크 모듈

시작 - 실행 - Regsvr32 c:\OCX 파일 위치\NeoRF13Ocxs.ocx 기본 프로그램 본 강좌에서는 이전 장에서 설명한 RFID 13.56MHz 시스템을 이용해 출결관리 프로그램을 만들어 보겠습니다. 출결관리 프로그램은 RFID Tag를 이용해 학생들이 강의 시작 과 종료 시 태그를 이용해 출석시간을 Database에 저장하는 시 스템입니다. Visual Basic과 간단한 Database를 이용하여 출결 관리 프로그램을 작성 할 수 있습니다. 프로그램 제작에 앞서 필요한 기본 사항들을 설정하겠습니다. RFID를 사용하기 위해 이전 강좌에서 사용한 OCX 라이브러리 를 설치 하겠습니다. 시작 - 실행 - Regsvr32 c:\OCX 파일 위치\NeoRF13Ocxs.ocx

기본 프로그램 라이브러리가 등록이 되어 있다면 단말기로부터 들어오는 데이 터를 실시간으로 컴퓨터로 전달해주는 역할을 하는 RFID_SvrMon 프로그램을 실행 시킵니다.

기본 프로그램 라이브러리가 설치가 완료가 되면 Visual Basic 프로그램을 실 행시켜 등록된 라이브러리를 사용할 설정을 합니다. 새로 추가된 컴포넌트를 Visual Basic에 추가를 하기위해서 상 단의 프로젝트(P) - 구성요소를 클릭합니다. 구성요소 창에서 NeoRF13Ocxs Library를 체크하고 확인을 합 니다.

기본 프로그램 컴포넌트를 추가하게 되면 아래 그림과 같이 컨트롤 상자에 새로 운 컴포넌트가 추가가 된 것을 볼 수 있습니다. 이렇게 하면 RFID장비를 사용할 기본적인 설정이 완료가 되었 습니다. 여기에 원하시는 작업을 하면 RFID연동을 쉽게 할 수 있 습니다.

기본 프로그램 출결관리 프로그램은 학생들의 출입 시간을 등록하기 위한 Database를 사용합니다. 본 강좌에서는 사용이 간편하고, Visual Basic에서 프로그래밍이 용이한 Access Database를 사 용합니다. Access Database를 사용하기 위해서는 Visual Basic에서 추가 적인 설정을 해야 합니다. 상단의 메뉴에서 프로젝트 - 참조 메뉴 를 선택하면 외부 구성요소를 참조 할 수 있는 목록이 뜹니다.

기본 프로그램 참조 창에서 Microsoft ActiveX Data Object 2.8 Library 항목 을 체크 한 후 확인을 합니다.이제 본 프로젝트에서 MDB(Access Database)를 사용할 준비가 되었습니다. 위의 두 가지 설정을 완료 하면 RFID를 이용한 출결관리 프로그 램을 제작할 준비가 완료가 되었습니다.

Database Design 출결관리 프로그램은 학생들의 출입 시간을 저장하기 위한 Database를 사용 합니다. 앞서 설정했듯이 본 프로그램에서는 MS Access Database를 사용하여 제작합니다. Database는 간 단하게 구성을 하도록 하겠습니다. 우선 Microsoft Office Access를 실행 시키겠습니다. 본 강좌에 서는 Microsoft Office 2007을 사용하도록 하였습니다.

Database Design 새 데이터 베이스를 선택하겠습니다.Office 2007 버전의 경우는 우측과 같이 데이터베이스의 이름을 정하는 프레임이 나타납니 다. 또한, 2007 버젼에서는 기본적으로 .accdb의 파일로 저장이 됩니다. 옆의 폴더열기 부분을 클릭하여, 호환성이 높은 .mdb형 식으로 저장을 하겠습니다. 이렇게 하면 이전 버전인 2003에서 도 작업을 할 수 있습니다.

Database Design Database의 이름을 KIT_Attendance.mdb라고 적고 만들기를 하시면 아래 그림과 같이 DB의 테이블을 구성 할 수 있는 화면 이 나타나게 됩니다.

Database Design 테이블의 디자인을 아래와 같이 설정하고 테이블 및 Databas를 저장합니다. 필드이름 데이터형식 필드크기 빈문자열 허용 내 용 nID 일련번호 정수(Long) strUID 텍스트 255 N Tag UID값 strStdNumber 학 번 strName 이 름 strPhone 전화번호 strAddress Y 주 소 strDate 등록일자

From Design 출결관리 프로그램은 기본적으로 두 개의 폼을 가지고 있습니다. 개인 정보 및 출결현황을 확인 할 수 있는 메인 폼과, 사용자를 등록 할 수 있는 사용자 등록 폼으로 구성되어 있습니다. 우선 메 인 폼을 디자인 해보겠습니다.

From Design 객 체 명 이 름 속 성 명 변 경 값 Label lbMainUID Caption UID lbMainStdNum 학 번 lbMainName 성 명 lbMainIn 입실시간 lbMainOut 퇴실시간 TextBox txtMainUID Text txtMainStdNo txtMainName txtMainInTime txtMainOutTIme CommandButton btnMainReadUID Read UID btnLoadInfo Load Info. btnCheckIn 입 실 btnCheckOut Catption 퇴 시 btnRegist Regist Students btnAddField AddField btnExit EXIT NeoRF13Ocx NeoRF13Ocx1 MSFlexGrid grdData Cols 37

From Design NeoRF13Ocx 객체는 앞서 추가한 RFID를 사용할 수 있는 객체 입니다.MSFlexGrid는 Database의 정보를 보여주기 위해 사용 한 객체입니다. 기본적인 Visual Basic 에는 제공이 되지 않으나 추가로 설치 할 수 있습니다. 프로젝트 - 구성요소 - 컨트롤탭에 서 Microsoft FlexGrid Control 6.0(SP6)을 선택 하면 MSFlexGrid 컨트롤을 사용 할 수 있습니다.

From Design

From Design 사용자 등록 폼을 디자인 하겠습니다. 객 체 명 이 름 속 성 명 변 경 값 Label lbRegUID Caption UID lbRegStdNum 학 번 lbRegName 성 명 lbRegPhone 전화번호 lbRegAddr 주 소 TextBox txtRegUID Text txtRegStdNo txtRegName txtRegPhone txtRegAddr CommandButton btnRegReadUID Read UID btnLoad Load btnRegRegist Save btnRegExit Exit NeoRF13Ocx NeoRF13Ocx1

From Design

사용자 등록 모듈 본 프로그램은 사용자가 Database에 등록을 하는 모듈과, 등록 된 정보로 출결 체크를 하는 프로그램으로 구성이 됩니다. 첫 번째로 사용자를 등록하는 모듈을 작성 해 보겠습니다.사용자 등록 모듈은 사용자가 가진 Tag를 가져다 대고, Read UID 버튼 을 누르게 되면 Tag의 UID가 표시 됩니다. Load 버튼을 누르게 되면 Database에 접속을 하여 등록된 정보가 있으면 아래 그림 과 같이 등록된 정보를 표시 됩니다.

사용자 등록 모듈 등록된 정보가 없으면 학번, 서명, 전화번호, 주소를 작성하고 Save 버튼을 누르게 되면 Database에 UID 값과 함께, 작성된 정보를 Database에 저장됩니다. Read UID 버튼을 더블클릭하여 다음과 같이 구현합니다. Read UID 버튼을 클릭하게 되면 Text상자에 내용을 초기화 시 키고 NeoRF130Ocx 의 UID_Read 프로시져를 호출 합니다. Private Sub btnRegReadUID_Click() txtRegStdNo.Text = "" txtRegName.Text = "" txtRegAddr.Text = "" txtRegPhone.Text = "" Call NeoRF13Ocx1.UID_Read End Sub

사용자 등록 모듈 코드 창에서 위쪽의 콤보박스에 NeoRF13Ocx 컨트롤을 선택해 OnData라는 프로시져를 생성합니다. 그리고 생성된 코드 안에 다음과 같이 구문을 구현합니다. NeoRF13Ocx1_OnData 는 데이터가 컨트롤로 넘어왔을 때 자 동으로 호출되는 프로시져(함수)입니다. Private Sub NeoRF13Ocx1_OnData(ByVal sData As String) txtRegUID.Text = sData End Sub

사용자 등록 모듈 Tag를 리더기에 대고 Read UID 버튼을 눌렀을 때 아래와 같이 UID 창에 Tag의 ID가 나타난다면 연결이 된 것입니다.

사용자 등록 모듈 리더기와 연결이 되었으면 사용자의 Tag 값과 정보를 Database 에 조회 및 등록하는 모듈을 구현 해 보겠습니다.Database에 연 결하고, 관리하기 위해서는 여러 가지 복잡한 작업들이 필요합니 다. 본 강좌에서는 Database 수업이 아닌 관계로 필요한 모듈은 파일로 제공을 하겠습니다.

사용자 등록 모듈 제공한 mod_Define.bas파일과 mod_SQL.bas 파일을 프로젝 트가 저장된 폴더에 복사를 합니다. 프로젝트 - 모듈추가 메뉴를 통해서 위의 두 파일을 추가 시켜 주면 프로젝트 내에서 두 모듈 을 사용 할 수 있습니다.

사용자 등록 모듈 설정이 되었으면 mod_SQL.bas 모듈을 더블클릭 해서 파일을 엽니다. 그리고, 아래와 같이 기본적인 Database 설정을 구현합 니다.DBOpen() 함수에서 다른 설정은 수정할 필요가 없으며, dbFileName 변수에는 앞 강좌에서 생성한 Database의 경로와 파일명을 적어 주면 기본적인 설정이 완료 됩니다. Public Function DBOpen() As Boolean … dbFilePath = App.Path dbFileName = "/db/KIT_Attendance.mdb" strDataPath = dbFilePath & "\" & dbFileName End Function

사용자 등록 모듈 위와 같이 설정이 완료 되면 이제 본 프로젝트에서, Database를 완벽하게 접근하여 사용 할 수 있게 되었습니다. Load 버튼을 더 블클릭 하여 아래와 같이 구현 합니다. Private Sub btnLoad_Click() If DBOpen = False Then MsgBox "Db Connection Failed.", vbExclamation, "Db Connection" Call DBClose End End If Dim sSql As String Dim sAddItem As String Dim iRow As Double Dim i As Integer

sSql = "SELECT * FROM KIT_ATT_DB WHERE strUID = '" & txtRegUID.Text & "'" Call Execute_SQL(sSql) If sSQLSuccess = False Then Exit Sub If Rs.RecordCount <= 0 Then MsgBox "검색 결과가 없습니다.", vbInformation, "검색" Exit Sub Else Rs.MoveFirst txtRegStdNo.Text = Rs.Fields(2) txtRegName.Text = Rs.Fields(3) txtRegPhone.Text = Rs.Fields(4) txtRegAddr.Text = Rs.Fields(5) End If Call RsClose Call DBClose End Sub

사용자 등록 모듈 이제 UID 값이 표시가 되면 Load 버튼을 눌렀을 때 Database 에 이미 등록된 사용자가 있다면 사용자에 대한 정보가 아래 그 림과 같이 표시 됩니다.

사용자 등록 모듈 그러나, Database에 등록된 사용자가 없다면 아래의 그림과 같 은 창이 표시되고 Tag 값과 사용자의 정보를 Database에 입력 할 수 있습니다. 표시된 UID와 함께 학번, 성명, 전화번호, 주소를 입력 후 Save 버튼을 누르면 Database에 Tag 값과 함께 사용자의 정보가 등 록 됩니다.

사용자 등록 모듈 정보를 등록하기 위해 Save 버튼을 더블클릭 해서 나온 코드창 에 아래와 같이 구현합니다. Private Sub btnRegRegist_Click() If DBOpen = False Then MsgBox "Db Connection Failed.", vbExclamation, "Db Connection" Call DBClose End End If Dim sSql As String Dim msg Dim sDate As String

사용자 등록 모듈 If txtRegStdNo.Text = "" Then MsgBox "학번을 입력하세요.", vbInformation, "등록" Exit Sub End If If txtRegName.Text = "" Then MsgBox "이름을 입력하세요.", vbInformation, "등록" If txtRegPhone.Text = "" Then MsgBox "전화번호를 입력하세요.", vbInformation, "등록" If txtRegAddr.Text = "" Then MsgBox "주소를 입력하세요.", vbInformation, "등록"

사용자 등록 모듈 sSql = "SELECT * FROM KIT_ATT_DB WHERE strUID = '" & txtRegUID.Text & "'" Call Execute_SQL(sSql) If sSQLSuccess = False Then Exit Sub If Rs.RecordCount <= 0 Then msg = MsgBox("등록하시겠습니까?", vbQuestion + vbYesNo, "등록") If msg = vbNo Then Exit Sub sDate = Format(Now, "yyyy-mm-dd-hh:mm:ss") sSql = "INSERT INTO KIT_ATT_DB (strUID, strStdNumber, strName, strPhone, strAddress, strDate) VALUES('" & _ txtRegUID.Text & "','" & _ txtRegStdNo.Text & "','" & _ txtRegName.Text & "','" & _ txtRegPhone.Text & "','" & _ txtRegAddr.Text & "','" & _ sDate & "'" & _ ")"

사용자 등록 모듈 Call Execute_SQL(sSql) If sSQLSuccess = True Then MsgBox "등록되었습니다.", vbInformation, "등록" End If Else msg = MsgBox("수정하시겠습니까?", vbQuestion + vbYesNo, "수정") If msg = vbNo Then Exit Sub sDate = Format(Now, "yyyy-mm-dd-hh:mm:ss") sSql = "UPDATE KIT_ATT_DB SET " & _ "strStdNumber='" & txtRegStdNo.Text & "'," & _ "strName='" & txtRegName.Text & "'," & _ "strPhone='" & txtRegPhone.Text & "'," & _ "strAddress='" & txtRegAddr.Text & "'," & _ "strDate='" & sDate & "'" & _ "where strUID = '" & txtRegUID.Text & "'"

사용자 등록 모듈 Call Execute_SQL(sSql) If sSQLSuccess = True Then MsgBox "수정되었습니다.", vbInformation, "수정" End If Call RsClose Call DBClose End Sub

사용자 등록 모듈 사용자 등록을 하면 아래 그림과 같이 Database에 정보가 등록 되는 것을 볼 수 있습니다.

출결 체크 모듈 이전 강좌에서는 사용자를 등록하는 모듈을 작성했습니다. 이번 강좌에서는 등록된 사용자 Tag를 이용해 출결 체를 하는 모듈을 구현 해 보겠습니다. 출결 체크 모듈의 기본 폼은 아래 그림과 같 습니다.

출결 체크 모듈 사용자는 등록된 Tag를 리더기에 가져다 대고 Read UID버튼을 클릭 합니다. 아래 그림과 같이 UID부분에 현재 접촉한 Tag의 UID값이 표시가 됩니다.

출결 체크 모듈 다음 Load Info. 버튼을 클릭합니다. 그러면 해당하는 Tag의 UID 값을 가진 정보를 Database에서 불러와 거기 학번, 성명등 의 정보를 텍스트 창에 표시 합니다.

출결 체크 모듈 사용자의 정보를 조회 한 다음, 입실 버튼을 누르면 현재 입실한 시간을 표시 해 주고 현재 시간을 Database에 저장을 합니다. 퇴 실의 경우도 마찬가지로 퇴실 시간을 Database에 저장을 합니 다.

출결 체크 모듈 입실과 퇴실이 체크가 되면 아래쪽의 DataGrid에 출결 현황이 개인별로 표시가 됨을 볼 수 있습니다. 출결 체크 모듈은 크게 Read UID, Load Info., 입실, 퇴실 등의 출결체크에 관한 기능들과, 사용자 등록창을 열어주는 Regist Students 기능과 수업 일자를 Database의 Table에 필드를 삽 입하는 기능으로 구성되어 있습니다.

출결 체크 모듈 먼저 Read UID 기능을 구현 하겠습니다. Read UID기능은 이전 강좌에서도 많이 했던 Tag의 UID값을 읽어 오는 기능입니다. Tag를 리더기에 가져다 대고 Read UID버튼을 누르면 Tag의 UID값을 읽어와 텍스트 창에 표시하는 기능입니다. Read UID 버튼을 더블클릭 해서 나온 코드 창에 다음과 같이 구현합니다. Private Sub btnMainReadUID_Click() txtMainStdNo.Text = "" txtMainName.Text = "" txtMainInTime.Text = "" txtMainOutTIme.Text = "" Call NeoRF13Ocx1.UID_Read End Sub

출결 체크 모듈 읽어온 UID값을 텍스트 박스에 표시하는 방법도 앞서 설명한 것 과 동일 합니다. Private Sub NeoRF13Ocx1_OnData(ByVal sData As String) txtMainUID.Text = sData End Sub

출결 체크 모듈 Tag의 UID값을 읽어온 다음 Load Info. 버튼을 클릭 하면 UID 값으로 저장된 정보를 Database로부터 읽어 옵니다. 폼 창에서 Load Info. 버튼을 더블클릭 하여 다음과 같이 구현 합니다. Private Sub btnLoadInfo_Click() Call GetData End Sub

출결 체크 모듈 Sub GetData() If DBOpen = False Then MsgBox "Db Connection Failed.", vbExclamation, "Db Connection" Call DBClose End End If Dim sSql As String Dim sAddItem As String Dim iRow As Double Dim i As Integer Dim strItem As String strItem = ""

출결 체크 모듈 sSql = "SELECT * FROM KIT_ATT_DB WHERE strUID = '" & txtMainUID.Text & "'" Call Execute_SQL(sSql) If sSQLSuccess = False Then Exit Sub If Rs.RecordCount <= 0 Then MsgBox "검색 결과가 없습니다.", vbInformation, "검색" Exit Sub Else Rs.MoveFirst txtMainStdNo.Text = Rs.Fields(2) txtMainName.Text = Rs.Fields(3)

출결 체크 모듈 Do While Not Rs.EOF On Error Resume Next sAddItem = "" For i = 0 To Rs.Fields.Count - 1 grdData.ColWidth(i) = 2000 grdData.ColAlignment(i) = 4 grdData.TextMatrix(0, i) = Rs.Fields(i + 1).Name grdData.TextMatrix(1, i) = Rs.Fields(i + 1) Next Rs.MoveNext Loop End If Call RsClose Call DBClose End Sub

출결 체크 모듈 읽어온 정보를 확인 하고, 입실 버튼을 클릭 하게 되면 현재의 시 간이 Database의 입실 필드에 저장이 됩니다. 폼 디자인 창에서 입실 버튼을 더블클릭 하고 다음과 같이 구현합니다. Private Sub btnCheckIn_Click() Dim TimeIn As String strTodayDate = Format(Now, "yyyymmdd") TimeIn = strTodayDate & "_In" strInTime = Format(Now, "yyyy-mm-dd-hh:mm:ss") If DBOpen = False Then MsgBox "Db Connection Failed.", vbExclamation, "Db Connection" Call DBClose End End If

출결 체크 모듈 Dim sSql As String Dim sAddItem As String Dim iRow As Double Dim i As Integer txtMainInTime.Text = strInTime sSql = "SELECT * FROM KIT_ATT_DB WHERE strUID = '" & txtMainUID.Text & "'" Call Execute_SQL(sSql) If sSQLSuccess = False Then Exit Sub If Rs.RecordCount <= 0 Then MsgBox "학생 정보가 없습니다. 먼저 등록을 하세요.", vbInformation, "검색" Exit Sub

출결 체크 모듈 Else sSql = "UPDATE KIT_ATT_DB SET " & _ TimeIn & "='" & strInTime & "'" & _ "where strUID = '" & txtMainUID.Text & "'" Call Execute_SQL(sSql) If sSQLSuccess = True Then MsgBox "입실처리 되었습니다.", vbInformation, "수정" End If Call RsClose Call DBClose Call GetData End Sub

출결 체크 모듈 퇴실 기능도 입실기능과 동일합니다. 퇴실 버튼을 더블클릭 한 후 아래와 같이 구현합니다. 퇴실 기능도 입실기능과 동일합니다. 퇴실 버튼을 더블클릭 한 후 아래와 같이 구현합니다. Private Sub btnCheckOut_Click() Dim TimeOut As String strTodayDate = Format(Now, "yyyymmdd“) TimeOut = strTodayDate & "_Out” strOutTime = Format(Now, "yyyy-mm-dd-hh:mm:ss") If DBOpen = False Then MsgBox "Db Connection Failed.", vbExclamation, "Db Connection" Call DBClose End End If

출결 체크 모듈 Dim sSql As String Dim sAddItem As String Dim iRow As Double Dim i As Integer txtMainOutTIme.Text = strOutTime sSql = "SELECT * FROM KIT_ATT_DB WHERE strUID = '" & txtMainUID.Text & "'" Call Execute_SQL(sSql) If sSQLSuccess = False Then Exit Sub If Rs.RecordCount <= 0 Then MsgBox "학생 정보가 없습니다. 먼저 등록을 하세요.", vbInformation, "검색" Exit Sub

출결 체크 모듈 Else sSql = "UPDATE KIT_ATT_DB SET " & _ TimeOut & "='" & strOutTime & "'" & _ "where strUID = '" & txtMainUID.Text & "'" Call Execute_SQL(sSql) If sSQLSuccess = True Then MsgBox "퇴실처리 되었습니다.", vbInformation, "수정" End If Call RsClose Call DBClose Call GetData End Sub

출결 체크 모듈 사용자 등록을 위한 Regist Student 기능은 버튼을 클릭하면 이 전 강좌에서 구현한 사용자 등록화면을 호출 하는 부분이므로 간 단히 폼만 호출 하는 구문으로 구현되어 있습니다. Regist Students버튼을 더블클릭 한 후 아래와 같이 구현합니다. Private Sub btnRegist_Click() Load frmRegist frmRegist.Show End Sub

출결 체크 모듈 AddField 기능은 수업이 있는 날짜를 Database의 Table에 현 재 날짜의 Field를 추가 하는 기능으로 수업 시작 전에 반드시 추 가를 하여 학생들이 출결체크를 할 수 있도록 하는 기능입니다. AddField 버튼을 더블클릭하여 아래와 같이 구현합니다. Private Sub btnAddField_Click() If DBOpen = False Then MsgBox "Db Connection Failed.", vbExclamation, "Db Connection" Call DBClose End End If Dim sSql As String Dim msg Dim AddFieldName_1 As String Dim AddFieldName_2 As String

출결 체크 모듈 strTodayDate = Format(Now, "yyyymmdd") AddFieldName_1 = strTodayDate & "_In" sSql = "ALTER TABLE KIT_ATT_DB ADD COLUMN " & AddFieldName_1 & " Text(255)" Call Execute_SQL(sSql) AddFieldName_2 = strTodayDate & "_Out" & AddFieldName_2 & " Text(255)" Call RsClose Call DBClose End Sub