Presentation is loading. Please wait.

Presentation is loading. Please wait.

9. 데이터베이스 두 개의 테이블 조인해서 보기.

Similar presentations


Presentation on theme: "9. 데이터베이스 두 개의 테이블 조인해서 보기."— Presentation transcript:

1 9. 데이터베이스 두 개의 테이블 조인해서 보기

2 두개의 테이블 연결해보기 학생관리.mdb에 새 테이블 추가 추가기능>비주얼데이터관리자 주소록
학번 : 9 (필수, 0길이 비허용) 이름 : 10 (필수, 0길이 비허용) 핸드폰 : 13 주소 : 200 수원과학대학 컴퓨터정보과 1학년

3 두개의 테이블 연결해보기 학생관리 DB 구조 성적 테이블 주소록 테이블 수원과학대학 컴퓨터정보과 1학년

4 데이터폼 작성기를 이용 성적관리 데이터폼 작성 수원과학대학 컴퓨터정보과 1학년

5 데이터폼 작성기를 이용 주소관리 데이터폼 작성 수원과학대학 컴퓨터정보과 1학년

6 성적관리 폼 수정 DBGrid1 (Microsoft Data Bound Grid control) 처음에는 성적테이블 전용
테이블 조인하여 보기/성적순보기/학번순보기는 성적과 주소록 조인시켜 보여줌 Data2 : 주소록테이블용 수원과학대학 컴퓨터정보과 1학년 Data1 : 성적테이블용

7 성적관리폼 설정 Data1 Data2 DatabaseName : 학생관리.mdb RecordSetType : 2-다이너셋
RecordSource : 성적 Data2 RecordSource : 주소록 수원과학대학 컴퓨터정보과 1학년

8 성적관리폼 설정 DBGrid1 두 테이블 조인(join)해서 보기 버튼 DataSource : Data1
Private Sub cmdJoin_Click() Data1.RecordSource = "select 성적.*,주소록.핸드폰,주소록.주소 from 성적 left join 주소록 on 성적.학번 = 주소록.학번" Data1.Refresh End Sub 수원과학대학 컴퓨터정보과 1학년

9 성적관리폼 설정 성적순 보기 버튼 order by 필드명 : 필드의 순서대로 정렬 desc : 내림차순 (descend)
asc : 오름차순(ascend) Private Sub Command1_Click() Data1.RecordSource = "select 성적.*,주소록.핸드폰,주소록.주소 from 성적 left join 주소록 on 성적.학번 = 주소록.학번 order by 평균 desc" Data1.Refresh End Sub 수원과학대학 컴퓨터정보과 1학년

10 성적관리폼 설정 학번순 보기 버튼 order by 성적.학번 asc 성적 테이블의 학번 필드를 오름차순으로 정렬
Private Sub Command2_Click() Data1.RecordSource = "select 성적.*,주소록.핸드폰,주소록.주소 from 성적 left join 주소록 on 성적.학번 = 주소록.학번 order by 성적.학번 asc " Data1.Refresh End Sub 수원과학대학 컴퓨터정보과 1학년

11 주소록 추가 버튼 주소록 추가 기능 성적 테이블에 있는 학번 / 이름을 주소록 테이블에 신규로 넣어주는 기능
이미 존재하는 경우 메시지를 띄운다. 수원과학대학 컴퓨터정보과 1학년

12 Private Sub Command4_Click() ' 입력한 학번의 학생이 주소록에 존재하는지 검색
Data2.RecordSource = "select * from 주소록 where 학번 = '" & txtFields(0).Text & "'" Data2.Refresh If Data2.Recordset.RecordCount > 0 Then ' 같은 학번이 존재 MsgBox "이미 존재하는 학번입니다.", vbCritical + vbOKOnly, "학번중복" Data2.RecordSource = "주소록" ' 주소록을 다시 원상복구 Exit Sub ' 프로시져 종료 End If Data2.RecordSource = "주소록" Data2.Recordset.MoveLast ' 가장 마지막 레코드로 이동 Data2.Recordset.AddNew ' 신규 레코드 추가 Data2.Recordset.Fields(0) = txtFields(0).Text ' 학번 삽입 Data2.Recordset.Fields(1) = txtFields(1).Text ' 이름 삽입 Data2.UpdateRecord ' 레코드 자료 수정 End Sub 수원과학대학 컴퓨터정보과 1학년

13 주소록 수정 버튼 주소록 수정 기능 성적 테이블에서 자료 수정중 주소를 수정해야 할 일이 있을때
해당 학번의 학생이 없으면 메시지 출력 있으면 핸드폰/주소 입력창을 보여주고 수정이 끝난후 다시 수정 버튼을 누르면 데이터베이스에 수정완료. 수원과학대학 컴퓨터정보과 1학년

14 핸드폰 주소입력창 보이기 설정 프로시져 Private Sub 주소보이기(flag As Boolean)
txtFields(8).Visible = flag txtFields(9).Visible = flag lblLabels(8).Visible = flag lblLabels(9).Visible = flag End Sub 수원과학대학 컴퓨터정보과 1학년

15 Dim toggle As Boolean ‘ TRUE or FALSE값을 가지는 변수
‘ 맨 윗줄에 변수 정의 Dim toggle As Boolean ‘ TRUE or FALSE값을 가지는 변수 ================================================ Private Sub Command5_Click() If toggle = False Then ' 수정 버튼을 처음 누른 경우 수정모드로 전환 ' 해당 학번의 학생을 주소록에서 검색 Data2.RecordSource = _ "select * from 주소록 where 학번 = '" & txtFields(0).Text & "'" Data2.Refresh If Data2.Recordset.RecordCount <> 1 Then ' 학생이 존재하지 않는 경우 MsgBox "주소록에 존재하지 않는 학생입니다..", _ vbCritical + vbOKOnly, "미등록학생" Data2.RecordSource = "주소록" Exit Sub End If Data2.Recordset.Edit ' 학생이 존재하는 경우, 수정모드로 전환 toggle = True ' 수정버튼을 한번 눌렀음.. 주소보이기 (toggle) ' 핸드폰/주소 입력창을 보여주고 안보여주고... 수원과학대학 컴퓨터정보과 1학년

16 Data2.Recordset.Fields(2) = txtFields(8).Text ' 핸드폰 수정
Else Data2.Recordset.Fields(2) = txtFields(8).Text ' 핸드폰 수정 Data2.Recordset.Fields(3) = txtFields(9).Text ' 주소 수정 Data2.UpdateRecord ' 주소록 자료 수정완료 Data2.RecordSource = "주소록" ' Data2 초기화 Data2.Refresh Data1.Refresh toggle = False 주소보이기 (toggle) End If End Sub 수원과학대학 컴퓨터정보과 1학년

17 DBGrid 수정시 txtFields 자동 수정
Private Sub DBGrid1_Change() Dim i As Integer For i = 0 To 5 txtFields(i) = DBGrid1.Columns(i) Next End Sub 수원과학대학 컴퓨터정보과 1학년

18 추가기능 조인해서 테이블 보는 경우 성적테이블만 보기 데이터 뷰를 보는 상태 = 자료의 수정이 불가능한 상태
추가/삭제/수정 버튼이 동작하지 않아야함 성적테이블만 보기 추가/삭제/수정 버튼이 동작하게 바꿈 수원과학대학 컴퓨터정보과 1학년

19 테이블 조인하여 보기 성적순 보기 학번순 보기 버튼사용(False) 버튼사용(True)
Private Sub 버튼사용(flag As Boolean) cmdAdd.Enabled = flag cmdDelete.Enabled = flag cmdUpdate.Enabled = flag End Sub 테이블 조인하여 보기 성적순 보기 학번순 보기 버튼사용(False) 버튼사용(True) 수원과학대학 컴퓨터정보과 1학년

20 정리 DataBase Programming 비주얼 데이터관리자 : 데이터베이스 생성 화면 구성
테이블생성 > 필드 추가 화면 구성 Data 객체 : DatabaseName, RecordSource 설정 텍스트박스 : DataSource, DataField 설정 DBGrid : DataSource 설정 커맨드버튼들 : Click이벤트 프로시져 작성 수원과학대학 컴퓨터정보과 1학년


Download ppt "9. 데이터베이스 두 개의 테이블 조인해서 보기."

Similar presentations


Ads by Google