Chap 5. 대화상자와 폼 다루기

Download Report

Transcript Chap 5. 대화상자와 폼 다루기

IT COOKBOOK
비주얼베이직 데이터베이스
한빛미디어㈜
-1-
ehanbit.net
데이터베이스
IT COOKBOOK
 상호 연관된 데이터를 검색하거나 추가, 삭제에 있어
서 편리하고 신속하며 효율적인 환경을 제공하는 것
이다.
 SQL (Structured Query Language) : 구조적 질의어
 관계형 DB에서 사용되는 데이터베이스 프로그래밍 언어
 관계형 데이터베이스 모델 사용
 관계형 DB 모델의 구성
테이블 : 행과 열로 이루어진 관련 자료들의 집합
레코드 : 테이블의 각 행을 말함
주소
필드 : 테이블의 각 열을 말함 이름

한빛미디어㈜
레코드
전화번호
홍길동
창원시
02-222-1234
김진수
마산시
062-111-222
핃드(열)
-2-
ehanbit.net
비주얼베이직과 데이터베이스
IT COOKBOOK
 비베로 액세스할 수 있는 데이터베이스
 Jet DataBase
Microsoft Access에서 사용되는 데이터베이스 엔진임.
MS-Acecss
 ISAM Database
데이터를 인덱스로 찾는 방식의 데이터베이스임
예) 책의 찾아보기 형식
dBase, FoxPro
 ODBC
데이터베이스 관리 시스템(DBMS)에 관계없이 어떤 응용 프로그램
에서나 모두 접근하여 사용할 수 있도록 하기 위하여 마이크로소
프트에서 개발한 표준방법
응용 프로그램과 DBMS 중간에 데이터베이스 처리 프로그램을 두
어 이를 가능하게 한다.
MS-SQL, Oracle
한빛미디어㈜
-3-
ehanbit.net
비주얼베이직과 데이터베이스
IT COOKBOOK
 데이터 액세스 방법
 Data 컨트롤 이용
 DAO(Data Access Object) 이용
 RDO(Remote Data Object) 이용
 ODBC 이용
 ADO (ActiveX Data Object) 이용
한빛미디어㈜
-4-
ehanbit.net
비주얼베이직과 데이터베이스
IT COOKBOOK
 데이터 액세스 방법
 DAO(Data Access Object) 이용
Jet DB 엔진을 손쉽게 다루기 위한 개체
Ms-Access, ISAM 데이터를 다루기 위해 사용함
16bit 지원하는 응용프로그램 개발위해 사용
단일 시스템 응용프로그램에서 가장 많이 사용됨
 RDO(Remote Data Object) 이용
DAO 유형과 결합된 ODBC에 대한 개체지향 데이터 액세스 인
터페이스임.
기존의 ODBC 드라이버를 통해서만 RDB 액세스할 수 있다.
멀티스레드 프로그래밍에 사용됨
SQL 서버, Oracle등 대규모 RDB에 사용됨
한빛미디어㈜
-5-
ehanbit.net
비주얼베이직과 데이터베이스
IT COOKBOOK
 데이터 액세스 방법
 ADO (ActiveX Data Object) 이용
표준적이고 확장성 있는 데이터
여러 데이터를 동일한 방법으로
델임.
RDO, DAO 보다 더 간단, 융통성
OLE DB  데이터베이스 모델과
액세스를 제공함
한빛미디어㈜
-6-
접근 모델 제공함
접근을 위한 프로그래밍 모
있는 모델임.
무관하게 고성능의 데이터
ehanbit.net
데이터베이스 프로그래밍
1.
IT COOKBOOK
Data 컨트롤 이용한 데이터베이스
 microsoft jet 데이터베이스 엔진과 Microsoft Access 데이
터베이스 엔진을 통해 데이터를 엑세스할 수 있다.
 데이터컨트롤로 많은 표준 데이터베이스 유형에 엑세스
가능함
 코드작성없이도 데이터인식 어플리케이션을 쉽게 만들
수 있다.
한빛미디어㈜
-7-
ehanbit.net
데이터베이스 프로그래밍
IT COOKBOOK
 Data 컨트롤 이용한 데이터베이스 예제
 비주얼데이터관리자로 데이터베이스 만들기
(P.199 ~ 206 참조 )
 폼의 에디트 컨트롤과 데이터베이스 연결
1. DataSource : 컨트롤이
DB에 연결되는
데이터 컨트롤 지정함
2. Data Field : DB 테이블의
필드명 선택
Data 1 컨트롤
한빛미디어㈜
-8-
ehanbit.net
데이터베이스 프로그래밍
IT COOKBOOK
 Data 컨트롤의 주요 속성
 DatabaseName : DB 파일명과 경로 반환 또는 설정함
Data.DatabaseName = “D:\실습\MyData.mdb”
 RecordSource : 테이블명이나 SQL문 반환 또는 설정함
Data. RecordSource = 테이블명
Data. RecordSource = “Select * from TblStu”
 RecordSet : 레코드 객체 반환 또는 설정함
테이블 또는 명령의 실행으로 생성된 레코드의 집합이며, 한
번에 한 레코드씩 읽을 수 있다.
Data. RecordSet.AddNew
connect : 데이터베이스 종류설정 (기본값 : access)
종류 : Access, FoxPro, Lotus 등등
한빛미디어㈜
-9-
ehanbit.net
데이터베이스 프로그래밍
IT COOKBOOK
 Data 컨트롤의 주요 속성
 recordsetType : recordset의 형식을 설정
1. Table –type
- 데이터베이스 파일에 직접 연결하는 형식임
- 파일에 직접 연결하므로 인덱스를 사용함
- 속도가 제일 빠름
- 한번에 하나의 테이블만 처리가능함
2. Dynaset-type
- 레코드셋을 메모리에 동적으로 읽어서 사용하므로 추가, 수
정, 삭제, 검색이 가능함
- 모든 데이터를 메모리에 읽는 것이 아니라 필요한 자료만 읽
어와서 사용함
- 여러 개의 테이블을 동시에 사용할 수 있다.
- SQL문을 사용할 수 있는 큰 장점이 있다
한빛미디어㈜
- 10 -
ehanbit.net
데이터베이스 프로그래밍
IT COOKBOOK
 Data 컨트롤의 주요 속성
 recordsetType : recordset의 형식을 설정
3. Snapshot–type
- Dynatshot-type과 유사하지만 자료의 조회, 출력만 가능함
- 수정, 삭제, 추가 불가능
- 모든 자료를 메모리에 올려놓고 사용하므로 속도 빠름
- Dynatshot-type의 특징이 필요하면서 조회, 출력만 하는 경
우 속도가 빠르므로 많이 사용함
한빛미디어㈜
- 11 -
ehanbit.net
데이터베이스 프로그래밍
IT COOKBOOK
 Data 컨트롤 속성의 메서드
 UpdateRecord
작업한 레코드셋의 내용을 최종적으로 데이터베이스에 저장함
레코드의 내용은 이 메서드가 호출되기 전까지는 데이터베이스에
저장되지 않음
Data1. UpdateRecord
 Refresh
데이터베이스 내용을 다시 출력함
Data1. Refresh
한빛미디어㈜
- 12 -
ehanbit.net
데이터베이스 프로그래밍
IT COOKBOOK
 RecordSet 속성의 메서드
 이동 메서드
 MoveFirst
검색 메서드
 FindFirst

처음으로 이동
처음 레코드 자료검색
 MovePrevious
 FindLast
이전으로 이동
마지막레코드 자료검색
 MoveNext
 FindNext
다음으로 이동
다음 레코드 자료검색
 MoveLast
 FindPrevious
이전 레코드 자료검색
마지막으로 이동
 Seek
테이블형일때 자료 검색
한빛미디어㈜
- 13 -
ehanbit.net
데이터베이스 프로그래밍
IT COOKBOOK
 RecordSet 속성의 메서드
 AddNew
현재 레코드의 다음 위치에 새 레코드를 만들때 사용함
Data1.RecordSet. AddNew
 Delete
현재의 레코드를 삭제함
Data1.RecordSet. Delete
 EOF(End Of File) , BOF(Begin of File)
레코드 셋의 처음인가? 끝인가에 대한 값을 가짐
BOF : 현재 레코드의 위치가 Recordset 개체의 처음 레코드
의 이전에 위치했을 때  True(-1) , 그외의 경우  False(0)
만약 BOF와 EOF 속성이 모두 True이면, 현재의 Recordset 개
체에는 레코드가 하나도 없음을 나타낸다.
Data1.RecordSet. EOF
한빛미디어㈜
- 14 -
ehanbit.net
데이터베이스 프로그래밍
IT COOKBOOK
 RecordSet 속성의 메서드
 Bookmark
현재 레코드의 위치를 저장하거나 특정 레코드의 위치를 지정할
때 사용되는 속성이다.
 RecordCount
총 레코드수를 반환
n = Data1.RecordSet. RecordCount
 AbsolutePage
현재 레코드가 위치한 페이지를 나타낸다.
 AbsolutPosition
현재 레코드 번호를 확인하거나 설정함
n = Data1.RecordSet. AbsolutPosition
 Fields
Field의 컬렉션
한빛미디어㈜
- 15 -
ehanbit.net
데이터베이스 프로그래밍
IT COOKBOOK
Private Sub Command2_Click() '추가버튼
Data1.Recordset.AddNew
End Sub
Private Sub Command3_Click() '저장버튼
Data1.UpdateRecord
Data1.Recordset.Bookmark = Data1.Recordset.LastModified
마지막에 수정된 레코드를 현재 레코드로 설정함.
UPDATE하고나면 현재 위치를 분실해 처음레코드로
이동하게 됨. 수정된 레코드를 화면에 보이게 하기위
해서는 수정된 레코드를 현재 레코드로 설정해 주는
작업이 필요함
End Sub
한빛미디어㈜
- 16 -
ehanbit.net
MicroSoft FlexGrid Control 6.0
IT COOKBOOK
 MicroSoft FlexGrid Control 6.0
 특징
많은 양의 데이터를 표 형식으로 표시하고 정리 가능
문자열과 그림이 수록된 표의 정렬, 병합 및 포맷 가능
데이터를 입력받아 출력만 가능
FlexGrid 컨트롤을 사용하기 위해서는 컨트롤을 도구상자에
추가해야 함.
도구 상자에 추가된 Flex Grid 컨트롤
한빛미디어㈜
- 17 -
ehanbit.net
MSFlexGrid 컨트롤의 속성
한빛미디어㈜
- 18 -
IT COOKBOOK
ehanbit.net
[실습하기] 학점 계산하기
 총점과 합계를 계산하는
IT COOKBOOK
이벤트 핸들러 작성
Private Sub cmdTotal_Click()
For i = 1 To 3
MSFlexGrid1.Row = i
 컨트롤의 속성 설정
Total = 0
 프로그램
 폼에 컨트롤
추가 실행
For j = 1 To 3
Private
Sub Form_Load()
MSFlexGrid1.Col
=j
MSFlexGrid1.Row
=
0
cellValue
= Val(MSFlexGrid1.Text)
셀 클릭
MSFlexGrid1.Col
= 1: MSFlexGrid1.Text = "국어"
Total = Total
 + cellValue
MSFlexGrid1.Col
= 2: MSFlexGrid1.Text = "영어"
Next j
MSFlexGrid1.Col= 3: MSFlexGrid1.Text = "수학"
MSFlexGrid1.Col
MSFlexGrid1.Col==4:
4:MSFlexGrid1.Text
MSFlexGrid1.Text=="총점"
Total
MSFlexGrid1.Col
=
5:
MSFlexGrid1.Text
=
"평균"
Next i
=0
EndMSFlexGrid1.Col
Sub 

MSFlexGrid1.Row = 1: MSFlexGrid1.Text
= "홍길동"
MSFlexGrid1.Row = 2: MSFlexGrid1.Text = "홍길순"
MSFlexGrid1.Row
= 3: MSFlexGrid1.Text = "이몽룡"
Private
Sub cmdAverage_Click()
For i = 1 To 3
Private Sub MSFlexGrid1_Click()
End Sub
MSFlexGrid1.Row = i
MSFlexGrid1.Text = InputBox("점수를 입력하세요")
MSFlexGrid1.Col = 5
End Sub Form_Load 이벤트 핸들러 작성
Average = Val(MSFlexGrid1.TextMatrix(i,
4)) / 3
MSFlexGrid1.Text = Average
 셀에 데이터를 입력할 수 있도록
Next i
- 19 - 이벤트 핸들러 작성
Click
한빛미디어㈜
End Sub
ehanbit.net